Third Person 예제의 Animation Blueprint를 공부한 내용입니다.
참고 자료
스테이트 머신
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/state-machines-in-unreal-engine
트랜지션 룰
https://dev.epicgames.com/documentation/en-us/unreal-engine/transition-rules-in-unreal-engine?application_version=5.3
애니메이션 블루프린트에서 컨트롤 릭
https://dev.epicgames.com/documentation/en-us/unreal-engine/control-rig-in-animation-blueprints-in-unreal-engine
ABP_Manny
- Third Person 예제에서 기본적으로 사용되는 Animation Blueprint
- Anim Instance의 자식 클래스
Event Graph
- 애니메이션과 관련된
변수 조작 및 로직 설정
- 해당 단계에서 업데이트 된 변수로 Anim Graph를 동작시킨다.
- Event Blueprint Initialize Animation

- 초기화 단계에서 수행된다.
- Pawn 레퍼런스와 해당하는 Character Movement 가져오기
- Event Blueprint Update Animation

- 매 프레임마다 수행된다.
- Pawn 레퍼런스가 유효할 때만 아래 단계 차례로 수행

- Character Movement에서 입력에 따른 속도 벡터를 가져오고, 지면에서의 이동 속도 (x, y)를 계산한다.

- Character Movement에서 입력을 통해 계산된 가속도가 0이 아니고, 지면 이동 속도가 3보다 크다면 움직일 수 있는 상태가 된다.

- Character Movement에서 공중에 떠 있는지 확인한다.
Anim Graph
- 프레임 단위로 애니메이션을 재생하고
스켈레톤의 최종 포즈를 출력한다.

- State Machine인 Locomotion과 Main States로 이루어져 있다.
State Machine
- 특정 애니메이션 재생 및 해당 애니메이션의 재생 조건을 설정할 수있는 시스템
- Locomotion

- Idle과 Walk/Run 상태를 이동할 수 있다.
- Entry부터 순서대로 애니메이션을 실행하며, 스테이트 룰 조건을 만족하면 연결된 스테이트가 실행된다.
- 해당 스테이트 룰의 경우, Should Move 값을 사용했다.

- Walk/Run 스테이트는 Blend Space 1D로 구현되었으며, Ground Speed에 따라 애니메이션이 전환된다.
- Main States

- Locomotion과 점프, 착지를 연결하였다.
- State Alias에 해당하는 스테이트가 실행되는 도중, 스테이트 룰을 만족했는지 체크한다.
State Alias

- 디테일 패널에서 선택된 스테이트 실행 시, 직접적인 트랜지션 룰 없이도 트랜지션을 작동시킬 수 있다.
- Global Alias는 모든 스테이트를 포함시키는 옵션이다. (인터랙션, 공격 같은
기간이 한정적인 스테이트에서 제한적으로 사용)
- 복잡한 트랜지션 라인을 깔끔하게 정리할 수 있다.
Cache Pose

- State Machine을 캐싱하여 저장한다.
Slot
- Animation Montage의 Slot에 해당한다.
- 최종 포즈를 출력하기 전, Animation Montage의 애니메이션으로 덮어쓸 것을 염두해 작성된 것으로 보인다.
Apply Additive

- Alpha 값에 따라 Base 애니메이션에 Additive 애니메이션을 자연스럽게 더해준다.
Control Rig
- 엔진에서 바로 캐릭터를 애니메이팅 하는 솔루션
- 해당 과정에서는 Foot IK를 위해 사용되었다.
- Bone 이름을 활용해서 수행되기 때문에,
다른 캐릭터 활용 시 에픽 스켈레톤 구조 리깅이 권장되는 것으로 보인다.
- Foot IK 적용 전과 후이다. 확연히 바닥에 스켈레탈 메쉬가 잘 붙어있는 게 보인다.