相信大家对前几日在Unite 2016上海的Keynote上,由Marza展示的动画短片《Gift》都印象深刻。这部使用Unity实时渲染的高品质短片可以说是奠定了使用Unity制作动画电影的基础,今天就为大家简单介绍《Gift》的制作流程。
先来看看这部使用Unity实时渲染的动画电影《Gift》:


前期调研
传统的动画制作都采用预渲染的方式,这样可以保证最佳的渲染品质,但缺点是耗时过长,制作成本过高。Marza想要解决的问题就是在保证整个画面质量的同时还能极大缩短制作周期。而Unity引擎因其简单的开发环境、超强的图形渲染能力以及自由度超高的可扩展性,成为了Marza的首选工具。

185954kk3juneuueu56zzc.png
Marza先将其原有的影视制作流程整合进Unity,然后定制一些自动化的工具,再开发一些着色器来完善画面的后期效果,整个完全不输CG动画的高品质短片《Gift》就通过Unity实时渲染出来了。下面为大家分别介绍各个流程。

工作流与数据流
《Gift》使用Maya作为建模及动画布局工具,将模型及动画文件以某种格式导入Unity,然后使用Unity代替了Arnold或V-Ray渲染器来完成渲染流程,最后将Unity输出的文件导入Nuke进行动画整合,从而高效完成了整个动画短片的制作过程。其中Unity作为主要的数据流处理工具,而导入数据到Unity,经过Unity处理后再导出的过程,就是通过Unity与Marza合作完成的插件Marza Movie Pipeline for Unity来实现的。

自动化工具与数据处理
制作《Gift》的过程中,Marza与Unity合作开发了一些自动化的工具,以保证实时渲染能达到与预渲染同样的品质并简化工作流程。下面分别为大家介绍这些工具以及数据处理的流程。

1. Alembic Importer
Alembic是一种专门针对复杂的3D几何体开发的文件格式,适用于多种3D建模软件及渲染器如Maya、3ds Max、Nuke、Houdini、Arnold、V-Ray、Renderman等等。而Unity与Marza合作的Alembic Importer插件就是用来将Maya导出的Alembic文件导入Unity中进行解析,并保证在Unity中的模型质量与在Maya中完全一致。

185834egycwwfnvwmennen.jpg

2. 将AlembicMesh导入Unity
将Alembic格式的网格直接导入Unity并赋给材质的Mesh属性,这样就能直接在Unity中看到带有材质的模型。

185835do9zu8o5c5uduz3v.jpg

3. Frame Capturer
Frame Capturer插件用于实时抓取游戏视图并输出OpenEXR格式的文件,OpenEXR是一种高动态范围图像格式,可存储比常规的8位和10位图像格式更高的动态范围和颜色精度,支持16位浮点数、32位浮点数和32位整数的像素颜色值。

4. 使用ImagePipeline合成
拿到Unity导出的OpenEXR文件后,使用Marza自有的动画制作工具Image Pipeline进行合成,这里Image Pipeline已被直接整合在Unity中,所以设计师们可以按照与原先预渲染相同的做法进行制作。

5. 处理光照并自动抓图
动画电影与游戏的最大差别就在于动画电影需要不断切换镜头,而每次镜头切换都会带来相应的光照变化,所以每个镜头都被当作单独的场景来处理。这就需要自动构建场景,并对内容及光照环境类似的场景进行复制,然后使用自动处理抓图流程,打开一次场景即进行一次抓取流程,如此反复。这样就极大地提高了工作效率,与传统制作过程的预渲染相比,平均能有565倍效率的提升。

着色器
Marza对Unity自带的StandardShader进行了扩展,针对毛发、眼球、皮肤、头发及草皮等实现了专门的着色器。其中针对毛发的着色器借助纹理贴图软件Mari的FlowMap来表现毛发的方向,让整个毛发看起来栩栩如生。而眼球着色器则可以根据灯光及视线方向来控制眼球的反射及折射情况。以上着色器都是在实时渲染的过程中对画面进行调整。

185835lxp1t868ruttffrf.jpg
彩球浪花的制作
整个场景中最激动人心的片段,就是由几百万个彩球组成的浪花了。

185835hhrikz698kwdi6rd.png
当然,这样一段效果看似只有短短几秒,但实现起来绝非易事,甚至因为彩球数量太多导致Unity编辑器的状态显示出了Bug,三角形数量超出了int的最大范围被显示为负数。此场景中三角形数量最多可达32亿,还好Unity引擎表现得出人意料,即便在状态显示出错的情况下还是非常高效地完成了渲染任务。

185835agppj0dpzgwjc2wa.jpg
总结
关于《Gift》的简单制作流程就为大家分享到这里,《Gift》的诞生很好的证明了Unity在图形渲染上的惊人能力,同时也凝聚了Marza希望与Unity一起改变整个动画电影制作流程的决心。另外Marza还表示,希望与Unity合作,将这样的实时渲染技术直接带入VR!

相信《Gift》的出现不仅为动画影视制作人员带来了全新的技术革新及流程改进,同时也为Unity开发者们打开了全新的大门,使用Unity不仅可以制作行业应用软件、游戏、VR内容,现在还可以直接渲染动画电影了!

彩蛋

最后送上《Gift》原画欣赏:

195157s46hy14hzz6g6h5a.png

195158tffwcfdaqnh4cnhh.png

195159yuhlyfpfplq7lq5i.png

195200dq7kz003qt73m3i6.png

195201bjhhq33t3ttk6q6k.png

195202aoq01hmlsahmsoo1.png

195203huu4db8ugu74o344.png

195204m4ccippp1p9fpl9x.png

195205lc08v7uuzs8vv0fu.png

195206bk0pgqa6q0tqrg2r.png

195207apnzurb4be1ehhbz.png

195208i1kfc7g8cz8vf4zf.png

shader, Unite, 电影, Unite锐亚教育

锐亚教育 锐亚科技 unity unity教程