ControlRig이란
언리얼에서 스켈레탈 메시(본 구조)를 실시간으로 조작하거나 변형할 수 있게 해주는 리깅 시스템
목표
- 각 발의 본(foot_l, foot_r)기준으로 아래 방향 Trace -> 히트 z높이를 얻는다.
- 그 높이를 컨트롤(컨트롤 본)로 전달 -> Modify Transforms로 컨트롤 이동 -> 본이 따라감
- 마지막에 FullBodyIK로 사슬을 풀어 발이 바닥에 "짚도록" 계산
- 골반(pelvis)은 좌우 발 컨트롤의 더 낮은 z에 맞춰 살짝 내려 안정적인 무게중심을 만든다.
사용방법
1. ControlRig 생성

2. ImportHierarchy버튼을 누르면 어떤 매쉬를 적용할 것인지 선택 할 수 있다.

3. Foot Trace 함수 추가
- Name으로 'foot_l'을 세팅한다.

- Input에 Foot bone을 추가하고, 타입을 Rig Element Key로 변경한다.
- Rig Element Key란 : 계층의 항목(본/컨트롤/커브)을 타입 + 이름으로 식별하는 키

- Get Transform Bone : (이름으로도 가져 올 수 있다.)

- FootBone으로부터 z값을 위에서 아래로 Trace처리

- Draw Line : Debug Line 확인


4. ABP 적용
내 프로젝트 기준 ABP_Player에 마지막 Output 처리 전에 해당 ControlRig 노드를 추가 해준다.

- 이렇게하면 에디터 실행 한 후 디버깅이 가능하다.

콘솔 명령어 : a.AnimNode.ControlRig.Debug 1
5. Trace된 Z 위치 (foot_l, foot_r)

6. Alpha Interpolate 적용 : 스무스하게

7. 컨트롤 : 본에 위치를 지정해 놓고 본에 위치를 바꾸기용

- Bone 위치 가져오기 : 방금 생성한 Control Bone으로 생성한 본에 위치를 가져올 수 가 있다.
- SetTransform으로 Bone 위치를 바꾼다.
- Modify Trasnforms을 이용해 컨트롤에 위치를 변경한다. : trace된 위치로 그러면 Bone이 따라 오니까.

컨트롤에 위치를 통해 Bone이 어디로 움직여야 할 곳인지 알 수 있다.

8. IK적용
- FullBodyIk :
- Root는 pelvis
- 앞서 구한 컨트롤 위치로 IK적용한다.
- Settings -> Root behavior : Pint To Input 처리

9. pelvis
- 지금까지 작업만으로 끝나지 않는다. 결국 골반 위치도 변경해줘야한다.
- 골반위치는 Trace된 왼쪽 컨트롤과 오른쪽 컨틀롤중에 값이 더 작은 z위치로 설정해준다.

- pelvis 위치 적용

구현 완료

추가로
- 특수한 행동 :점프,기어다니기 중에서는 IK로직이 돌지 않도록 한다.
'Unreal > API' 카테고리의 다른 글
| [Unreal5] Curve로 자연스로운 움직임 만들기 (0) | 2025.10.14 |
|---|---|
| [Unreal5] UAIPerceptionComponent로 몬스터 감각 시스템 만들기 (0) | 2025.09.30 |
| [Unreal5] TFieldIterator, FNumericProperty와 Reflection으로 반복되는 UI코드 줄이는 방법 (0) | 2025.09.24 |
| [Unreal5] UStruct 이해하기 – 구조체로 데이터 다루기 (0) | 2025.09.23 |
| unreal) EQS (0) | 2025.09.15 |
