diff --git a/Source/Flow/Flow.Build.cs b/Source/Flow/Flow.Build.cs index a1c5597a..b03f3b0d 100644 --- a/Source/Flow/Flow.Build.cs +++ b/Source/Flow/Flow.Build.cs @@ -4,8 +4,13 @@ public class Flow : ModuleRules { public Flow(ReadOnlyTargetRules Target) : base(Target) { - PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + PublicDependencyModuleNames.AddRange(new[] + { + "LevelSequence" + }); + PrivateDependencyModuleNames.AddRange(new[] { "Core", @@ -13,7 +18,6 @@ public Flow(ReadOnlyTargetRules Target) : base(Target) "DeveloperSettings", "Engine", "GameplayTags", - "LevelSequence", "MovieScene", "MovieSceneTracks", "Slate", diff --git a/Source/Flow/Private/LevelSequence/FlowLevelSequencePlayer.cpp b/Source/Flow/Private/LevelSequence/FlowLevelSequencePlayer.cpp index 484859fd..43dc4cfa 100644 --- a/Source/Flow/Private/LevelSequence/FlowLevelSequencePlayer.cpp +++ b/Source/Flow/Private/LevelSequence/FlowLevelSequencePlayer.cpp @@ -8,9 +8,9 @@ UFlowLevelSequencePlayer::UFlowLevelSequencePlayer(const FObjectInitializer& Obj { } -UFlowLevelSequencePlayer* UFlowLevelSequencePlayer::CreateFlowLevelSequencePlayer(UObject* WorldContextObject, ULevelSequence* InLevelSequence, FMovieSceneSequencePlaybackSettings Settings, ALevelSequenceActor*& OutActor) +UFlowLevelSequencePlayer* UFlowLevelSequencePlayer::CreateFlowLevelSequencePlayer(UObject* WorldContextObject, ULevelSequence* LevelSequence, FMovieSceneSequencePlaybackSettings Settings, FLevelSequenceCameraSettings CameraSettings, ALevelSequenceActor*& OutActor) { - if (InLevelSequence == nullptr) + if (LevelSequence == nullptr) { return nullptr; } @@ -32,7 +32,8 @@ UFlowLevelSequencePlayer* UFlowLevelSequencePlayer::CreateFlowLevelSequencePlaye ALevelSequenceActor* Actor = World->SpawnActor(SpawnParams); Actor->PlaybackSettings = Settings; - Actor->LevelSequence = InLevelSequence; + Actor->LevelSequence = LevelSequence; + Actor->CameraSettings = CameraSettings; Actor->InitializePlayer(); OutActor = Actor; diff --git a/Source/Flow/Private/Nodes/World/FlowNode_PlayLevelSequence.cpp b/Source/Flow/Private/Nodes/World/FlowNode_PlayLevelSequence.cpp index 09e415b1..cbf78117 100644 --- a/Source/Flow/Private/Nodes/World/FlowNode_PlayLevelSequence.cpp +++ b/Source/Flow/Private/Nodes/World/FlowNode_PlayLevelSequence.cpp @@ -114,7 +114,7 @@ void UFlowNode_PlayLevelSequence::CreatePlayer() if (LoadedSequence) { ALevelSequenceActor* SequenceActor; - SequencePlayer = UFlowLevelSequencePlayer::CreateFlowLevelSequencePlayer(this, LoadedSequence, PlaybackSettings, SequenceActor); + SequencePlayer = UFlowLevelSequencePlayer::CreateFlowLevelSequencePlayer(this, LoadedSequence, PlaybackSettings, CameraSettings, SequenceActor); SequencePlayer->SetFlowEventReceiver(this); const FFrameRate FrameRate = LoadedSequence->GetMovieScene()->GetTickResolution(); diff --git a/Source/Flow/Public/LevelSequence/FlowLevelSequencePlayer.h b/Source/Flow/Public/LevelSequence/FlowLevelSequencePlayer.h index b6eb28eb..d7cbceea 100644 --- a/Source/Flow/Public/LevelSequence/FlowLevelSequencePlayer.h +++ b/Source/Flow/Public/LevelSequence/FlowLevelSequencePlayer.h @@ -20,7 +20,7 @@ class FLOW_API UFlowLevelSequencePlayer : public ULevelSequencePlayer public: // variant of ULevelSequencePlayer::CreateLevelSequencePlayer - static UFlowLevelSequencePlayer* CreateFlowLevelSequencePlayer(UObject* WorldContextObject, ULevelSequence* LevelSequence, FMovieSceneSequencePlaybackSettings Settings, ALevelSequenceActor*& OutActor); + static UFlowLevelSequencePlayer* CreateFlowLevelSequencePlayer(UObject* WorldContextObject, ULevelSequence* LevelSequence, FMovieSceneSequencePlaybackSettings Settings, FLevelSequenceCameraSettings CameraSettings, ALevelSequenceActor*& OutActor); void SetFlowEventReceiver(UFlowNode* FlowNode) { FlowEventReceiver = FlowNode; } diff --git a/Source/Flow/Public/Nodes/World/FlowNode_PlayLevelSequence.h b/Source/Flow/Public/Nodes/World/FlowNode_PlayLevelSequence.h index baa77747..2db121ef 100644 --- a/Source/Flow/Public/Nodes/World/FlowNode_PlayLevelSequence.h +++ b/Source/Flow/Public/Nodes/World/FlowNode_PlayLevelSequence.h @@ -1,12 +1,13 @@ #pragma once #include "EngineDefines.h" +#include "LevelSequencePlayer.h" #include "MovieSceneSequencePlayer.h" + #include "Nodes/FlowNode.h" #include "FlowNode_PlayLevelSequence.generated.h" class UFlowLevelSequencePlayer; -class ULevelSequence; DECLARE_MULTICAST_DELEGATE(FFlowNodeLevelSequenceEvent); @@ -31,7 +32,10 @@ class FLOW_API UFlowNode_PlayLevelSequence : public UFlowNode UPROPERTY(EditAnywhere, Category = "Sequence") FMovieSceneSequencePlaybackSettings PlaybackSettings; - + + UPROPERTY(EditAnywhere, Category = "Sequence") + FLevelSequenceCameraSettings CameraSettings; + protected: UPROPERTY() ULevelSequence* LoadedSequence;