Unite Europe 2017 - Step-by-step: Age of Magic's character creation pipeline
在这篇演讲介绍了非常好的一个工作流程:利用3D Sketch来更好的介入产品原型阶段。
所谓的3D Sketch就是说在产品早期原型阶段就制作一个七八成像的角色模型(通常最终角色模型需要比较长的时间来做而且修改起来不方便),这个模型用作与2D原画的匹配,早期原型的调用并提前Debug,提交外包作为参考等等目的,能极大地提高效率,便于提前发现问题,及时改进。
3D Sketch使用的制作手段是Zbrush的Dynamesh,然后用ZRemesher进行自动拓扑减面,烘焙出polypaint到颜色贴图,就可以进Maya进行简单绑定了。
这和我目前在三维建模课程上所推荐的模型制作流程是一致的,快速成型三维造型在工具上的前提条件已经非常成熟,Dynamesh无视拓扑来建模,ZRemesher自动建立拓扑,几乎不用花费什么过多的精力就可以做一个比较逼近最终成品品质的原型模型,还可以任意动画,这些流程上的新动向我们在教学中要赶紧介绍给学生。
他们在制作上所碰到的问题有:
- 正常状态下,从草图到模型最终完成,需要1~1.5个员工一个多月的时间,一共70个角色,工作量可想而知有多大。
- 从原画设计到最终三维表现,会有很多变化(lots of variation),对流程有极大的影响,也会严重影响工期。
这都是老生常谈的问题了,通过加入3D Sketch这一流程,他们很自豪地觉得自己提高了效率。
同时,3D Sketch还可以用来修正2D原画,更准确地向外包方传达设计意图。
一些演讲的截图:
这个公司叫Playkot,他们的产品叫Age of Magic。但我好像找不到这个游戏,不知道是不是还没有正式发行(同名的找到了几个,都不对头)。
各个阶段的对比:原画->高模->低模->绑定动画->进入Unity->添加特效
介绍一共有70个角色,需要很长很长时间来制作。
从2D原画到三维模型之间的较大的空隙需要填满(也许就是留给3D Sketch的吧)。
这里是说,3D Sketch的制作方法没什么特别的,凡是可以快速成型模型的方式都可以用(Zbrush中的),比如Z球、Z-Sketch、Dynamesh等等。
从密集高模到真正的3D Sketch还需要一步转换,用Decimation Master或者ZRemesher都行,后面看来他们的选择还是用Decimation Master。
经过简单的UV拆分,就可以有法线贴图和颜色贴图了。
3D Sketch和最终模型在场景中的对比,说实话,其实已经很接近了。
3D Sketch跟最终高模对比。
简单的骨骼蒙皮绑定,仅加入了必要的IK。
这个模型在3D Sketch阶段就发现了防御姿态并不是贴合地非常紧密的问题,所以及早修复了。
这个模型原设计是一直张开翅膀的,但通过3D Sketch介入后及时发现翅膀对其他模型有严重的遮挡,所以及时修正,改为攻击时才会展开翅膀。
给外包单位的说明参考,提供了3D Sketch,以及由3D Sketch而优化过的原画设定。
总结3D Sketch的优势:快速迭代、视觉上具有权威性、便于原型化复杂的角色和动画、降低外包工作的风险。
技术要求不应该成为艺术价值的限制。
建模原则:避免添加太多“噪音细节”。
三层细节:1. 大块的、可识别的细节;2. 中等细节;3. 小细节
为动画的方便而提出的建模规范:手臂、膝盖部分要有一定的自然弯曲;尾巴、辫子等需要骨骼链的结构要做成笔直的。
最终高模的技术指标:2千万面以上,50多个SubTools,5天工作时间完成(前面不是说要months of work么?可能这里的5天是指纯粹雕刻用时吧。)
介绍了一个用来规划Zbrush场景结构的插件(需付费)
最终游戏低模的技术指标:4k~6.5k三角面,每个面都要有用途(不能浪费)。
这是他们的模型总监在修正外包提交的拓扑模型文件,他们的流程是将这一过程录屏发给外包方,可以清晰表现出修改要求以及如何进行修改。我觉得挺好的。
为动画而制定的布线规范:
举了个范例,这种有突出部分的结构,底面物体要有一个顶点在突出部分的基座内部,这样在变形的时候这个突出部分才不会在表面上滑动。
为了移动端的效率考虑,全部模型不使用透明贴图,胡子头发羽毛布料都用模型来完成,也不使用双面材质,需要双面的地方将面复制然后反转法线。
关于烘焙贴图:
他们使用xNormal来进行法线烘焙,这张图显示了烘焙规范以及低模规范。
原始贴图被烘焙成4K大小,以便未来所需(反正也不在乎这么点烘焙时间)。
角色模型绑定的技术指标:每个角色55130个骨点,统一命名,Rig文件和动画文件分开,撰写Python脚本来方便绑定和动画输出(好想要他们的内部Python脚本代码啊~~)。
动画规范:等待动画、被击中动画、死亡动画、普通攻击动画、2~3个特殊攻击动画
这里介绍的是他们挺得意的一个角色(Boss)的死亡动画制作方法,这个大石头人死亡以后会裂成小石块从指间开始一块块分裂落下。
首先复制死亡动画的最后一帧姿态,然后切割模型成小石块,依次用物理学解算出下落动画,并烘焙成关键帧动画。
然后用一个Python脚本在每个小石块中心创建Joint,并复制小石块动画曲线到对应Joint上,删除小石块自身动画,并将其指定给对应Joint作为其子物体。
最后将所有这些Joints指定给角色本身的Root Joint作为其子物体。
在游戏中,普通的死亡动画播放完成后就将模型切换到这个碎裂动画模型(是的,这个角色的死亡动画是分成两个完全不同的绑定模型来制作的)。
这一段就讲了一些他们在制作中碰到问题,比如单位比例的问题,蒙皮绑定的问题之类。
上半部分关于模型制作的演讲就结束了。
下半部分换人讲解程序部分,我自己也不是很懂,就不一一截图了。