프로그래밍 공부
작성일
2024. 1. 25. 14:57
작성자
WDmil
728x90

언리얼에서 몽타주를 활용하여, 에니메이션의 하체와 상체를 분리적용 해보자.

우선 ABP의 클래스에 들어가서 ABP를 조정해보자.

ABP에서 Jumping을 

위와같은, 캐시 포즈 새로 저장을 통해 변수처럼 이용할 것이다.

 

해당 방법을 통해 필요할 때 마다 에니메이션을 호출할 수 있게 된다.


본마다 레이어 블렌딩

 

언리얼 에서는 에니메이션을 필요한 부분만 블렌딩 하여 사용할 수 있게 해놓았다.

이걸 위해서 먼저 뼈대를 살펴보자.

 

캐릭터의 뼈대 설계이다. 뼈대가 각 Root부터 밑까지 이어져 상속되어 있는것 을 볼 수 있다.

본마다 레이어 블렌딩을 통해, 가장 상위에서 블랜딩 될 애니메이션의 부모를 설정할 수 있다.

 

즉, 내가 설정된 본을 상속받는 뼈대만 애니메이션을 적용하여 변경한다는 의미 이다.

다시 ABP로 돌아와서 보면,

디테일 패널에서 위와같이 확인할 수 있는데,

배열 엘리먼트에 해당하는 멤버들을 해당 본 위치부터 블렌딩하여 사용하겠다 라는 의미이다.

 

배열값을 적용하여 항상 1 멤버를 사용하지만, 2멤버가 호출되면, 2멤버의 BoneName부터 Distance값만큼 적용하여, 애니메이션을 변경하는 것 이다.

 

밑의 Mesh Space Rotate와 Scail은, 현재 재생중인 에니메이션의 Mesh객체에 대한 Rotation과 Scail값을 내가 적용하여 사용할 것 인지 물어보는 것 이다.

 

체크하면, 원래 사용하던 로테이션을 적용하여 애니메이션을 바꾸고, 아니라면 새롭게 입력되는 애니메이션의 기본 로테이션을 사용한다.

 

위와같이 연결해주자.

 

그렇게 되면, 애니메이션을 기본적으로는 JumpingSave를 통해 연결되지만, 만약, JumpingSave를 사용하는 UpperBody 몽타주가 실행될 때, Jumping Save의 에니메이션중, 설정된 Bone을 최상위로 Weights를 1을 100으로 하여 블랜딩 하고, 최종 에니메이션에 반영한다는 것 이다.

 

이렇게 하면, 애니메이션이 동작할 때, 공격을 명령하였을 경우, 공격할 때 만 몽타주가 실행되고, 몽타주가 실행되었을 때 설정된 본부터 애니메이션이 실행되기 떄문에, 이동하는 모션의 하체부분만 애니메이션이 이동모션으로 유지되고, 상체부분은 공격으로 전환된다.

 

Rotation은 항상 케릭터의 Defalt값으로 적용됨으로 공격시,  원 캐릭터의 정면을 정면으로 하여 애니메이션이 실행된다.

 

 

728x90