UE4 学习笔记 (三) Sequencer工具学习
Sequencer是UE4官方提供的唯二的过场动画编辑工具之一, 也是最新的那一个。本身提供的功能非常强大,基本你能想到的都有了!下面简单介绍下自己学习这个工具几天来的一点经验汇总。
What
开头已经简单介绍了,一般游戏开发过程中或者CG中都会需要用到一些过场动画,例如一些游戏剧情的展开;一段摄像机镜头的运用;或者一段战斗的前置打斗,等等这些的实现不可能都是由程序手动去Code实现,因为一来这块的开发内容基本都是不可重用的,程序复用性较低,二是这块的细节的修改非常频繁,可能哪天策划一个脑热想修改某些细节甚至重做。那这些情况在我们游戏开发过程中是一直存在的,而且是发生概率非常高的。
Sequencer的出现就是为了解决这个开发痛点,这里本人对老版本的Matainee没有研究,直接用的最新版本的Sequencer。
How
如何用这个工具,这个话题太大了,也不是一两句话能汇总的。本人能力有限,也只能在这里给大家归类汇总下官方教程的学习流程:
首先上来第一步,建议大家按照入门教程一步步先做下找找感觉。
然后就可以开始参考操作指南撸每个细节的功能。
官方已经分了初级,中级,高级的难度。也可以根据自己的兴趣选择感兴趣的功能学习,反正我是撸了一个星期。😓
这里说下我自己遇到的一个问题吧,官方教程本身分Doc 和 API 两套, 其中API中是可以切换到简体中文的,对于英语不好的同学简直是。。。 But,我想说Doc和API,以及API中英文和中文的内容都可能不一样,莫办法。简体中文的翻译总是会延迟一点~
TIPS:还有具体使用Doc还是API版本,看你个人习惯。这里提醒大家一点看清楚顶部的引擎版本。本人就遇到一次用4.21的doc去学习新功能,结果在自己的引擎里怎么也找不到对应的操作菜单的蠢事。被自己蠢😢了
Why
下面结合本人的一点学习经验,把自己学习的过程中的一点疑问QA下,希望能对你有帮助:
Q : 对象如何在Sequencer中动态生成或者复用 ?
A:如果是多人协作开发的游戏,那我们必然会遇到资源管理的问题。不太可能在做过场动画过场中对任意需要的直接直接拖过来就用。肯定得考虑一些资源复用或者重用的问题。
UE里已经想到了这点,目前看它提供了如下两个方式来解决这个问题:
1. Convert to Spawnable : 个人的理解是这里在Sequencer中只是存储的是对象的引用,当运行的时候再生产对应的对象,而不是资源跟着场景绑定。
2. Actor Rebinding in :
这个功能就有点厉害了,可以允许我们在制作的时候建一个空的对象去做各种轨迹运动等,然后再在蓝图里动态的把他替换成我们想要的Actor,可能是我们在游戏里动态生成的对象但一定是能在蓝图中取到的对象。
Q : 有几种方式去播放Sequencer ?
A:一般有两种,一种设置为场景运行之后自动播放,另外一种是在蓝图里根据外部条件去动态的触发。个人感觉后者应该会更常用点~
Q : 如何与蓝图中的功能进行交互 ?
A:被动触发这个就不说了,毕竟是Sequencer自己控制不了的。我们说说主动调用,一般如果我们想主动在某一帧去调用蓝图中的事件,可以考虑使用Event Track中的Custom Event来实现,既在Sequencer中调用指定的Event Name并传参数过去。我想这个Track应该能引发你无限的遐想吧😁
Q : 如何集成有复杂交互的UI ?
A:设想下一些剧情动画过程中可能会有某几个NPC发生了一段剧情对话,那这里可能就得和UI进行频繁的交互。这块看官方的教程里很少涉及,个人初步的设想是在BluePrint层对UI调用封装好,然后通过Custom Event去触发调用。这块有待后续的实践😢
Q : 美术是否可以在Maya或者3D Max里进行过场动画的制作,然后直接导入UE4中 ?
A:先说个人研究之后的结论:不行!
UE官方的推荐做法是可以看这篇,说下个人的理解。UE官方的推荐做法是提前在UE下使用Sequencer来进行整体布局,把对应需要参与该场景动画的资源准备好。然后再把这些资源导出为FBX,然后再到3DMax或者Maya里进行编辑,编辑完成之后再导入UE中直接用。
细心的同学可能已经发现了,其实这个流程和美术期望的流程还是不一样的。多了第一步要提前在UE里编辑的过程,反正我们项目组的美术同学是拒绝的
我们目前的制作方式是:
- 美术同学在Maya中制作整体过场动画,包括模型、动画和摄像机动画;
- 美术制作完成之后分摄像机动画和其他模型资源统一导出;
- 策划同学在Sequencer中把如上的美术资源单独在拼一遍。
TIPS
这里有个小技巧,美术同学可以直接在Maya里把对应参与过场动画的资源的位置按照UE中目标场景中的位置提前去摆放(提前和场景美术沟通好),然后除了摄像机动画可以直接用Maya里直接导入Sequencer中以外(注意两边坐标系的统一), 其他的模型资源自带的动画和位移旋转都直接导出,策划同学可以直接在Sequencer摆放好,而不用关心一些动画的移动的细节,这个真的很重要!
当然,这个肯定不是最合理的方案但确实是能最快应用的一个方案。个人觉得,可以尝试在Maya或者3DMax中导出时候实现脚本,把对应的资源按照UE下Sequencer结构进行导出。当然本人对美术软件也不熟悉!继续埋个坑,等待后续慢慢再填!