UE4

UE4 Widget Animation C++

TigerFish 2022. 2. 23. 11:15

글을 쓰는 목적

 

UE4 widget animation 사용을 자주 하지 않아 기억하기 위해 이 글을 쓴다. 


작업 환경

 

UE4 : UE4.26

 


Widget Animation


Widget에 Widget animation 바인딩

 

Widget Animationㅇ르 C++ 코드와 UserWidget 바인딩을 하기 위해서는  UUserWidget class를 상속받는 클래스에 UPROEPRTY 선언시 meta=(BindWidgetAnim), Transient와 같이 UWidgetAnimation 선언

UCLASS()
class UTestWidget : public UUserWidget
{
	GENERATE_BODY()

public:
	UPROPERTY(BlueprintReadOnly, Transient, Category = "GsUI", meta = (BindWidgetAnim))
		class UWidgetAnimation* TestWidgetAnimation;
};

 

Widget animation 재생

 

UUserWidget class에 PlayAnimation을 통해 WidgetAnimation 재생, 인자 값은 WidgetAnimation

void UTestWidget::TestPlayAnimation()
{
	PlayAnimation(TestWidgetAnimation);
}

 

Widget animation 멈춤 

 

UUserWidget class에 StopAnimation을 통해 WidgetAnimation 멈춤, 인자 값은 WidgetAnimation

void UTestWidget::TestStopAnimation()
{
	StopAnimation(TestWidgetAnimation);
}

 

Widget animation 종료시 Event 실행

 

FWidgetAnimationDynamicEvent 선언 뒤 BindToAnimationFinished에 Delegate 등록 

UCLASS()
class UTestWidget : public UUserWidget
{
	GENERATE_BODY()

public:
	FWidgetAnimationDynamicEvent TestWidgetAnimationEvent;
};

void UTestWidget::PlayTestWidgetAnimation()
{
	TestWidgetAnimationEvent.Clear();
	TestWidgetAnimationEvent.BindUFunction(this, FName(FString(TEXT("OnPlayTestAnimation"))));
	BindToAnimationFinished(TestWidgetAnimation, TestWidgetAnimationEvent);
    
    PlayAnimation(TestWidgetAnimation);
}

 


참고

 

https://hombody.tistory.com/328

 

[Unreal C++] - 위젯 애니메이션(Widget Animation)

위젯 애니메이션 위젯 애니메이션은 Meta태그만 수정하면 아래와 같이 기존 위젯처럼 바인딩 시켜줄 수 있다. private: // 위젯의 애니메이션을 설정하기 위한 방법 UPROPERTY(Meta = (BindWidgetAnim), Meta = (

hombody.tistory.com

 

 

https://mingyu0403.tistory.com/281

 

[Unreal Error] 프로퍼티가 BindWidgetAnim을 사용하지만, 임시가 아닙니다!

참고 문서 https://forums.unrealengine.com/t/umg-efficiency-of-uproperty-meta-bindwidgetanim/153330 UMG efficiency of UPROPERTY(meta=BindWidgetAnim ) Hey all! Just a quick question, I’m wondering if..

mingyu0403.tistory.com