BP_Weapon 클래스에서 특정 State에 대한 특정 index의 MontageParameter를 받아올 수 있는 Get StateMontage 함수를 만들었다.
요약을 하면 Montage Data Map에서 가져온 State가 맞는지 확인하고, true면 Get Montage Data에서 Index의 내용들을 반환해 주는 노드를 추가한 것이다.
이후 BP_Character로 돌아가 검을 뽑는 몽타주를 추가해 보자.
>일단 BP_Weapon 유형인 weaponNow변수를 추가한다.
>이후 검을 뽑는 로직을 짜놓는다.
설명
WeaponNow가 none이면 0, 값이 있으면 1이 들어간다. 그리고 에셋을 선택안하면 none이다.
이후 weaponNow 값을 받기 위해 Get State Montage Date의 Index에 연결한다.
이후 해당 관련된 몽타주를 불러오기 위해 Mesh와 PlayMontage(몽타주 재생)을 불러와 연결시킨다.
★ Notify
Notify 핀
Notify는 애니메이션 재생 중 특정 구간 & 지점에서 알림을 보내는 역할을 한다.
Notify을 사용할 수 있는 3가지 방법을 알아보자
방법 1) 스켈레톤 노티파이
- 애니메이션 블루프린트를 사용할 때 - 그 스켈레톤 노트파이가 배치가 되어있을 때 - 두 애니메이션이 같은 스켈레톤 파일을 사용할 때
> Draw_Montage 들어가 새로운 노티파이를 추가해 준다. > APB_Character의 이벤트에서 해당 notify_test를 입력해 이벤트로 호출한다. ABP_Character의 에니메이션 블루프린트
해당 스켈레톤에 들어가면 그 스켈레톤이 어떤 애니메이션 노티파이를 가지고 있는지 확인할 수 있다.
방법 2) 애니메이션 노티파이
> 블루프린트 - AnimNotify 생성
들어가 보면 크게 3가지만 확인하면 된다. 1. 애니메이션에 배치되었을 때 색상 변경가능. 애니메이션에 배치되었을때 색상 확인해준다.
2. 애니메이션에 추가된 노티파이 이름을 변경가능
> 애니메이션에 임시로 노티파이 하나 추가
> GetNotifyName 함수 추가. return에 A입력.
> 추가된 노티파이 이름인'TestAnimNotify'이 'A'로 바뀐 것을 확인 가능, 또 여러 가지 애니메이션에 붙이기 사용가능
3. 애니메이션에 지정한 프레임이 특정구간을 지나갈 때 호출하는 방식
Received_Notify : 어떤 스켈레탈 메시 컴포넌트가 어떤 애니메이션 재생 중에 Notify가 히트를 했을 때 들어오는 함수
Mesh Comp : 지금 해당 애니메이션을 수행 중인 스켈레탈 메시 컴포넌트가 무엇인지 Animation : 애니메이션 시퀀스의 상위 클래스(모든 애니메이션 애셋을 받을 수 있음)
예시로 test를 출력해보면.
실행 후 특정키를 입력 시 해당몽타주가 나오면서 print가 출력되는 것을 확인할 수 있다.
3) On Notify Begin을 이용하여 호출하는 방식으로 몽타주 애니메이션에 MontageNotify를 만들고, begin에 연결하는 방법 표시된 핀들
> 애니메이션에 Montage Notify 생성
참고로 Montage Notify에서도 디테일들을 수정할 수 있다.
> 출력확인을 위해 Print String 생성 후 On Notify Begin과 Notify Name 연결
> 실행해 보면 디테일에서 이름을 none으로 정한 Montage Notify이름이 출력되는 것을 확인할 수 있다.