现在都时兴引擎做动画了么?!Unity制作动画短片技术详解~

可视频回复

2a33e126a8253472e65b3048a4225d57

很久没给大家分享好看的动画了蛤,正好今天安排上!话说,现在很多制作团队、开发平台在制作动画短片的时候都会用到实时渲染技术和游戏引擎。前几天,有个粉丝加上我们微信,问候之余,啪啪扔过来几个引擎做的动画。虽然效果不是那么好,但让我思考一个问题:现在都开始用引擎做动画了么?


这不,最近Unity就发布了一支动画短片《Sherman》来展示他们最新的实时渲染技术。先不介绍太多,动画献上~


▲点击视频欣赏动画短片《Sherman》


动画故事在3个角色之间展开。一只嗅到美食却始终品尝不到的浣熊,一只穷追不舍不断折磨浣熊的洒水器,还有一只看似即将坐收渔翁之利的斗鸡眼小鸟,所以你以为sherman是那只浣熊吗?NONONO,它是那只小鸟的名字。短片利用Unity来展示软件线性动画的制作能力,特别是在实时毛发着色、高清渲染流程以及Visual Effect Graph等方面的优势。下面咱们挑几部分和大家分享一下。


☀️

起底制作团队


▲《大白的梦》


在聊幕后制作之前,咱们先得来了解一下短片的制作团队。这可不是由普通艺术家们组成的team。《Sherman》的制作团队是曾经和迪士尼电视动画公司合作创作实时渲染动画《大白的梦》(Baymax Dreams)的原班人马(部分),有当时的助理导演、角色建模师、首席动画师、项目制片人等。他们和另外几位艺术家组成的核心团队用了大约8个月的时间确定了动画走向,然后将制作重点放在了毛发RnD方面。除了制作团队之外,Unity的影片RnD、EDU部门也提供了很多帮助。


▲《The Gift》


值得一提的是,2016年由Marza Animation Planet和Unity日本分部共同创作的动画短片《The Gift》提供了很多制作实时动画所需的基础,比如Alembic支持、基于原始Frame Capture系统的Unity Recorder,以及Unity的第一个Fur Shader,这些都为《Sherman》提供了很好的项目制作基础。用“众人拾柴火焰高”来形容应该不为过吧。


☀️

制作工具

 

在制作中用到的是Unity 2018.3版本,以及包括Timeline,Cinemachine,Recorder,Alembic,FBX Exporter,Visual Effect Graph,Post Processing,HDRP在内的软件包,还开发了其他工具和实用程序。


☀️

动画Blocking制作


制作之初,先是动画师进行概念blocking,利用粗略角色雕刻的快速创建了第一版动画blocking,呈现出了基本的故事设定。之后由另一位艺术家将blocking导入到Unity中,通过软件的程序相机系统Cinemachine快速创建第一版相机,也就是说在一天之内,团队就得到了第一版粗略的动画效果。这些都得益于引擎强大的实时动画和相机工具,在很短的时间内就能够让艺术家把粗略的想法变为简单的动画。


☀️

HDRP进行外观开发


▲点击视频观看look-dev解说


通过对《大白的梦》的制作,团队已经非常熟悉新的HDRP渲染器的操作流程了。所以这次在新项目中,他们想要在之前的基础上尽可能地继续改进渲染器和工具集方面的性能。

 

你看《Sherman》整个的画面质量级别还是挺高的,尤其是浣熊和小鸟的毛发。说起动画短片中相当厉害的毛发,我们最容易想到的就是《Bibly》里面的兔耳袋狸和幼鸟宝宝,所以制作团队也希望可以在Unity内部达到类似于这种级别的毛发质量,既可以实现超快速的制作流程,又能达到高质量的渲染输出。


▲《Bibly》


他们使用Post Processing Profile进行整体色彩分级,同Cinemachine相机剪辑配置文件一起来调节每个镜头的曝光、DoF、光晕等效果。这种方法不仅可以在多个镜头中快速尝试不同的颜色分级调整,同时还保留了所有镜头的外观效果。

 

在整个制作过程中,他们通过Cinemachine Storyboard扩展程序来比较图像参考和当前视觉效果之间的差异。利用Storyboard中的SplitView功能,可以在项目中查看视觉目标参考图像,使用Waveform Monitor(波形监视器)了解与视觉目标的颜色差异,可以让每个镜头的色彩细化工作实时进行。


由于核心团队中只有一位3D模型师,就需要把整个短片的环境制作任务降低到最少,还不能涉及到太多的资产。主要角色和道具模型,比如浣熊、洒水器和狗粮盆是在Maya和3ds Max中创建的,在Substance Painter中进行纹理绘制。另一部分资产干脆从Asset Store中“借”来的,模型师在用的时候只是匹配一下风格和色板。



比如像花园守护精灵像这种资产用到的是标准的HDRP Lit材质,而场景中的其他元素,比如被洒水器胀大的水管就得使用一些更为高级的材质了,是由Unity基于节点的视觉材质编辑器Shader Graph提供的。



模型师把Stacklit shadergraph作为主节点,构建了一个自定义的Shader Graph,包括用于气泡动画、模拟焦散和表面波(使用顶点动画使表面变形)的独立控件。并创建了两个独立的凸镜面,一个用于水管外层塑料的平滑反射;另一个用于内层结构的纤维质感。所有这些外部参数都可以在时间轴上独立键入,创建水管膨胀场景动态和分层的外观效果。在Shader Graph的帮助下,模型师无需图形工程师的帮助,就可以自己创建并迭代水管的外观效果。



☀️

