vault backup: 2024-05-18 22:21:14
This commit is contained in:
parent
4e5d33e88c
commit
69550aef56
@ -6,7 +6,8 @@ tags:
|
||||
rating: ⭐
|
||||
---
|
||||
# 前言
|
||||
***MovieSceneTextTrack ***引擎插件可以作为参考。
|
||||
***MovieSceneTextTrack*** 引擎插件可以作为参考。
|
||||
***UMovieSceneCVarTrackInstance***
|
||||
|
||||
参考:
|
||||
1. [sequencer mute tracks at runtime from c](https://forums.unrealengine.com/t/sequencer-mute-tracks-at-runtime-from-c/476278/3)
|
||||
@ -62,6 +63,9 @@ UMovieSceneSequenceExtensions methods are not exported. They don’t have the PL
|
||||
- LevelSequence分析
|
||||
- https://zhuanlan.zhihu.com/p/157892605
|
||||
|
||||
## UMovieSceneTrackInstance
|
||||
大部分Track的instance类。
|
||||
|
||||
## 继承关系
|
||||
UMovieSceneSignedObject -> UObject。一个UMovieScene由若干个MasterTrack(UMovieSceneTrack)组成,UMovieScene相当于是UMovieSceneTracks的容器,那么UMovieSceneTrack又由UMovieSceneSections组成,UMovieSceneSection就是一个Track中间的某一段。
|
||||
|
||||
@ -415,6 +419,41 @@ void UMovieSceneSequencePlayer::UpdateMovieSceneInstance(FMovieSceneEvaluationRa
|
||||
}
|
||||
```
|
||||
|
||||
这段解析来自于:https://zhuanlan.zhihu.com/p/413151867
|
||||
```c++
|
||||
UMovieSceneSequencePlayer::Play() //蓝图中调用
|
||||
UMovieSceneSequencePlayer::PlayInternal()
|
||||
UMovieSceneSequencePlayer::UpdateMovieSceneInstance
|
||||
RootTemplateInstance.Evaluate(Context, *this);
|
||||
|
||||
// FMovieSceneRootEvaluationTemplateInstance::Evaluate
|
||||
EntitySystemRunner.Update(Context, RootInstanceHandle);
|
||||
|
||||
FMovieSceneEntitySystemRunner::Flush()
|
||||
FMovieSceneEntitySystemRunner::DoFlushUpdateQueueOnce()
|
||||
FMovieSceneEntitySystemRunner::GameThread_ProcessQueue()
|
||||
FMovieSceneEntitySystemRunner::GameThread_SpawnPhase()
|
||||
|
||||
// FMovieSceneEntitySystemRunner::GameThread_SpawnPhase()
|
||||
/// System Linker->GetInstanceRegistry();
|
||||
FInstanceRegistry* InstanceRegistry = GetInstanceRegistry();
|
||||
FSequenceInstance& Instance = InstanceRegistry->MutateInstance(Update.InstanceHandle);
|
||||
Instance.Update(Linker, Update.Context);
|
||||
|
||||
// FSequenceInstance::Update
|
||||
SequenceUpdater->Update(Linker, Params, ComponentField, EntitiesScratch);
|
||||
|
||||
// FSequenceUpdater_Flat::Update
|
||||
FSequenceInstance& SequenceInstance = Linker->GetInstanceRegistry()->MutateInstance(InstanceHandle);
|
||||
SequenceInstance.Ledger.UpdateEntities
|
||||
|
||||
// FEntityLedger::UpdateEntities
|
||||
FInstanceRegistry* InstanceRegistry = Linker->GetInstanceRegistry();
|
||||
ImportEntity(Linker, ImportParams, EntityField, Query);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
暂停的核心逻辑:
|
||||
```c++
|
||||
FMovieSceneEvaluationRange CurrentTimeRange = PlayPosition.GetCurrentPositionAsRange();
|
||||
|
Loading…
x
Reference in New Issue
Block a user