2023-05-26 언리얼 엔진 수업내용(Slot, Ceched,root motion)
이동 시 자연스러운 무기 교체 애니메이션 출력해 보기
> ABP_Character(애니메이션 블루프린트)로 들어가 다음과 애니미그래프에서 다음과 같이 노드를 만들어준다.
Blend Weights 0 : 블랜드의 비중(가중치)을 얼마나 줄 것이냐. 낮을수록 동작을 하다가 끊기는 상황이 생긴다.
Bone Name : 기준이 될 Bone을 정해준다.
Blend Depth : 해당 Bone부터의 혼합 비율(예시 : 4일 경우 아래의 bone은 1/4로 25%식 영향을 받는다. )
애니메이션 슬롯
스테이트 머신 (Locomotion)에서는 FSM으로 상태를 구분하여 서로 다른 애니메이션을 재생한다. 하지만 우리는 동시에 FSM과는 상관없이 몽타주를 재생해야 한다. 이것은 애니메이션 슬롯 덕분에 가능하다. Locomotion에서 재생할 애니메이션과 그 밖의 몽타주가 겹치게 되면 애니메이션 슬롯에 의해 몽타주를 더 우선시한다. 덮어씌우는 것이다. 그래서 이동하다가도 무기 장비, 해제를 하게 되면 해당 이동을 멈추고 해당 몽타주를 재생하는 것이다.
이제 상 하체 따로따로 움직일 수 있게 만들어보자.
> ABP_Chatacter(애니메이션 블루프린트) 연 기준에서 창 - 애닐 슬롯 매니저를 선택해 준다.
> UpperBody와 FullBody를 슬롯으로 추가한다.
> UpperBody 슬롯의 디테일에서 Slot name을 UpperBody로 지정해 준다.
> Draw_montage로 들어가 몽타주 슬롯 이름을 UpperBody로 지정한다.
> 캐쉬드에서 -> UpperBody -> Layered blend per bone로 넘어갈 때 지정해 둔 draw_montage가 실행이 될 것이다.
이후 실행해 다른 몽타주도 실행해 보려고 하면 적용이 안 되는 것을 확인할 수 있다.(백스탭, 구르기)
앞으로 애니메이션 블루프린트에 슬롯을 사용할 때는 우리가 만든 몽타주를 슬롯에 넣어줘야 실행할 수 있게 된다.
그러니 이 이후 몽타주를 추가할 때 슬롯에 넣는 습관을 기르자.
구르기와 백스탭도 슬롯에 넣어보자
> 구르기와 백스탭은 상하를 나누는 것이 아니므로 FullBody에 넣을 것이다.
> 이후 FullBody 슬롯의 디테일에서 Slot Name을 FullBody로 지정해 주자.
root motion
가끔 애니메이션들을 보면 어느 것들은 제자리 가만히 있고 어느 애니메이션은 앞으로 이동하는 것을 볼 수 있다.
이런 식으로 이동되는 애니메이션들은 root component 이 영향받도록 하는 방식인데 이 root component 을 사용하게 된다면 root인 capsule까지 따라서 움직이기 때문에 anim이 끝나도 처음에 있던 위치로 돌아가지 않는다.
root copmonent는 xy축의 물리엔진이 적용받지 않지만, z 축만은 적용을 받는다.