Files
UnrealEngine/Engine/Source/Runtime/AnimGraphRuntime/Public/SequencerAnimationSupport.h
2025-05-18 13:04:45 +08:00

52 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
/**
* Sequencer Animation Track Support interface - this is required for animation track to work
*/
#pragma once
#include "CoreMinimal.h"
#include "HAL/Platform.h"
#include "UObject/Interface.h"
#include "UObject/Object.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "SequencerAnimationSupport.generated.h"
class UAnimInstance;
class UAnimSequenceBase;
class UObject;
UINTERFACE(meta = (CannotImplementInterfaceInBlueprint), MinimalAPI)
class USequencerAnimationSupport : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class ISequencerAnimationSupport
{
GENERATED_IINTERFACE_BODY()
/** Source Animation Getter for the support of the Sequencer Animation Track interface */
virtual UAnimInstance* GetSourceAnimInstance() = 0;
virtual void SetSourceAnimInstance(UAnimInstance* SourceAnimInstance) = 0;
virtual bool DoesSupportDifferentSourceAnimInstance() const = 0;
/** Update an animation sequence player in this instance */
virtual void UpdateAnimTrack(UAnimSequenceBase* InAnimSequence, int32 SequenceId, float InPosition, float Weight, bool bFireNotifies) = 0;
virtual void UpdateAnimTrack(UAnimSequenceBase* InAnimSequence, int32 SequenceId, float InFromPosition, float InToPosition, float Weight, bool bFireNotifies) = 0;
/** Construct all nodes in this instance */
virtual void ConstructNodes() = 0;
/** Reset all nodes in this instance */
virtual void ResetNodes() = 0;
/** Reset the pose for this instance*/
virtual void ResetPose() = 0;
/** Saved the named pose to restore after */
virtual void SavePose() = 0;
};