언리얼엔진5/각종 지식
[UE5 C++] 언리얼엔진 Timeline C++ 에서 구현하기
Rocketbabydolls
2024. 6. 19. 04:59
헤더
// TimeLine Section
FOnTimelineFloat ADSCallback;
FOnTimelineEvent ADSTimelineFinish;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Timeline)
TObjectPtr<class UTimelineComponent> ADSTimeline;
UPROPERTY(EditAnywhere,BlueprintReadOnly,Category = Timeline)
TObjectPtr<class UCurveFloat> ADSCurve;
헤더에서 선언해야 할 것 네가지
- TimelineComponet
- CurveFloat
- FOnTimelineEvent Delegate
- FOnTimelineFloat Delegate
1번 타임라인 컴포넌트는 타임라인을 재생하는 컴포넌트 이다.
2번 CurveFloat는 타임라인을 재생할 동안 따를 커브 오브젝트이다.
3번 델리게이트는 매개변수가 필요하지 않은 이벤트를 실행시킬 때 사용하는 델리게이트이다.
4번 델리게이트는 float 값이 변하는 타임라인에 사용하는 델리게이트 이다. 보통 AddInterpFloat 함수와 같이 쓰인다.
생성자
ADSTimeline = CreateDefaultSubobject<UTimelineComponent>(TEXT("ADSTimeline"));
ADSCallback.BindUFunction(this, FName("ADSTimeLineFunc"));
//ADSTimelineFinish.BindUFunction(this, FName("EndADS")); // 원할 시 구현
구현부
ADSTimeline->AddInterpFloat(ADSCurve, ADSCallback);
ADSTimeline->SetTimelineLength(0.15f);
ADSTimeline->SetLooping(false);
//ADSTimeline->SetTimelineFinishedFunc(ADSTimelineFinish); //원할 시 구현
나는 토글 형식으로 타임라인을 실행시켜 주었다.
void AVICharacter::StartADS()
{
if (!bADS)
{
D("StartADS")
bADS = true;
ADSTimeline->Play();
}
else
{
D("EndADS")
bADS = false;
ADSTimeline->ReverseFromEnd();
}
}
레퍼런스
https://docs.unrealengine.com/4.27/en-US/ProgrammingAndScripting/Blueprints/UserGuide/Timelines/
Timelines
An Overview of Timelines in Unreal
docs.unrealengine.com