对ue4 sequence的学习和理解

对ue4 sequence的学习和理解

https://zhuanlan.zhihu.com/p/351252543

项目中有大量的过场和事件,对sequence的需求量是比较大的,ue4的sequence又是一个可交互的东西,如果能进行二次开发必然是展现游戏的利器,所以需要花点时间对它进行深入的了解。

首先,要在c++中使用sequence开发,必须要先在你项目工程的.build.cs里加入四个常用的模块,分别是MoviePlayer, LevelSequence, MovieScene.这样,绝大部分sequence的模块都包含进去了,类似如下。

然后你在需要开发的.h上加入这几个.h文件,基本就差不多了。

如果要了解sequence,光从程序的角度理解肯定是不够,你必须要懂得基本编辑器里面的一些功能点,不然你看那些函数和类估计一头雾水。

在ue4的editor下,有两个sequence的入口,一个是level sequence,一个是master sequence,其实master sequence就类似level sequence的一个超集,它帮你建立文件夹,分割成一个主sequence和一堆碎的子sequence,每个子sequence里面都是一个shots,这个也是level sequence分段的基本单位。不过对于程序开发,master sequence这个就跟我们无关了,我们只需要了解level sequence的基本架构即可.

当然,除了这两个sequence,还有一个实验性功能,叫actor sequence component,这个是可以加载在actor下面的一个组件,可以为这个actor做一些简单的动画,比如位移什么的,这个功能我们在一些棋牌里用上,做一些牌的位移什么的,效果还是不错的,太复杂的功能做不了,而且有不少bug,比如你如果你在一个actor里面加了几个actorsequence comonent,它是不会单独弹出sequence编辑器的,是合并在actor面板里的,反复切换会很麻烦而且容易出错,有兴趣的可以去学习下。

在level sequence里,大致的结构如下

这里面有个重点,就是在bind里,你如果需要控制摄像机在sequence结尾保持状态,你需要设置为keep state。

每个shot下的多个sequence都可以当成一个section,而一个master sequence又是由多个shot的sequence组成的。

另外在每个shot里,一般又会定义多种trace,用来控制事件,材质,声音,淡入淡出等等.

 

在c++开发中,我们一般访问sequence需要定义两个最基本的类.

这分别代表一个一个actor的类和一个实际播放控制的类.我们在代码中这么控制获取他们.

假定我先定义个sequence的引用。

然后使用它来构造.

当构建成功,我们则可以使用下面一些常用函数来控制和访问它们.

篇幅有限,我就简单做了个结构的分析思维导图。

只是个学习笔记,里面还有很多疏忽和遗漏,也会有些错误,欢迎指正!

发布于 02-18

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值