近期热门
粉丝2593
关注 3
获赞 10433
Unity实时渲染短片《Adam》揭秘:特效制作

[教程] Unity实时渲染短片《Adam》揭秘:特效制作

 !heats_icon! [复制链接]
3195 7 0 4 7年前 举报
关于作者


本文作者是Zdravko Pavlov,一名拥有11年经验的视觉特效美术,专注于CG动画合成、游戏特效艺术、3D建模以及灯光与渲染。Zdravko Pavlov负责Adam Demo的美术制作,包括粒子效果及动态模拟。



1.png


粒子效果


气体
我使用PhoenixFD设置液态模拟。渲染序列以纹理图表(flipbook texture)的形式在Unity的Shuriken粒子系统中使用。


2.gif

3D Studio Max中的PhoenixFD模拟预览



粒子控制体积雾的密度,场景中所有区域光也都会影响该雾状体。区域光代码由GFX程序员Robert Cupisz实现,现在可在GitHub找到相关内容。

3.gif

体积雾密度由粒子控制



水坑
我还用PhoenixFD来做水坑涟漪的液态模拟。


4.gif
3DS Max视口中模拟液态表面及渲染纹理的预览

5.gif

Shuriken粒子系统在Adam脚下触发的效果


渲染序列被再次合并入法线贴图纹理的图表。粒子在机器人的脚下生成,并渲染到一个离屏缓存中。产生的结果用来修改水坑的表面法线。



尘土和烟
射击序列中子弹击中混凝土时产生的火星和尘烟,以及其他一些次级效果(例如,空气中流动的微尘颗粒以及城墙排气口上烟柱),我都是用Unity中原生的Shuriken粒子系统来制作。


6.gif
部分环境效果示例


动态模拟


Adam中所有的角色都使用了运动捕捉技术。但是,我们仍然要为所有在运动捕捉集合中,无法物理呈现的布料及不同配饰添加另一层次级动画。对此,我们不是手工完成,而是采用一系列动态模拟来实现。



我们事先就预设好需要一些特写及慢动作镜头。模拟效果需要在精度及视觉真实度上与Demo的质量匹配,因此我们使用了一些高端离线模拟解算器。计算结果将烘焙并回放为动画。



袖子
“袖子镜头”,我们在整个生产过程中都这么称呼它。实际上,这是我第一个开始着手的镜头。我尝试了几个不同的布料解算器,以及一些蒙皮粒子方法。


7.png


最后选择3DS Max的内置布料修改器用于最终模拟。之后,我设置好一些简单测试并向导演演示。



8.gif
一些最初的布料模拟测试(3DS Max视口预览)


经过一些迭代后,我开始用Adam的动画、几何体制作最终版本进行模拟。



9.png
布料模拟(3DS Max视口)


布料模拟的结果被烘焙后,我使用Alembic Importer ,将其导入到引擎。这个工具由Unity Japan开发,可在GitHub上免费下载。



10.gif
Unity中展示以alembic流导入的不同版本的模拟


面具
我为损坏的面具构建了一个简单的Thinking Particles设置。


11.png
面具碎片的Thinking Particles设置


Thinking Particles的程序性及其集成的Volume Breaker能助我进行更快迭代,探索不同的可能性。我将完成的版本交给我们的3D建模师Plamen(Paco) Tamnev,他以此为基础制作最终模型。



12.gif
不同的Thinking Particles模拟变体


主角扯破的袖子与破碎的面具不仅对剧情本身很重要,同时也能使Adam在后续群体情景中便于被区分出来。



CARONTEFX


Caronte是由Next Limit开发的多重物理模拟引擎,Real Flow将其作为刚体及软体动态解算器已有一些时日。通过与引擎无缝整合,CaronteFX为Unity提供了极高质量的物理解决方案,并帮助我们在紧张的生产时间中制作出尽可能多的特效镜头。



在我们第一次使用时,它还处于Alpha版本,尚未集成绳子与布料的物理模拟,但我们与CaronteFX团队进行了紧密合作。他们在整个制作过程中竭尽全力为我们提供所需的工具及功能选项。目前这些都已包含在Asset Store上的CaronteFX中。



