[unrealengine4]

2023-05-26 언리얼 엔진 수업내용(Slot, Ceched,root motion)

롤링페이퍼 2023. 5. 30. 06:22
이동 시 자연스러운 무기 교체 애니메이션 출력해 보기

 

> ABP_Character(애니메이션 블루프린트)로 들어가 다음과 애니미그래프에서 다음과 같이 노드를 만들어준다.


Cached : 스테이트 머신을 임시저장하다
Layered blend per bone : 특정 본(Locomotion)을 지정해서 그 본의 아래에 있는 본들을 Blend Poses로 적용될 수 있도록 하는 노드

Blend Weights 0 : 블랜드의 비중(가중치)을 얼마나 줄 것이냐. 낮을수록 동작을 하다가 끊기는 상황이 생긴다.

Cached Poses : Cached로 저장한 스테이트 머신을 불러온다. 이름을 지정한 Cached를 적으면 노드를 불러올수 있다.


 

Layered blend per bone의 디테일

Bone Name : 기준이 될 Bone을 정해준다.

Blend Depth : 해당  Bone부터의 혼합 비율(예시 : 4일 경우 아래의 bone은 1/4로 25%식 영향을 받는다. )


 

애니메이션 슬롯

 

애니메이션 슬롯(Default Slot)

스테이트 머신 (Locomotion)에서는 FSM으로 상태를 구분하여 서로 다른 애니메이션을 재생한다. 하지만 우리는 동시에 FSM과는 상관없이 몽타주를 재생해야 한다. 이것은 애니메이션 슬롯 덕분에 가능하다. Locomotion에서 재생할 애니메이션과 그 밖의 몽타주가 겹치게 되면 애니메이션 슬롯에 의해 몽타주를 더 우선시한다. 덮어씌우는 것이다. 그래서 이동하다가도 무기 장비, 해제를 하게 되면 해당 이동을 멈추고 해당 몽타주를 재생하는 것이다.

 

이제 상 하체 따로따로 움직일 수 있게 만들어보자.

 

>  ABP_Chatacter(애니메이션 블루프린트) 연 기준에서 창 - 애닐 슬롯 매니저를 선택해 준다.

> UpperBody와 FullBody를 슬롯으로 추가한다.

애님 슬롯 매니저 창

> UpperBody 슬롯의 디테일에서 Slot name을 UpperBody로 지정해 준다.

UpperBody 슬롯의 디테일

> Draw_montage로 들어가 몽타주 슬롯 이름을 UpperBody로 지정한다.

Draw_montage의 montage

> 캐쉬드에서 -> UpperBody -> Layered blend per bone로 넘어갈 때 지정해 둔 draw_montage가 실행이 될 것이다.


이후 실행해 다른 몽타주도 실행해 보려고 하면 적용이 안 되는 것을 확인할 수 있다.(백스탭, 구르기)

 

앞으로 애니메이션 블루프린트에 슬롯을 사용할 때는 우리가 만든 몽타주를 슬롯에 넣어줘야 실행할 수 있게 된다.

그러니 이 이후 몽타주를 추가할 때 슬롯에 넣는 습관을 기르자.

 

구르기와 백스탭도 슬롯에 넣어보자

 

> 구르기와 백스탭은 상하를 나누는 것이 아니므로 FullBody에 넣을 것이다.

구르기 몽타주의 슬롯 이름
백스탭 몽타주의 슬롯 이름

> 이후 FullBody 슬롯의 디테일에서 Slot Name을 FullBody로 지정해 주자.

FullBody 슬롯의 디테일


root motion

 

가끔 애니메이션들을 보면 어느 것들은 제자리 가만히 있고 어느 애니메이션은 앞으로 이동하는 것을 볼 수 있다.

이런 식으로 이동되는 애니메이션들은 root component 이 영향받도록 하는 방식인데 이 root component 을 사용하게 된다면 root인 capsule까지 따라서 움직이기 때문에 anim이 끝나도 처음에 있던 위치로 돌아가지 않는다.

 

root copmonent는 xy축의 물리엔진이 적용받지 않지만, z 축만은 적용을 받는다.