内容纲要
在开发Sequence编辑器工具的时候,我们可能会遇到需要得到录制时自动创建的Take以用于得到录制时的时间码。
(这个是Take Recorder工具自己生成的)
想得到这个时间码的话,需要先对几个类进行区别。
UMovieSceneTakeTrack类是这个Take轨道的类。
UMovieSceneTakeSection类是UMovieSceneTakeTrack的Section。此Section中包含了图中的各类信息。
FMovieSceneIntegerChannel类是每个信息的载体,定义了大量数组用于处理帧之间的内容。
不懂得可以参考这里
//首先,得到MovieScene的所有资源绑定
TArray<FMovieSceneBinding> Bindings = \
LevelSequenceEditorToolkit->GetSequencer().Get()-> \
GetRootMovieSceneSequence()->GetMovieScene()->GetBindings();
// 循环Bindings,并在Binding中循环所有Tracks
for (FMovieSceneBinding Binding : Bindings)
{
for(UMovieSceneTrack* MovieSceneTrack : Binding.GetTracks())
{
//找到Track的名称是否包含“MovieSceneTakeTrack”。
//这里也可以用类来判断。
if (MovieSceneTrack->GetName().Contains(TEXT("MovieSceneTakeTrack")))
{
//最后得到这个Track所有的Section,然后将Section转换为MovieSceneTakeSection。
for (UMovieSceneSection* MovieSceneSection : MovieSceneTrack->GetAllSections())
{
UMovieSceneTakeSection* MovieSceneTakeSection = Cast<UMovieSceneTakeSection>(MovieSceneSection);
//到此为止,就可以获得SceneTakeSection中的成员了。
//go to 11
}
}
}
}