KoreanFoodie's Study

언리얼 애니메이션 레이어 (Layered Animation), 본마다 레이어로 블렌딩 (Layered Blend Per Bone) 본문

Game Dev/Unreal C++ : Study

언리얼 애니메이션 레이어 (Layered Animation), 본마다 레이어로 블렌딩 (Layered Blend Per Bone)

GoldGiver 2022. 4. 6. 20:08

애니메이션 레이어

언리얼에서는 애니메이션 간의 자연스러운 전환을 위해 블렌드 스페이스를 사용한다. 그런데 만약 UpperBody 만 총을 드는 모션을 재생하고 싶다고 하자. 블렌드 스페이스를 이용해 특정 부위만 동작을 바꾸는 등의 기능도 구현할 수 있을까?

언리얼에서는 애니메이션 레이어를 활용해 위의 기능을 구현할 수 있다. 방법은 아래와 같다.

 

1. 먼저 블렌드할 애니메이션을 선택한다.

 

2. 게임 모드의 Default Pawn Class 를 우리가 사용할 애니메이션이 타깃된 스켈레톤으로 바꿔준다.

 

3. 애님 몽타주를 생성한다.

 

4. 애님 몽타주에서 돋보기 클릭 후, 우리가 원하는 슬롯으로 지정한다.

 

5. 슬롯이 없을 경우 새로 생성한다.

 

6. 원하는 슬롯을 지정한다.

 

7. 애님 그래프로 이동한다.

 

8. Locomotion State Machine 을 만들고 Cached Pose 를 새롭게 생성한다.

 

9. 이전에 만든 Cached Pose 를 사용한다.

 

10. Cached Pose 로부터 본마다 레이어로 블렌딩을 한다.

 

11. Cached Pose 를 복사하고, 슬롯을 지정한다.

이 예시에서는 DefaultGroup.UpperBody 를 선택한다.

 

12. 아래와 같이 슬롯을 연결시켜 준다.

 

13. Layered Blend Per Bone 노드를 클릭하고 Blend Filters 설정을 변경한다.

 

 

14. Bone Name 을 spine_01 으로, Blend Depth 를 1 로, Mesh Space Rotation Blend 를 체크한다

위와 같이 세팅을 마치면 우리가 지정한 AnimMontage 가 spine_01 에서부터 시작하게 된다.

 

15. 이제 이벤트 그래프에서 타이밍에 맞게 Montage Play 를 설정해주기만 하면 된다.

Comments