15. 노티파이 스테이트
• 노티파이 스테이트에는 구간 개념이 존재한다.
함수만 봐도 노티파이는 Notify 하나 딸랑 있는 반면에
노티파이 스테이트는 구간의 시작, 진행, 종료의 동작을
따로 지정할 수 있음
16. 애님 인스턴스
• 애니메이션 창고 혹은 매니저의 개념
애니메이션에 필요한 데이터 셋이나, 함수들을 모아두는 용도로 사용
• 보통 어떤 애니메이션을 재생할지 결정하는 과정에서
인스턴스에서 Owner Pawn의 상태를 가져와 사용하는 형태가 됨
(ex: Owner가 피격 상태라면 공격 애니메이션을 재생하는 식)
*Pawn도 Instance를 가져와 참조할 수 있지만, 지양하는 편이 좋다
예를들어 데디케이트 서버를 사용하는 환경이라면, 서버 입장에서 필요도 없는 애니메이션 로직을 들고있게 되버린다.
애초에 Pawn이 애니메이션 관련 로직을 들고있다는 것 부터 SRP 위반이므로 되도록 ㄴㄴ
• 또한 루트모션의 추출도 여기서 진행됨
17. 애님 인스턴스
보통 애니메이션 로직 구성은 BP를 상속받아 이벤트 그래프를 이용하던가
코드로 구성하고싶다면 네이티브용 가상 함수를 오버라이드 해 이용한다
BP용 함수가 따로 있음
BP 이벤트 그래프 C++
18. 애니메이션 그래프
• 실제 다양한 애니메이션 로직 수행의 결과로 최종 포즈가 결정되는 곳
C++로는 할 수 없고 반드시 BP로만 작업할 수 있음 ( 쉐이더 영역 )
반드시 상위 BP에서만 작업할 수 있고, 하위 BP를 상속받을 경우
상위 BP의 애님 그래프를 그대로 사용하게됨 (그래프 노출 자체가 안된다)
19. 애니메이션 슬롯 / 그룹
애님 그래프에는 그룹과 슬롯 개념이 존재하는데
애님그래프에 특정 애니메이션을 삽입 할 수 있도록 도와주는 기능
사용 일례로 상하체 슬롯을 각각 따로 지정하여 분리할 수 있음
20. • 그룹과 슬롯은 단순히 애니메이션을 구분하기 위한 용도가 아니다
아까 보았던 몽타주도 재생시에는 최종적으로 슬롯을 통하게 되는데
이때 같은 그룹의 슬롯에 다른 애니메이션이 있으면 중지시키고 몽타주를 재생한다.
말 그대로 ‘슬롯’으로 이해하면 될 듯…
21. 애니메이션 몽타주와 슬롯, 그래프??
• 아까 보았던 애니메이션 몽타주는 애니메이션 그래프에서 사용 불가능하다.
• 애초에 애님 그래프가 아닌 다른 곳(코드, BP등)에서 애니메이션을 실행하는 과정이
단순히 애님 그래프의 Slot으로 몽타주 애니메이션 구조체를 넘겨주는 역할로 보임
추정하자면 애님 그래프가 아닌 곳에서 재생하려는 것들은 Cpu에서 연산하고,
애님 그래프에서는 쉐이더로 연산되기 때문이지 않을까?
그래서 몽타주는 Slot으로 정보를 넘겨주는 형태고,
Slot은 간단하게 봤을 때 쉐이더 함수 인자를 받아주는 창구가 아닐까…
이 부분은 단순 추정이기 때문에, 이후 더 확인해볼 예정입니다 ㅜㅜ
그래서 애님 그래프가 아닌
다른 BP나 코드에서 애니메이션을 재생하는 경우에는
애님 시퀀스도 다이나믹 몽타주를 생성해 Play하는
형태로 되어있음