《异教徒》技术美术大揭秘:魔王Morgan的幕后制作
对Unity Demo团队来说,使用视觉特效图集(Visual Effect Graph)制作人物是一项颇有趣味的挑战。Adrian Lazar是Demo团队的技术美术,作为一名大部分时间都在等渲染完成的人,他非常喜欢实时3D所带来的创作方式。在文中,Adrian将详细介绍Morgen的制作流程,给出几条用Unity制作VFX的实用提示
我的名字是Adrian Lazar,在电脑图形行业度过了近18年。从最开始的广告后期制作,到2009年向游戏实时图形的转变,我有着多面手的能力,而在过去几年里主要担任着技术美术的角色。我还与一支小而精的团队联手发售了自己首个独立游戏。
在2019年我作为技术美术加入Unity Demo团队时,《异教徒》第一部分已经在发布前的收尾阶段了,我参与了一些结尾特效的制作。不久后,团队就开始讨论制作Morgan,出现于短片第二部分像天神一般的VFX人物。
在叙事上,Vess(Veselin Efremov,《异教徒》的编剧、导演和创意总监)明确提出以下要求:Morgan需要在多个状态间变幻,平静与愤怒、女性与男性、或者多种状态混杂,可使身体增长好几倍,身体能破碎、能起火,等等。
而在外观上,Vess则故意留下大片空白让我们探索、实验。前同事Georgi Simeonov制作了不少概念美术,但最终都没应用到人物的VFX和变形效果上。摆在我面前的是一块空白的画板,让创作即有挑战、又有趣味。
概念美术
最初的测试先是从我用得最顺手的Houdini 3D开始,在测试后再与Vess讨论各个概念。
当然,为了制作实时的短片,我们希望在Unity中制作组成Morgan的特效,好方便修改人物,让效果能对周遭变化做出响应。因此,我舍弃了在外部软件预模拟特效的方法,转而寻找一种不同的方案。
在Unity Demo团队里,最让我开心的事就是工具和流程的压力测试、改进和开发了。这些内容都是用户每天都要用到的东西。
早期测试视频
在制作Morgan时,快乐甚至会加倍:不仅要制作复杂的实时VFX人物,还要开创复杂特效的实时创作流。我已经跃跃欲试了。
想想看,在最终环境的镜头角度、光照、后期处理和其它VFX效果下就能开发、修改人物外观!这在几年前只存在于梦中。一路下来并不轻松,但在团队的努力下,两个目标都达成了。
图像风格并未确定,又要实现实时回放和创作两个技术目标,我于是转向了当时还处于初生阶段的工具:Julien Fryer和巴黎团队开发的Visual Effects Graph。
VFX Graph当时还是个新工具,在能真正用于深度实时创作前还有很长的一段距离要走,不过它带来的潜力也是巨大的:不需要在DCC中等待效果完成,再导出到Unity查看,再回到DCC调整。
我们团队希望能在末尾之前都能做出修改,甚至是在期限的几小时前,而实时图形正好能满足。
Morgan的早期版本,周身有粒子在流动
先制作哪部分?外观还是技术?
这是一个循环往复的过程:首先,提出想要实现的概念,然后打造相关的技术。在创作中,过程很可能会有点曲折。创作方向、技术限制等原因都可能会让概念变动。
而我们又在一片无人航行的水域,用着从未用过的桨,试着实现复杂VFX人物的实时创作。事情突然就复杂了起来。
人物的第二个主要版本
第二版变形效果
技术和外观开发紧密相连时的快速迭代、实验都让我觉得乐趣无穷。这种创作自由让人上瘾,更改图像风格时更像是在制作概念艺术,而不是在做实际作品。
快速实验的另一个好处是可以迅速更改艺术方向、马上测试,在制作面部细节时我有深刻的体会。虽然大部分内容并不会被实际采用,但我从中找到了静态头发的制作灵感。
头发的演变
有时,因为技术外观两者之一陷入停滞,另一部分无法继续推进。如果我没法确定人物下一步的创作方向,或者技术无法实现我的想法,开发也就停下了。
幸好团队对我伸出了援手,这里感谢他们:
在经过3种主要版本、以及无数的小实验后,Morgan的最终面貌终于在期限前浮现出来。
Morgan最终版
Morgan的主要特性
1 VFX变形
Morgan周围的特效可在明亮和黑暗之间变换。这不仅仅是简单的色彩变化,两种效果各有一套系统,含有各自的几何形、密度、色彩、特效等等。我们设想让效果能像皮肤一样,用一种不那么令人不适的方式剥离、脱落下来。
2 身体变形
身体可以独立于VFX变形,借助blend shape变形,从女性变为男性,特效则会适应新的形状。
3 火焰
火焰看起来更像灰烬,特效可以高度自定义,可以在需要时添加额外的强度。火焰是在最终期限几周前才完成的。
每个身体部位(头冠、头部、眼睛、身体和外衣)都能设定不同的作用量,方向和流动效果可实时修改,两个状态之间火焰的色彩梯度也能更改。特效有三种输出模式可选,受光网格(Lit Mesh,用在了《异教徒》中)、不受光网格(Unlit Mesh,用在了Morgan资源包中)和屏幕空间模糊/扭曲(一种实验性模式,并未用在最终影片中,但仍可在Morgan资源商店资源包的火焰选项下找到)。
火焰一开始有一种能量爆发的效果
4 粉碎
Morgan可以粉碎成一片片碎片。效果有多种控制选项,还有一个可重新设定的效果起点(在影片中位于右手食指),以起点为原点,来生成覆盖整个身体的放射性色彩。色彩再由两个噪声遮罩修改,最后由Crumble A和Crumble B两个滑动条来控制。Crumble A仅运行在其中一个噪声模式上,无法完全摧毁身体。Crumble B则能在暂短的延迟动画后完全摧毁模型。
在粉碎效果被触发后,你需要用Reset(重置)或Recompile VFX Graph(重新编译VFX Graph)选项才能让人物回到原本状态。粉碎效果会在Update中触发一些物理作用力,所以模型并不能倒回,只能重置。
在《异教徒》短片中,为了让毁坏效果更接近现实,我们将粉碎效果与Houdini导出的模拟效果结合了起来。
早期粉碎效果测试
5 调试(Debug)
制作早期的属性调试功能极大地方便了人物制作的实验,用来测试像上方提到的噪声遮罩。每个主要内容都有调试选项。
6 实时定制
上方提到的每种内容在检视器中都有不同的自定义选项。总共有300多种参数可用于制作动画。
7 其他相关效果
虽然这里大部分时间都在讲Morgan的人物,这里还有两个同样重要的效果:Morgan部分手臂飞向Gawain时的飞石,和刺穿Gawain的尖刺。
制作中的飞石效果
Morgan最终版本的制作
Morgan由17个视觉特效图集(Visual Effect Graph)组成,每个Graph控制效果的一部分,以方便管理。
首先,粒子需要在皮肤网格上生成,在动画播放时跟随皮肤。而VFX Graph目前默认并不支持蒙皮网格,需要使用一种替代方案。
基础网格的位置、法线和切面是在UV空间中渲染的,这些数据随后在VFX Graph中用作了纹理参数,以正确地在人物表面确定粒子的位置和方向。
顶点色彩和Albedo纹理也于UV空间中渲染完成。可通过控制纹理参数来修改尺寸、大小、角度和中心点。在Morgan资源包中,我的同事Robert Cupiz(《异教徒》首席技术和渲染工程师)和Torbjorn Laedre(Demo团队首席工程师)大幅改善了纹理生成的过程。
我还使用了包含所有Graph的自定义编辑器,方便修改一些共享的属性。模型虽然已经有大概300种参数,但还可以添加更多,当然界面里过多的参数要修改起来会比较麻烦。
Morgan17个Graph中的其中一个
Unity VFX Graphs使用提示
使用动画曲线采样器(Animation Curve Sampler)可以快速制作不同的渐进、淡出和延迟效果。我大量使用了采样器在两个浮点、矢量、色彩等数值间插入Lerp值。
使用单个参数来修改多个属性和动作。比如,火焰强度滑动条会修改多个与特效相关的属性。便利性、速度和精细度需要达到一定的平衡。
火焰特效的演变
子图集(Subgraph)可以很方便地在多个Graph中重新使用同样的节点。但请注意,每次更新、编译Subgraph时,所有包含其的Graph也会重新编译。如果主Graph的数量和体积都比较大,重新编译会花费许多时间。建议在Graph的逻辑测试正确后再将其作为Subgraph,如果需要频繁修改,将节点复制到主Graph上,修改完后再重新复制回去,效率可能会更高。这样虽然不方便,但我有时为了避免过长的编译时间也会这么做。
大部分时候,滑条控制参数要比数值输入更方便,微调时更显得流畅、自然,还能限制数值范围,确保效果不会崩溃。
Graph的参数可暴露出来让用户在检视器中修改,但太多的效果参数反而会让人眼花缭乱。我多次修改了Morgan暴露的选项,在可用性和精确度中找到平衡。
这条不算技术提示,由于制作中技术和艺术相互交织,要同时解决两方面问题的难度可不是一加一这么简单。
快来下载Morgan吧
看了这么多,不如下载Morgan资源包、亲自动手要学得快。更多关于影片制作的博文和视频可在《异教徒》落地页面找到。
作为一名大部分职业生涯都用在等待模拟和渲染完成的家伙来说,实时制作简直就是美梦成真,它将重塑许许多多的行业。而我已经迫不及待地想迎接下一次挑战了。
文中涉及的资料汇总:
[1]《异教徒》发布页面:
https://unity.com/cn/the-heretic
[2] 视觉特效图集:
https://unity.com/visual-effect-graph
[3] Morgan资源商店资源包:
https://assetstore.unity.com/packages/essentials/tutorial-projects/the-heretic-vfx-character-168622
每一个“在看”,都是我们前进的动力