유니티든 언리얼이든 기본 애니메이션에 추가 애니메이션을 사용할 때 Blend를 사용하지 않으면
자연스럽지 못한 출력을 얻게 된다.
예를 들어, 플레이어가 움직이면서 동시에 무기를 꺼낸다면 하체의 다리는 계속 걷고 있어야하며,
상체는 칼을 꺼내고 있어야한다.
각각의 애니메이션은 Walk / DrawWeapon으로 분리되어있지만 동시에 실행돼야하므로
Blend를 사용하여 상하체가 동시에 두 개의 애니메이션을 사용하도록 설정해야한다.
언리얼 엔진5에서, 플레이어가 이동하면서 무기를 꺼낼 때/넣을 때 Animation Blend를 사용하지 않고 Main States를 Default Slot 그대로 출력하게 된다면,
마찬가지로 무기꺼내는 애니메이션을 취하면서 움직이기에 매우 어색한 연출을 얻게 된다.
언리얼에서는 Animation BluePrint - AnimGraph에서 Layer Blend Per Bone 노드를 사용하여
블루프린트에서 Animation Blend를 사용할 수 있다.
처음에는 Main States는 Deafult Slot과 연결되고 출력으로 이어지지만,
UpperBody라는 Anim Slot을 사용하기 위해 Cache Pose 노드를 생성하여 사용한다.
Cache Pose 노드를 하나 만들어두고 Layer Blend Per Bone을 사용한다.
Base Pose에는 처음과 같이 MainStates를 연결하여 그대로 출력되게 하고, UpperBody 슬롯에서 행해지는 애니메이션은 Blend Poses 0으로 연결하여 출력되도록 한다.
이후 Layer Blend Per Bone의 디테일 창에서, 본 이름에 따라 인덱스 배열을 만들고 Depth Blend 값을 넣어준다.
이렇게 인덱스 배열을 만들어주면, 각 본 이름에 맞는 본에서 뎁스 블랜드 값에 따라서 Animation Blend가 실행된다.
(Depth Blend값을 -1, 즉 음수로 설정하게 되면 해당 본과 해당 본의 자식 오브젝트들은 Disable된다.
즉, 기존 검을 꺼내는 애니메이션에서 thigh_r과 thigh_l에 해당하는 애니메이션은 실행하지 않는다는 의미다.
이렇게 설정함으로써 하체는 걷는 애니메이션만을 실행하게 된다.)
마지막으로 Blend하고자 하는 애니메이션 몽타주 파일에서 DefaultGroup을 UpperBody로 변경해주면 적용이 완료된다.
위와 같이 만들어주고 ABP_Manny를 저장하여 실행하면,
하체는 달리면서도 상체는 무기를 꺼내거나 넣는 애니메이션이 자연스럽게 출력이 된다.
'게임 개발 학습 > Unreal Engine' 카테고리의 다른 글
[UE5] DT 사용하기 (사진 추가 필요) (1) | 2023.11.19 |
---|---|
[UE5] 장비 장착 스크립트 클래스 상속도 (0) | 2023.09.25 |
[UE5] Lumen vs Lightmap (0) | 2023.09.25 |
[UE5] Return Mesh Parameter는 Primitive Component ? (0) | 2023.09.25 |
[UE] Live Coding vs Hot Reload (0) | 2023.09.25 |