// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "MovieSceneSequence.h" #include "FrameRange.h" #include "MetaHumanSequence.generated.h" #define UE_API METAHUMANSEQUENCER_API /** * Movie scene used by the MetaHuman system */ UCLASS(MinimalAPI) class UMetaHumanSceneSequence : public UMovieSceneSequence { GENERATED_BODY() public: UE_API UMetaHumanSceneSequence(const FObjectInitializer& ObjectInitializer); //~ UMovieSceneSequence interface UE_API virtual void BindPossessableObject(const FGuid& ObjectId, UObject& PossessedObject, UObject* Context) override; UE_API virtual bool CanPossessObject(UObject& Object, UObject* InPlaybackContext) const override; UE_API virtual void LocateBoundObjects(const FGuid& ObjectId, UObject* Context, TArray>& OutObjects) const override; UE_API virtual UMovieScene* GetMovieScene() const override; UE_API virtual UObject* GetParentObject(UObject* Object) const override; UE_API virtual void UnbindPossessableObjects(const FGuid& ObjectId) override; UE_API virtual void UnbindObjects(const FGuid& ObjectId, const TArray& InObjects, UObject* Context) override; UE_API virtual void UnbindInvalidObjects(const FGuid& ObjectId, UObject* Context) override; #if WITH_EDITOR UE_API virtual FText GetDisplayName() const override; UE_API virtual ETrackSupport IsTrackSupportedImpl(TSubclassOf InTrackClass) const override; UE_API void SetTickRate(class UFootageCaptureData* InFootageCaptureData); #endif public: UPROPERTY() TObjectPtr MovieScene; #if WITH_EDITOR DECLARE_DELEGATE_FourParams(FGetExcludedFrameInfo, FFrameRate& OutSourceRate, FFrameRangeMap& OutExcludedFramesMap, int32& OutMediaStartFrame, TRange& OutProcessingLimit); FGetExcludedFrameInfo GetExcludedFrameInfo; #endif private: UPROPERTY() TMap> Bindings; }; #undef UE_API