KoreanFoodie's Study

[언리얼] UI 에서 애니메이션의 이벤트가 끝났음을 알려주는 방법 본문

Game Dev/Unreal C++ : Dev Log

[언리얼] UI 에서 애니메이션의 이벤트가 끝났음을 알려주는 방법

GoldGiver 2023. 9. 8. 19:15

 

[언리얼] UI 에서 애니메이션의 이벤트가 끝났음을 알려주는 방법

핵심 :

1. UI 에 삽입된 애니메이션에서 이벤트를 추가하고, 그래프에서 이벤트가 발생했을 때 호출할 함수를 C++ 에서 검색해서 연결해 주면 된다.

가끔 그런 경우가 있다.

코드로 풀어야 하는 동작과 연출을 함께 사용해야 할때, 특정 동작을 연출이 끝나는 타이밍에 의존해야 하는 경우가.

대표적으로 애니메이션이 있는데, 애니메이션이 완전히 끝나거나, 특정 시점에 왔을 때 코드에서 특정 동작을 수행하도록 만들어야 하는 케이스가 왕왕 생기곤 한다.

 

보통 스킬 쪽 구현을 하다보면, Notify 같은 걸 만들어서 이를 해결하기도 하지만.. UI 의 경우에는, 이벤트 트리거를 통해 이를 해결할 수 있다.

이제 예시를 보자.

 

일단 원하는 UI 를 켜 보자. 아래쪽에 애니메이션이 있을 것이다. 애니메이션을 클릭하고, 타임라인 > 트랙 추가 에서, 이벤트 트리거를 추가하자.

 

그리고, 대충 원하는 곳으로 시간 포인터(빨간색. 정확한 명칭을 모르겠다😅)를 옮기고, 새 키를 추가한다.

 

더블 클릭을 하면, 그래프 영역에서 이벤트가 생기는데, 우리가 원하는 이름으로 바꿔주자(기본값은 SequenceEvent_0 이다). 보통은 C++ 에서 호출하려는 함수명에 'Event' 를 덧붙여서 만든다(어디까지나 필자가 그렇게 한다는 뜻).

 

여기 까지 했으면, 위의 블루프린트 이벤트에서 호출할 실제 함수를 만들어 주어야 한다. C++ 프로젝트로 가서, 아래와 같이 함수를 만들어 주자. BlueprintCallable 로 만들어야 한다(혹은 BlueprintImlementable 도 괜찮다).

 

빌드를 해서 위 함수가 블루프린트에서 보이게 되면, 블루프린트에서 아래처럼 이벤트에 연결만 해 주면 된다. 그냥 오른쪽 버튼 클릭해서, 함수 이름 검색하기만 하면 된다!

 

이제 애니메이션이 재생되다가, 해당 이벤트 트리거가 있는 위치까지 도달하면, 위에 연결했던 함수(C++ 에서 정의한)가 호출될 것이다 😉

Comments