[Unreal Engine] CHelper을 통해 Class를 들고오기 및 애니메이션

민혁 공부방·2024년 11월 11일


이번에는, Class를 들고올 것이다.
Object를 들고오는 부분과 비슷하지만, 매개변수의 타입 자체가 다르다.

Q) 왜 타입이 다를까?
자산 객체는 메모리에 로드되어 실제로 사용할 수 있는 리소스다. T**와 같은 타입을 사용하여 객체 인스턴스를 반환하고, 자산을 직접 사용할 수 있습니다.
클래스는 객체를 생성할 수 있는 템플릿이므로, TSubclassOf 타입을 사용하여 해당 클래스의 메타데이터만 로드한다.

Animation C++파일 새로 생성하기

'모든클래스 표시' 체크

생성하면...?

Anim Instance를 상속받는 C++ 클래스가 추가되는 부분!

하지만, 이전에 했던 방식과 동일하게 블루프린트 클래스를 생성하면 안된다.

이유)

생성된 블루프린트 클래스에 "Anim Graph"가 없다.

그러면 어떻게 해야하나?


그냐 깡으로 블루프린트 > 애니메이션 블루프린트를 생성

이렇게 생성된 애니메이션 블루프린트(ABP)는 Anim Graph가 있음! (잘된거임 ㅋㅋ)


아까 AnimInstance를 상속받는 C++ 애니메이션 클래스가 잘 들어온 모습을 볼 수 있음

우선) BluePrint 에서 Animation 같은경우
기본적으로 들어가는 이벤트중 가장 대표적인
"BeginPlay"와 "BluePrint Update Animation"이벤트가 C++에서는 사용되지 않고,
그 대신 "Native BeginPlay"와 "Native Update Animation"이 들어간다.


1. 아까 AnimInstance를 상속받음을 나타낸다.
2. NativeBeginPlay(), NativeUpdateAnimation()을 사용한다.

우선, Reflection을통해 UFUNCTION을 BlueprintImplementableEvent 형태로 Test()함수를 만들어주었는데,
이는 C++에선 함수명으로 들어간다.

BluePrint에서는 이런느낌이라고 생각하면 됨...!!
BlueprintImplementableEvent : C++ 클래스 내에서 선언한 이벤트를 블루프린트에서 구현할 수 있게 해주는 옵션

또한, Reflection을 통해 UPROPERTY로 외부에서 수정 불가능하게 또 읽기전용의 옵션을 추가하고 이를 Animation이라는 카테고리에 지정해서

Speed 변수를 나타내주었다.

profile
한번 더 복습하기 위한 개인 공간입니다!

0개의 댓글