How Can i Used FSequencer to C++ (LevelSequencer)

TSharedPtr WeakSequencer = LevelSequenceEditor ? LevelSequenceEditor->GetSequencer() : nullptr;
if (WeakSequencer.IsValid())
TSharedRef FSeq = StaticCastSharedRef(WeakSequencer.ToSharedRef());
FSeq->CreateCamera(); // Error LNK2019 “public: void __cdecl FSequencer::CreateCamera(void)”

this My code some part Create LevelSequencer And Want Add Camera or ImportFBX.

So “FSequencer.h” Code has CreateCamera and ImportFBX , I Want that Code!

I Can Debug “FSequencer” Data but Can’t use in Functions

Can i ask what problem

I want to import fbx in C++ and meet the same problem. And here is how I fix it. ( There should be better ways to solve the problem but these codes works for me)

Step 1: Create level sequence asset
just search for code here: FVREditorActionCallbacks::CreateNewSequence in VREditorActions.cpp.

Step 2: Get sequncer
you need to include LevelSequenceEditor plugin to get ISequencer.
link text
my build.cs like this:

		new string[] {
		new string[]
		new string[]

and in my .uplugin:

"Plugins": [
		"Name": "LevelSequenceEditor",
		"Enabled": true

and if all modules are included, type these codes:

	UAssetEditorSubsystem* AssetEditorSubsystem = GEditor->GetEditorSubsystem<UAssetEditorSubsystem>();	// get sequence editor
	auto Editor = AssetEditorSubsystem->FindEditorForAsset(YourLevelSequenceAsset, false);
	FLevelSequenceEditorToolkit* LevelSequenceEditor = (FLevelSequenceEditorToolkit*)Editor;
	ISequencer* Sequencer = LevelSequenceEditor->GetSequencer().Get();	// get sequencer

Step 3: Import FBX
if you want to import fbx with a dialog box, you can use “MovieSceneToolHelpers::ImportFBXWithDialog” like this:

	UMovieScene* MovieScene = Sequencer->GetFocusedMovieSceneSequence()->GetMovieScene();
	TMap<FGuid, FString> InObjectBindingMap;
	MovieSceneToolHelpers::ImportFBXWithDialog(MovieScene, *Sequencer, InObjectBindingMap, TOptional<bool>());

else if you want it pure c++:
search OnImportFBXClicked() in MovieSceneToolHelpers.cpp Get the codes you need and put them in a AsyncTask block:

    AsyncTask(ENamedThreads::GameThread, [=]()
            // your codes here

We can use the ISequencer( FSequencer derived from this class) (Dependent on modules: “Slate”,“SlateCore”,“LevelSequenceEditor”,“Sequencer”, …) as following :

IAssetEditorInstance* AssetEditor = GEditor->GetEditorSubsystem()->FindEditorForAsset(LevelSequence.Get(), false);
ILevelSequenceEditorToolkit* LevelSequenceEditor = static_cast<ILevelSequenceEditorToolkit*>(AssetEditor);
TWeakPtr WeakSequencer = LevelSequenceEditor ? LevelSequenceEditor->GetSequencer() : nullptr;
if (WeakSequencer.IsValid() == true )
ISequencer* Sequencer = WeakSequencer.Pin().Get();
if (Sequencer != nullptr)
Sequencer->OnPlay(true); // or some other apis