电缆
制作阶段早期,我们对于连接Adam与机器的电缆有些犹豫。因为,我们有些担心电缆的物理表现、几何体交错等等无法达到令人满意的程度。



幸运的是CaronteFX的绳索解算器非常精确,它可以基于几何体三角形进行碰撞计算,因此会将绳索(电缆)的厚度计算在内。



13.gif
Unity 5中的CaronteFX播放器


烘焙一个这样的复杂模拟会产生大量的缓存数据。我们使用了CaronteFX中添加的自动蒙皮选项。它会生成一个骨骼层级,并且可将结果导出为FBX文件。



14.gif
Unity 5中蒙皮动画回放


射击

在这个动作序列中发生了很多事情。子弹的冲击会在地面产生尘土团与火花,伴以混凝土块四散飞溅。一个机器人的腿和手臂被撕成碎片。

15.gif

早期Thinking Particles原型



这个镜头也是我比较早开始制作的,在一些早期版本中使用了Thinking Particles。Thinking Particles特别的灵活和健壮,让我能快速的尝试不同的场景。随后,当我们在流程中采用CaronteFX时,我在其中重建了这个效果,以便于使用它便利的Unity集成和自动蒙皮功能。



16.gif

Unity中射击序列的早期原型



CaronteFX拥有一个非常灵活的分段系统。我作为一名视觉特效美术,可以在Unity编辑器内就可以将Asset拆分成不同部分。新生成几何体面的材质会和新Asset保存在一起。



17.gif
CaronteFX制作的地面子弹冲击预览

Sebastian 和Lu
这两个角色的制作尤其麻烦。不仅是因为有多种不同类型的动态物体(软性、刚性物体和布料),而且有不少复杂几何体相互层叠,特别是Sebastian。


18.png
基础动画模型(左侧)以及设置好用于模拟的对象(右侧)


我将Sebastian的几何体分为三个组。斗篷、披风和悬挂在皮带上小碎片为一组。裙子、平板和刀在第二组。头巾与耳饰是第三组。然后我开始重新调整元素位置,避免交错,并开始制作低模代理以减少计算量。

19.png
刀的代理碰撞体对象以及一些关节辅助器的示例
20.gif
Unity 5中Sebastian的模拟


我们已将Sebastian角色发布到Asset Store,其中包括了一个Caronte播放器,以便您能了解模拟的设置方式。



Lu的处理也是相同的过程,但需要模拟的对象没那么多,因此设置起来要更简单和直接。



21.png
3DS Max视口中待模拟的Lu模型截图


22.gif 23.gif
CaronteFX播放器预览烘焙前的模拟


我和我们的制作设计师Georgi Simeonov在Lu的裙子上花了不少功夫,才找到厚重皮革的感觉。



最后使用了软性物体来制作裙子,而非单层布料。软性物体能让外形保持的更好,也不会像布料那样波动太大,很符合我们所预期的那种外观和物理表现。



Lu也能在Asset Store下载,其中还包含Adam与Guard角色。我已使用Unity的原生布料模拟,重制了他们的模拟,方便您更轻松对这些角色和Unity的布料系统进行深入研究。   






0
点赞
0
打赏
4
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论7
您需要登录后才可以回帖 登录 | 立即注册

图片链接失效了
6年前
回复

使用道具 举报

愜意的年假快結束了! 願接下來的每一天都踏實度過為2017寫下最精彩的篇章!
7年前
回复

使用道具 举报

學習是日積月累的大工程^^  要怎麼收獲先那麼栽!
7年前
回复

使用道具 举报

常常吸取前輩的實務經驗才能增長自己的實力!
7年前
回复

使用道具 举报

構思特效畫面需要無窮的想像力, 是個鍛鍊右腦, 磨練創造力的好方法!
7年前
回复

使用道具 举报

設計特效的優秀參考資源, 值得珍藏!
7年前
回复

使用道具 举报

感謝分享這麼好的資源!
7年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器