스테이트 머신의 문제
스테이트 머신을 사용해서 단순한 동작 로직을 구현하는 것은 괜찮지만
점점 추가될수록 복잡해지는 문제가 발생한다
애니메이션 몽타주
특정 상황에서 원하는 애니메이션을 재생시키는 기능이다
여러 애니메이션 클립들의 일부를 쉽게 선택하여
새로운 애니메이션을 생성하는 방법이다
이때 섹션 단위로 애니메이션들을 관리한다
애니메이션 몽타주 애셋 생성
Anim Slot Manager에서 우리만의 Group과 Slot을 만들어서 관리하는 것이 좋다
Add Group을 통해 그룹을 추가하고
해당 Group이 클릭된 상태로 Add Slot을 통해 Slot을 추가할 수 있다
그리고 해당 Group의 Slot을 통해 우리가 원하는 몽타주를 쉽게 재생시킬 수 있다
몽타주를 재생하는 아래와 같은 부분에서도
Montage 섹션에 DefaultGroup.DefaultSlot을 우리가 만들어준 SGroup.SFullBody로 바꿔주고
원하는 애니메이션을 드래그 드롭해서 위치시킬 수 있다
이제 우리가 만들어준 애니메이션 몽타주의 Group과 Slot을
AnimGraph에 넣어줘야한다
애니메이션 블루프린트의 AnimGraph 빈 공간을 우클릭해서
Slot ‘DefaultSlot’ 검색 후 생성하고
Default Slot 노드의 Details를 통해 Slot Name을 SGroup.SFullBody 슬롯으로 지정해 주면 된다
애니메이션 몽타주에서 자주 사용되는 함수
Montage_IsPlaying():
해당 몽타주가 재생되고 있는지 알 수 있다
Montage_Play():
해당 몽타주를 재생시킨다
OnMontageEnded() 델리게이트
특정 애니메이션 몽타주 재생이 끝나면
등록된 콜백함수가 호출되는 델리게이트이다
이를 이용해서 특정 애니메이션 중에는 다른 애니메이션 진행을 막을 수 있다
'게임 엔진 > [코드조선] 언리얼' 카테고리의 다른 글
언리얼 Collision - 충돌 설정 (0) | 2024.05.15 |
---|---|
언리얼 Animation - Animation Notify (0) | 2024.05.14 |
언리얼 Animation - State Machine (0) | 2024.05.14 |
언리얼 Animation - AnimInstance (0) | 2024.05.14 |
언리얼 View - Control Rotation (0) | 2024.05.14 |