본문 바로가기
공부/Unreal Engine 5

[언리얼5] 애니메이션 블루프린트 템플릿

by MY블로그 2024. 1. 8.

C++ 코드로 작성한 적 클래스의 패턴들을 다른 적들을 생성할때 사용하기위해서 기본적으로 애니메이션이 다르게 적용되어야 합니다. 이때 기존에 작성해둔 애니메이션 블루프린트의 형태들을 템플릿으로 작성하고 다른 타입의 적들에게도 같은 틀을 사용하기 위해서 애니메이션 블루프린트 템플릿을 생성합니다.
 

1. 애니메이션 블루프린트 템플릿 생성하기

보통 애니메이션 블루프린트를 생성하듯 엔진내에서 생성이 가능합니다.
컨텐츠브라우저창 > 우클릭 > 애니매이션 > 애니메이션 블루프린트 > 템플릿 선택

2. Blueprint  Thread Safe Update Animation 함수 생성하기

변수를 업데이트해주기위한 함수를 생성해주도록 합니다. 이전에도 사용했던 함수 입니다.

[언리얼5] 애니메이션 블루프린트 Thread Safe Update

애니메이션 블루프린트의 이벤트 그래프에서 많은 작업을 좀더 수월하고 안전하게 할수있는 언리얼5의 함수 입니다. 애니메이션 블루프린트의 함수에서 생성이 가능합니다. 해당 함수는 애니

rhksgml78.tistory.com

해당함수는 기존에 사용하던 적의 변수들과 동일한 형태의 변수들을 생성하여 주도록 합니다.

좌:기존에 사용하던 몬스터 ABP의 변수 / 우:새로생성한 템플릿에 생성한 변수 (동일하게 생성)

변수를 생성할때 만일 기준이 되는 부모 클래스가 있다면 모든 자식 클래스에서 사용할 수 있도록 부모클래스를 대상으로 두도록 합니다.
 

3. 초기화&값 설정

애니매이션 초기화에 필요한 작업들을 지정해 주도록 합니다.
함수 > 오버라이드 > Blueprint Initialize Animation 추가하기

애니매이션의 초기화는 이벤트그래프와 2번 과정에서 생성한 함수에서 진행하도록 합니다.

이벤트 그래프에서 캐릭터 무브먼트 초기화
Blueprint  Thread Safe Update Animation 함수에서 필요한 값 초기화

스레드 업데이트 함수내에서 값의 접근은 프로퍼티 엑세스 기능을 사용합니다.
 
두가지 초기화의 차이점

이벤트그래프의 초기화는 애니매이션 처음 초기화시 한번 실행되는 초기화 입니다.
그와 반대로 스레드함수는 매프레임 값을 업데이트 합니다.
 

4. 그래프 작성하기

기존의 적이 사용하고있던 애니메이션 그래프를 동일할게 사용할 것이기 때문에 똑같이 만들어 주도록 합니다.

좌 : 기존에 사용하던 애님그래프, 우 : 똑같이 사용

상태에 대한 변수의 값등도 동리하기때문에 스테이트머신과 트렌지션룰 등도 동일하게 설정하도록 합니다.
단 상태에 따라 재생되어야할 애니메이션은 적의 종류 별로 다 다르기 때문에 블렌딩 포즈를 사용할 방식에 변화가 필요하게 됩니다.
 
우선 기존의 적사망시 재생되는 애니메이션이  피격당하는 위치에따라 다른 모션이 나오기때문에 아래와 같이 사용하고 있습니다. 이때 블렌드 포즈가 DeathPose 변수에 따라 재생되는 애니메이션이 다른데 다른 적일경우 해당 애니메이션이아닌 해당적에게 맞는 애니매이션이 재생되어야 합니다.

따라서 아래와 같은 방식으로 진행합니다.
블렌드 포즈는 동일하게 사용하되, 시퀀스 플레이어를 통하여 시퀀스를 핀으로 바인딩 합니다.
해당 핀으로는 각 적마다 지정해주는 애니매이션의 값들이 들어올 예정입니다.

 
시퀀스 플레이어들에 바인드한 핀을 우클릭하여 변수로 생성해주고 해당변수의 이름들을 다르게 설정하여 블렌드 포즈에 적절한 값을 지정해 줄 수 있도록 합니다.

 

5. 템플릿을 바탕으로 애니메이션 블루프린트 다시만들기

기존의 IDEL WALK RUN 애니메이션은 해당 적의 스켈리탈 메쉬를 바탕으로 반들어져있습니다.
하지만 모든 적은 템플릿을 사용할 예정이므로 적의 애니메이션 블루프린트를 템플릿을 베이스로 다시 만들도록 합니다.
템플릿을 바탕으로 만들더라도 새로 만드는 애니메이션 블루프린트는 해당 적의 스켈레톤이 필요합니다.

ABP_Enemy는 스켈레탈없이 템플릿으로 생성된 애니메이션 블루프린트

해당 애니메이션 블루프린트를 실행시 디테일창에는 생성한 변수들을 볼 수 있습니다.
주의 : 다른메뉴나 노드를 클릭시 디테일창이 안보이는 현상이있습니다.
이때 해당 ABP를 다시 실행 시키면 됩니다.

 
우측의 에셋 오버라이드 메뉴를 사용하여 적의 IDEL / WALK / RUN 의 애니메이션 블루프린트를 적용할 수있습니다.
IDEL / WALK / RUN 의 애니메이션 블루프린트 처럼 사망시의 애니메이션도 적용이 가능합니다. 하지만 [시퀀스 플레이어]가 모두 같은 이름이기때문에 변수의 이름과 에셋의 이름을 일치시키는것이 더욱 확실하기때문에 사망상태의 에셋은 변수를 통하여 사용하고 있습니다.

 
 
추가적으로 기존에 사용하던 이벤트 등이 있다면 새롭게만든 애니메이션블루프린트에 복사하여 넣어주면 그대로 사용이 가능합니다.
 
요약. 앞으로 추가적인 적을만들때 해당적에 필요한 애니메이션 몽타주, 애니메이션블루프린트, 사망시포즈 의 에셋을 만들어서 적용시키면 간단하게 다른 유형의 적을 생성할 수 있게 됩니다.
 
 

애니메이션 블루프린트를 새로 생성한것으로 교체한뒤에도 적이 작동 하고있습니다.

 

댓글