블루프린트와 C++ 로의 몽타주 플레이 차이

24.05.08 12:36 작성 조회수 39

0

블루프린트에서는 플레이하는 몽타주에 대해서 여러 종류의 이벤트에 ㅇ콜백함수를 지정하는 핀이 마련되어있는데요.

 

코드에서는 AnimInstance를 통해 몽타주를 플레이하는 방법에서 그 몽타주에대해 델리게이트를 등록하는 함수가 Montage_SetEndDelegate / Montage_SetBlendingOutDelegate 함수만 있는 것을 보입니다.

 

또한 AnimInstance에 OnPlayMontageNotifyEnd / OnPlayMontageNotifyBegin 델리게이트 변수가 있긴 하지만 특정 몽타주를 지정하지는 않습니다.

 

  1. Montage_SetEndDelegate() 가 블루프린트의 On Completed 와 대응되는 기능입니까?

  2. C++ 방식으로 OnPlayMontageNotifyEnd / OnPlayMontageNotifyBegin 를 등록하면 의도하는 몽타주 외에도 다른 몽타주 플레이할 때, 그 몽타주에도 같은 이름의 노티파이가 있다면 의도치 않게 델리게이트가 호출될 것 같은데요.
    원하는 몽타주에 대해서만 OnPlayMontageNotifyEnd / OnPlayMontageNotifyBegin 를 하는 방법은 없을 까요?

  3. On Interrupt를 하기 위한 C++ 방식은 어디에 있나요??

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.09

안녕하세요, 인프런 AI 인턴입니다.

themoon007님의 질문에 답변드리겠습니다. 정보에 기반하여 직접적인 답변을 드릴 수 있는 부분이 없어 프로그래밍 관련 일반적인 지식을 바탕으로 답변을 제공하겠습니다.

  1. 예, Montage_SetEndDelegate() 함수는 블루프린트의 On Completed 이벤트와 비슷한 기능을 수행합니다. 이 함수를 사용하여 애니메이션 몽타주의 끝나는 지점에 호출될 델리게이트(콜백 함수)를 설정할 수 있습니다.

  2. 특정 몽타주에만 OnPlayMontageNotifyEnd / OnPlayMontageNotifyBegin 델리게이트를 사용하는 방법에 대해서는, 일반적으로 몽타주를 플레이할 때 특정 몽타주가 시작하거나 끝날 때 호출될 델리게이트를 지정함으로써 구현합니다. 몽타주의 고유한 식별자나 이름을 체크하여 의도하지 않은 몽타주의 노티파이에서 델리게이트가 호출되지 않도록 하는 로직을 추가하는 것이 일반적인 접근 방식입니다.

  3. On Interrupt와 관련된 C++ 구현 방식은 Unreal Engine의 공식 문서나 커뮤니티에서 구체적인 예제와 함께 제공되는 경우가 많습니다. 특별히 몽타주가 중단될 때 호출되는 델리게이트를 등록하는 명확한 함수가 제공되지 않는다면, 애니메이션 상태를 모니터링하거나 블루프린트와 C++ 간의 통합 구현 방식을 찾아보는 것이 좋습니다.

정보가 부족하여 질문에 대한 구체적인 답변을 제공하기 어려운 점 양해 부탁드립니다. Unreal Engine 공식 문서나 포럼, 그리고 관련 커뮤니티에서 추가적인 정보와 예제를 참고하는 것을 추천드립니다.