眼睛的着色器


在进行与角色相关的工作时,很关键的一部分就是眼睛的制作和渲染。这回制作团队在尝试了多种眼睛着色器之后,确定了由自定义着色器和相应MonoBehaviour脚本相结合的工具,可以用来控制眼睛视差的方向。

 

其实制作眼睛要比我们看起来复杂得多,在很多实时作品中,角色的眼睛大多都会被简化成只有内外两层结构,效果质量看上去自然就会差很多。但是在《Sherman》中有很多特写镜头,这就需要眼睛的部分要更有“料”才行。

 

为了使着色器能够提供更为真实可信的视差效果,制作团队从0-1的范围处理 Eye’s UV。


右上角的那一小块是眼球背面的贴图,主要的这一大块就是注视前方的眼睛了。在UV空间中是0.5/0.5的位置,使用这种UV设置的好处就是,着色器可以对其进行修改,获得更为准确的视差效果。



还有一个很重要的细节就是,眼睛里的骨骼走向也可以用来计算视差效果,为相机视图方向提供单帧参考。眼睛里的折射是两个适量函数(眼睛方向vs相机视图方向),可以显示视差效果程度。

 

然后由团队的图形工程师添加的最终视觉细节就是眼睛的环境遮挡,通过对眼睑外部参数进行光线步进(raymarching)来控制AO。



得到的最终效果都会体现在MonoBehaviour的“眼部控制器”脚本中,团队可以利用这个脚本对每个镜头的眼睛属性进行动画的创作和处理,根据实际需要来解决眼睛虹膜等细节问题。


 ☀️

利用Cinemachine处理相机Layout

 


在《大白的梦想》中担任助理导演的艺术家这回的一部分任务是利用Unity的相机管理工具Cinemachine创建相机Layout,优化相机的镜头和运动。他通过镜头对浣熊进行程序性跟踪,在单个时间轴中尝试多种相机跟踪方式,来比较哪种镜头感更好一些。从这个角度来说,确实比传统工具创建相机动画的方式更快捷一些。最后使用模型导出插件FBX exporter把相机路径从Unity导到Maya中,就可以方便动画师的下一步工作了。



☀️

特效部分的制作

 

短片中的洒水器一直在折磨小浣熊,所以创作过程中会涉及到一部分流体的制作。比较传统的处理流体动画的方法就是Houdini或者是Maya本身自带的流体系统,但是由于对软件不是很熟悉,制作团队担心这样会限制质量效果。而差不多也正是在这个时候新的基于节点的GPU-加速效果系统Visual Effect Graph出现了。

 

对于洒水器该有一个什么样的效果,艺术家们想到的是直接迅速略带“监视”意味的感觉,然后再根据不同情况进行扩展,基本上每一个镜头都有特定的水喷射的效果。最终采用简单平面/球面碰撞代替不同体积碰撞的方式,来代替最初尝试的屏幕空间深度。



他们不仅很好地完成了水的制作,还有加入了树上落下的小叶子、走路扬起的尘埃、短路的火光等多种特效元素。


▲点击视频观看灯光合成解说



☀️

处理实时毛发&羽毛

 

在任何引擎中处理毛发时,都要考虑到毛发几何体生成、毛发着色、毛发动力学和制作这4个关键性因素。

 

对于《Sherman》中的毛发制作,艺术家们完成了几何体生成和着色这两个部分;对于动力学方面进行了一些尝试,但是并没有应用到短片的最终效果;关键的部分就是毛发的实际处理过程,利用手工的方式呈现出了“自然柔顺”的效果。



他们完成的第一件事情就是评估毛发渲染的现有存货,最早的应该是文章前面我们提到的由Marza Animation Planet为《Gift》渲染的毛发资产。但是关于这部分具体是如何实现的,制作团队还没有详细介绍技术细节,如果有机会的话在之后的内容中,我们再来给大家分享。

 

模型师在毛发环节还模拟了一小片儿皮毛的模型,上面的毛都是一根一根分离开来的。它被烘焙成SDF(有向距离场),可作为毛发几何体积的来源。通过这种高精度毛发源产生的毛发效果,要比单纯基于hull所得到的质量高很多。



☀️

自定义工具

 

除了我们上面聊到的这N多之外,《Sherman》团队在制作期间还创建了一些自定义工具,目的只有一个,节省时间&加快流程。其中的一个关键技术就是“Filmic Motion Blur”,从名字上就应该能看的出来是和运动模糊相关的。

 

这个系统的核心是基于积累(accumulation)的渲染器,时间轴序列以960fps进行渲染,中间缓冲区累积到最终写入磁盘的实际帧中,代替了以往24 fps的设置。由于效果只是和现有渲染缓冲区的结果相结合,因此它可以在没有修改的情况下与任何材质或着色器一起使用。



虽然它极大程度地提高了图像质量,但还是存在一定缺陷,那就是必须把镜头或者序列渲染出来才能查看最终效果。为了填补这个缺陷,制作团队又创建了自定义的编辑器窗口“Render Window”,制作人员可以根据实际要求进行最终渲染,在制作的同时还可以快速查看最终效果。


关于制作技术我们先给大家介绍到这里,其实有个很惊喜的地方,Unity官方为大家提供了近距离感受《Sherman》项目的宝贵机会,应该是先申请,有可能会得到源文件还有其他什么的内容,感兴趣的小伙伴可以到官网了解一下吧!好心的我把链接给大家贴在下面。不是广告哦~


https://create.unity3d.com/sherman-unity-for-linear-animation


来自圈子

文章删除后不可恢复!确实要删除吗?