vault backup: 2024-05-18 22:21:14
This commit is contained in:
parent
4e5d33e88c
commit
69550aef56
@ -6,7 +6,8 @@ tags:
|
|||||||
rating: ⭐
|
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)
|
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分析
|
- LevelSequence分析
|
||||||
- https://zhuanlan.zhihu.com/p/157892605
|
- https://zhuanlan.zhihu.com/p/157892605
|
||||||
|
|
||||||
|
## UMovieSceneTrackInstance
|
||||||
|
大部分Track的instance类。
|
||||||
|
|
||||||
## 继承关系
|
## 继承关系
|
||||||
UMovieSceneSignedObject -> UObject。一个UMovieScene由若干个MasterTrack(UMovieSceneTrack)组成,UMovieScene相当于是UMovieSceneTracks的容器,那么UMovieSceneTrack又由UMovieSceneSections组成,UMovieSceneSection就是一个Track中间的某一段。
|
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++
|
```c++
|
||||||
FMovieSceneEvaluationRange CurrentTimeRange = PlayPosition.GetCurrentPositionAsRange();
|
FMovieSceneEvaluationRange CurrentTimeRange = PlayPosition.GetCurrentPositionAsRange();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user