x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

Add CameraComponent in Sequencer

I am trying to add the Camera actor and its component to the sequencer.

 UCameraComponent* CineCameraComponent = CineCameraActor->GetCameraComponent();
 FGuid ComponentGuid = LevelMovieScene->AddPossessable(TEXT("CameraComponent"), CineCameraComponent->GetClass());
 FGuid CineCameraGUID = LevelMovieScene->AddPossessable(CineCameraActor->GetActorLabel(), CineCameraActor->GetClass());    
 FMovieScenePossessable* CineCameraComponentPossesable = LevelMovieScene->FindPossessable(ComponentGuid);    
 LevelSequenceAsset->BindPossessableObject(CineCameraGUID, *CineCameraActor, CineCameraActor->GetWorld());
 LevelSequenceAsset->BindPossessableObject(ComponentGuid, *CineCameraComponent, CineCameraActor->GetWorld());

The above code adds both the objects as separate possesable objects. And the binding to the component isnt lost. When I set the parent as : CineCameraComponentPossesable->SetParent(CineCameraGUID). The CameraComponent in sequencer shows red text "The object bound to this track is missing". Is there anything wrong with the above approach.?

Product Version: UE 4.16
Tags:
more ▼

asked Sep 16 '17 at 10:35 AM in C++ Programming

avatar image

GeneralD
1 2 3

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

That seems to work for me. I used your exact code and put the SetParent at the end and the binding wasn't red for me. The only extra thing I did was to call this so that the sequencer tracks refresh (if you don't have this, you'll probably need to close and reopen your sequence)

 NotifyMovieSceneDataChanged( EMovieSceneDataChangeType::MovieSceneStructureItemAdded );
more ▼

answered Sep 17 '17 at 03:25 AM

avatar image

Max.Chen STAFF
2.3k 28 14 69

avatar image GeneralD Sep 18 '17 at 10:37 AM

I did it like this :

FAssetEditorManager& AssetEditorManager = FAssetEditorManager::Get();

AssetEditorManager.OpenEditorForAsset(LevelSequenceAsset);

CineCameraComponentPossesable->SetParent(CineCameraGUID);

IAssetEditorInstance* AssetEditor = FAssetEditorManager::Get().FindEditorForAsset(LevelSequenceAsset, true);

FLevelSequenceEditorToolkit* LevelSequenceEditor = (FLevelSequenceEditorToolkit*)AssetEditor;

if (LevelSequenceEditor != nullptr)

{ ISequencer* Sequencer = LevelSequenceEditor->GetSequencer().Get();

Sequencer->NotifyMovieSceneDataChanged (EMovieSceneDataChangeType::MovieSceneStructureItemAdded);

}

Still doesnt work. I still get the reference error.

avatar image Max.Chen STAFF Sep 19 '17 at 03:02 AM

Not sure. I stuck your original code, plus the SetParent and the NotifyMovieSceneDataChanged into one of the functions in FSequencer to test and it worked fine for me.

If you want to package up your code, I'll try to take a look.

avatar image GeneralD Sep 19 '17 at 04:01 AM

I am implementing the sequencer functionality within an editor module in a plugin. I need to be able to call the NotifyMovieSceneDataChanged from within my own class and functions. How can I do that? I would appreciate the help.

avatar image Max.Chen STAFF Sep 19 '17 at 04:27 AM

I'm not sure that the NotifyMovieSceneDataChanged is the problem here. That function is used to update the sequencer display when data changes. If you close sequencer and reopen, it'll effectively reinitialize based on the data.

So, in your case, if the level sequence asset you're building isn't already loaded in sequencer, calling NotifyMovieSceneDataChanged won't solve your problems. One way to test whether this is your problem is to create the asset you need, save it, close any sequencer you have open, and reopen that asset. If the binding still shows red, the issue lies somewhere in the AddPossessable, BindPossessable, SetParent combinations...

avatar image GeneralD Sep 19 '17 at 10:12 AM

Took another path. Following line did the trick without having to AddPossessable/BindPossessable/SetParent.

Sequencer->GetHandleToObject(CineCameraComponent);

It exposed the CameraComponent in the sequencer.

avatar image GeneralD Sep 19 '17 at 10:44 AM

So how can I get the properties like Current Focal Length in sequencer for the component.?

avatar image Max.Chen STAFF Sep 20 '17 at 04:43 AM

It should be like this:

 UMovieSceneFloatTrack* FloatTrack = LevelMovieScene->AddTrack(ComponentGuid);
 FloatTrack->SetPropertyNameAndPath(TEXT("CurrentFocalLength"), TEXT("CurrentFocalLength"));
avatar image ray.pendergraph Jan 14 '18 at 08:44 PM

i'm having pretty much the same problem as the OP. I was going to open a new thread but my code is so close to his and it seems that there is something I must be missing with SetParent. I did try pasting the code above but no dice. I've tried about 6 other ways as well to try to get the component to show up properly in the sequencer under the actor. The change notification on the sequencer did help but the component is still unbound and red while the actor is now showing bound properly.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question