How to add Properties to Sequencer?

I am creating a plugin to add a camera to Sequencer.
I don’t know how to add CameraComponent Properties(FieldOfView, AspectRatio, etc…) to a camera in Sequencer.

UWorld* world = GEditor->GetEditorWorldContext().World();

ACameraActor* CameraActor = world->SpawnActor<ACameraActor>();
FGuid CameraActor_Guid = LevelSequence->MovieScene->AddPossessable(CameraActor->GetActorLabel(), CameraActor->GetClass());
LevelSequence->BindPossessableObject(CameraActor_Guid, *CameraActor, CameraActor->GetWorld());

UCameraComponent* CameraComponent = CameraActor->GetCameraComponent();
FGuid CameraComponent_Guid = LevelSequence->MovieScene->AddPossessable(CameraComponent->GetName(), CameraComponent->GetClass());
LevelSequence->BindPossessableObject(CameraComponent_Guid, *CameraComponent, CameraComponent->GetWorld());

// add transform track
UMovieSceneTrack* TransformTrack = LevelSequence->MovieScene->AddTrack(UMovieScene3DTransformTrack::StaticClass(), CameraActor_Guid);
UMovieScene3DTransformSection* TransformSection = Cast<UMovieScene3DTransformSection>(TransformTrack->CreateNewSection());
TransformTrack->AddSection(*TransformSection);

and ... ???

please help, thank you.

Good start, for the other properties, you can do something like:

UMovieSceneFloatTrack* FovTrack = LevelSequence->MovieScene->AddTrack(UMovieSceneFloatTrack::StaticClass(), CameraActor_Guid);
FovTrack->SetPropertyAndPath("FieldOfView", "FieldOfView");
UMovieSceneFloatSection* FovSection = Cast<UMovieSceneFloatSection>(FovTrack->CreateNewSection());
FovTrack->AddSection(*FovSection);

// initialize some section stuff:
FovSection->SetIsInfinite(true); // infinite section so that you don't see a bar around the section key bounds
FovSection->SetStartTime(KeyStartTime); // the time of the first key
FovSection->SetEndTime(KeyEndTime); // the time of the last key

Hope that helps.

1 Like

Great !!
I got properties.

Thank you so much.