언리얼에서는 오랜 세월 풋 IK를 최대한 직관적으로 만들어내고자 많은 노력을 해왔습니다. 언리얼 5에 도입된 IK Rig를 통해 Foot IK를 셋업 하게 돼 기존에는 제어하기 힘들었던 많은 부분들을 직관적으로 제어할 수 있게 되었습니다.
IK Rig를 활용해서 Foot IK를 설정하면 좋은 점.
- 별도의 IK Joint가 필요 없음.
- 마야에서 Export할 때 꼭 Ik Jpint를 만들어 Export 했어야 하는데, 이제 필요 없게 됨. 이제 옆의 Joint가 필요 없음.
- Visiulizing 된 프리뷰 창에서 Foot IK의 설정값을 실시간으로 지정하여 IK가 발동될 때의 값을 지정할 수 있다.
Ik Rig를 활용한 Foot IK 가이드
- 스켈레탈 메시의 오른 쪽 버튼을 누르고 Create 탭으로 가면 IK Rig를 만들 수 있습니다.
IK Rig 기본 셋팅 가이드 - 아래를 펼쳐 주세요.
- 몸의 중심으로 부터 계산이 이루어지기 때문에 Pelvis에 Solver가 있어야 Foot IK를 계산할 수 있게 됩니다.
- 이어서 Foot L/R에 IK를 설정하기 위해서는 Calf부터 계산이 이루어지기 때문에 calf에 셋팅값을 추가해 줍니다.
- 마지막으로 Foot LR에 New IK Goal을 눌러주면 기본 적인 설정은 완료 됩니다.
- 기본 셋팅만 해서는 Foot IK 가 발동 될 때의 움직임이 아래처럼 어색하게 설정이 됩니다.
- 위와 같은 결과가 나오지 않게 하기 위해서는 기존에 설정했던 Pelvis의 IK bone setting에서 Rotation Stiffness와 Position Stifiness를 조절하여 Foot Ik에 대한 상대적 움직임을 적절하게 설정해 줍니다.
- Calf값도 조절해 주면 무릎이 벌어지는 각도등을 더 상세하게 설정할 수 있게 됩니다.
IK계산용 Anim Blueprint 제작하기 - 아래를 펼쳐 주세요.
-
더보기IK Rig에서 사용한 동일한 스켈레톤의 Anim Blueprint 파일을 만들어 줍니다.
- Anim Graph 창에서 IK Rig 를 설정할 수 있는 명령어를 불러옵니다.
- IK Rig의 Rig definition Asset에 기존에 만든 IK Rig 세팅 파일을 넣어 줍니다.
- 위 상태로 Input Pose와 Out Pose로 연결해 주면 다른 캐릭터의 또 다른 애님 블루프린트에서 언제든지 가져다 사용할 수 있게 됩니다.
- 그럼 이제 각각의 Foot 위치와 Pelvis 위치를 계산하여 배경 오브젝트에 의해 IK가 작동되도록 계산식을 만들어 주는데 먼저 Foot Trace라는 함수를 만들어 바닥에 레이를 쏴서 바닥 지면과 발바닥의 상대적 위치값을 실시간으로 구해오는 함수를 만들어 줍니다. 세세한 계산에 대한 멘트는 하지 않을 테니 왜 이렇게 코드가 짜여 있는지 직접 고민해 봅시다.
- Foot의 Offset과 Rotation // Pelvis의 Offset 값을 알아야 하므로 먼저 변수를 만들어 줍니다.
- FootTrace 함수를 이용하여 발바닥 와 Pevis의 위치를 어떻게 교정해야 하는지 알았으니 Tick Graph에서 실시간으로 발과 Pelvis의 움직임을 교정해 준 뒤 그 위치 값을 변수로 만들어 저장해 주자. 이때 Jump시나 Falling시에는 IK가 작동하면 안 되므로 예외처리를 해줍니다.
- 먼저 위 상황을 제외한 경우에 대해 Foot IK가 처리되는 순간의 위치값과 로테이션을 만들어 내서 Foot L(R) Offset / Foot L(R) Rotation 변숫값을 아래처럼 Set 시켜 줍니다.
- 이어서 Foot위치에 따라 Pelvis의 위치값도 교정해 주어야 하므로 아래 계산값을 이용해 Pelvis의 Offset값도 Set 시켜 줍니다.
- 각각의 변수값을 알아냈으니 이 값들을 아까 전에 만든 IK Rig 설정창에 각각의 값들을 적절하게 연결시켜 줍니다.
- 메인으로 사용되는 애님 블루프린트에서 Linked Anim Blueprint 함수를 이용하여 위에서 제작한 Foot IK용 AnimBP를 아래처럼 연결해 주면 애님 블루프린트 간 통신이 이루어집니다.
Foot IK 결과 최종 확인
애님 그래프 작업까지 완료 후 최종 출력이 되도록 설정이 완료되면 아래 영상처럼 자연스럽게 Foot IK가 작동하는 것을 확인할 수 있습니다.
'Engine > UNREAL' 카테고리의 다른 글
AAA Locomotion (0) | 2020.12.12 |
---|---|
콜라보 애니메이션 (0) | 2019.07.19 |
Physics를 활용한 Tail 애니메이션 (0) | 2019.07.19 |
Dynamic Parameter (0) | 2019.05.28 |
Item BP 구조 (0) | 2019.05.28 |