UE4中的动画编辑器 —— Sequencer in UE4 - 知乎 (zhihu.com)
UE4 LevelSequence源码解析 - 知乎 (zhihu.com)
C++模块
对ue4 sequence的学习和理解 - 知乎 (zhihu.com)
必须要先在你项目工程的.build.cs里加入 MoviePlayer, LevelSequence, MovieScene.
引入头文件
#include "MovieSceneSequencePlayer.h"
#include "LevelSequence/Public/LevelSequencePlayer.h"
#include "LevelSequence/Public/LevelSequence.h"
#include "LevelSequence/Public/LevelSeuqenceActor.h"
在c++开发中,我们一般访问sequence需要定义两个最基本的类.
这分别代表一个一个actor的类和一个实际播放控制的类.我们在代码中这么控制获取他们.
假定我先定义个sequence的引用。
然后使用它来构造.
当构建成功,我们则可以使用下面一些常用函数来控制和访问它们.
UE4 Sequencer 源码分析 - 知乎 (zhihu.com)
ALevelSequenceActor:是一个Actor,由它来负责加载、初始化、Tick 等操作。
ULevelSequencePlayer:运行时的主要接口,可通过这个来控制Sequence 的播放、暂停、跳转、循环控制等等。
ULevelSequence:Sequence 所对应的UAsset。
UMovieSceneTrack:序列化的Track 基类。
UMovieSceneSection:序列化的Section 基类。
FMovieSceneRootEvaluationTemplateInstance:运行时用于评估/采样的工具类。核心是Evaluate 方法。
FMovieSceneEvaluationTrack:通过UMovieSceneTrack 的Compile 后创建的运行时轨道类。
FMovieSceneEvalTemplate:Compile 后生成的Section 评估/采样工具基类。关联到序列化的UMovieSceneSction。
初始化流程
ALevelSequenceActor::PostLoad -> ULevelSequencePlayer::Initialize 和Lazy Initialize 的SetupFrame。
更新流程
ALevelSequenceActor::Tick -> UMovieSceneSequencePlayer::Update -> FMovieSceneRootEvaluationTemplateInstance::Evaluate -> FMovieSceneEvaluationTrack::Evaluate -> 具体某种Section 类的Evaluate。
Sequencer 文件结构
Sequencer文件 拥有可自包含的特性。具体说来,其可以在 LevelSequence文件 中嵌入 LevelSequence文件。
有自包含特性的 LevelSequence
通过编辑器 Toolsbar 创建 Sequencer文件 时,我们可以创建两种文件,一种是 Level Sequence,一种是 Master Sequence。这两种文件都是 Level Sequence,Master Sequence 是已经预包含了数个 LevelSequence文件 的 LevelSequence文件。
重要术语
Shot:镜头/场景/子序列。用一个SubSequence 去实现,可以包含多段Track(轨道)。
Take:镜次。某Shot(镜头)重复拍摄的次数。最后用的镜头通常在许多镜次内选择。
Camera cut:镜头切换。一种Track(轨道),用来切换镜头。
Track:轨道。拥有一条独占的时间轴轨道,能在上面加入Section(片段)。
Section:片段/段落。针对某种特定类型的属性,在时间轴上加入确定的关键帧。
Key:关键帧。针对某种特定类型的属性,在某个特定的时间,对应某个特定的值。
Sequencer Track(轨道)
Sequencer 允许创建多种轨道,除了有具体对象的轨道之外,还能够创建一些功能性轨道,下表对 Sequencer 中能够创建的轨道进行了分类:
轨道 | 翻译 | 类型 |
---|---|---|
Actor To Sequencer | 演员 | 对象 |
Audio Track | 音频 | 对象 |
Event Track | 事件 | 对象 |
Camera Cut Track | 相机切换 | 对象 |
Shot Track | 镜头轨道 | 对象 |
Time Dilation Track | 时间膨胀 | 功能性 |
Subscenes Track | 子场景 | 对象 |
Fade Track | 渐变 | 功能性 |
Level Visibility Track | 关卡可见性 | 功能性 |
Material Parameter Collection Track | 材质参数集 | 对象 |
Media Track | 媒体 | 对象 |