介绍
Sequence在UE4中是用来实现过场动画的作用的。在ue4的editor中sequence有两个入口1个是level sequence 一个是master sequence。其中master sequence就类似level sequence的一个超集。一般而言对于程序开发主要了解level sequence就可以了。层级为
LevelSequence
一般用于场景的主Sequence
shots
每个sequence可以一个shots也可以多个sequence为一个shots
subscenetrack
可以在不同的SubSceneTrack里控制单个角色
takes
每个sequence可以有多个takes,方便做不同的尝试,每个takes也是一个sequnece
编辑器操作
点击关卡的Cinematic找到AddLevelSequence
点击G键盘可以在场景中看到Sequence
点击左侧Track可以添加ShotTrack
在ShotTrack这里点击加号选择InsertShot可加入短视频
双击Shot就可以进入子选项编辑
点击Track还可以选择Actor ToSequence添加完成后可以进行Actor的动画或者Transform的变化配置。
可以在关键帧进行关键属性的编辑
还能通过曲线编辑决定变量变化的规律
C++开发基础
关键模块
在.build.cs中要加入四个常用模块,分别是Movie Player、LevelSequence、MovieScene这样,绝大部分sequence的模块都包含进去了。
关键头文件
#include "MovieSceneSequencePlayer.h"
#include "LevelSequence/Public/LevelSequencePlayer.h"
#include "LevelSequence/Public/LevelSequence.h"
#include "LevelSequence/Public/LevelSequenceActor.h"
两个最基本的类
ULevelSequencePlayer* pSequencePlayer;
ALevelSequenceActor* pCurrentLevelSequenceActor;
常用函数和基础使用
//构造ULevelSequencePlayer
ULevelSequence* pStartSequenceAsset;
pSuquencePlayer = ULevelSequencePlayer::CreateLevelSequencePlayer(MyWorld,pStartSequenceAsset,FMovieSceneSequencePlayerbackSettings(),pCurrentLevelSequenceActor)
//ALevelSequenceActor获取UMovieSceneSequence
UMovieSceneSequence* pMovieSceneSequence= pCurrentLevelSequenceActor->GetSequence();
UMovieScene* pMovieScene = pMovieSceneSequence->GetMovieScene();
//获取所有轨迹
TArray<UMovieSceneTrack*> arrayTrack = pMoveScene->GetMasterTracks();
//获取所有片段
TArray<UMovieSceneSection*> arraySection = pMoveScene->GetAllSections();
//播放和停止Sequence
pSuquencePlayer->Start();
pSuquencePlayer->Stop();
学习资源
[教程]UE影视制作Sequencer基础教程合集 | Epic 徐良安
https://www.bilibili.com/video/BV1mK4y1v7vg?p=5