浙江铃声推荐联盟

你不觉的《悟空传》特效制作很棒吗?视效解析1

影视工业网2019-03-13 09:40:42

影视工业网专栏:MORE VFX。该片特效由MORE VFX(墨极(北京)影像制作有限公司)制作,所以这篇文章就是《悟空传》的特效制作笔记。想要了解MORE VFX,点击阅读原文。


《悟空传》燃爆暑期档,MORE VFX的艺术家们独具匠心,创造出另观者惊艳的视效奇观。从今天开始我们将陆续为大家奉上《悟空传》视效解析,开篇第一章是由我们的罗秋林老师为大家带来最具创意的金箍棒特效分享!


视效花絮·金箍棒篇


1、金箍棒特效大致分为:熔岩状态金箍棒、熔岩形成金箍棒、金箍棒长出、裂缝、膨胀、裂缝加膨胀、收缩、剥裂。



△金箍棒-概念图


2、效果测试初期导演给了一些大概方向:金箍棒是由岩浆凝结而成,爆裂过程会看到红色的岩浆凝结后成碳状黑色。由于这样一个奇怪的形态没动态参考,即使有单帧概念图,金箍棒的各种动态和质感都只能在特效测试过程中慢慢发现怎样最合适。测试过程中导演也就一边看测试结果一边调整想法。最终导致这一系列镜头耗时相当可观。

3、耗时长除了最开始对最终效果概念模糊外,最大的问题是如何实现这些不同的效果。除了全是熔岩状态和剥裂接近常规特效,其他全是没有明确制作思路的镜头。最开始我想到的办法就是用流体解算。让流体整体凝结成金箍棒、外皮龟裂,生长、膨胀技术上都能实现时,却发现还有一个要命的精度问题。在一个隙缝里解算流体、让流体具有棱角分明的尖锐外形现有技术能达到的精度还远远不够。所以我后来大部分都用程序动画来实现,但动态方面每个效果做法各不相同。由于大部分模型都程序化重新生成过,所以材质纹理也都采用全程序化方式制作。


【裂缝】

核心思路是用shader置换来控制裂逢和外皮移动,再将裂缝属性应用到ce上产生内部的光照。shader里的裂缝由一堆生长的线条控制。线条生长没法用pcfilter或attributbetransfer之类的简单算法来作匀速生长这样缺乏节奏。我先让这些线条计算出交叉和拐角的地方,当每条线被不断生长的cc属性激活时就会迅速生长或迅速停止生长。


△金箍棒-裂缝特写


【熔岩形成金箍棒】


让一根光滑的梆子做成熔岩状态我想到个讨巧的办法,只需要把模型按不同强度加上重力方向挤压变形,多迭代几次就很像了,都不需要进solver。麻烦的是控制熔岩变回金箍棒的节奏,我用voronoise将金箍棒区块化,让每块在整体动画中又有局部变化。跟耳朵连接部分的动画用流体解算过,想要熔岩变长拉丝只需要把viscosity和surfacetension调大到合适的值就可以了。但这样的结果是拉出来的丝比较绵软缺乏弹性,所以加了一些额外的属性控制velocity让拉丝的熔岩一直保持绷直的状态。





△金箍棒-熔岩形成过程


【膨胀】


有一点小小的遗憾,就是所有镜头节奏都特别快,膨胀或收缩的过程都看不到。比如膨胀时外皮都有生长、分裂或新生外皮的动态,这些细节不逐帧仔细去看基本都看不到,但观众能感觉到金箍棒是在长大而不是简单的放大或缩小。膨胀时我是让每片表皮向外移动,同时表皮边缘像细胞一样向周围扩张,如果扩张到一定面积时就自动分裂成两片或三片,如果相邻表皮间有超过阈值的缝隙时就会有新的表皮生长出来。最后这些表皮转换成vdb体积整合后再转换回poly进行渲染。



△金箍棒-变大生长


4、所有金箍棒特效视觉上都没有一个大破碎或大洪水特效来得震撼,但这些都是直到现在给我挑战最大的镜头,因为它没有现成方法可巡。希望以后能接触更多这样非常规的异想天开的特效!


视效花絮·坍塌篇↓


【天机仪坍塌】

1.天机仪坍塌特效大致分为:不同材质大块节奏、小碎块、沙尘、石头、烟尘。


△天机仪破碎


2.客户想要那种有节奏的坍塌,一大块落下来砸碎了下面的行星仪,行星仪破碎掉落,砸碎了天记仪,这样一层一层的破碎。



3.针对这个镜头考虑了很多,一个镜头表现不出来这种节奏,分成三镜,不同机位,分别展示屋顶、行星仪、天机仪。还有一个问题是机位很近,考虑到后面的接境,碎块不能有太多落在天记仪旁边,如何破碎掉落是个问题。首先考虑这么大体量的破碎该如何破碎,想到了分区域破碎,先碎行星仪,行星仪是钢结构,要有弯曲变形,还要落下一大块砸碎天记仪。结算之前要有很好的控制,碎块给好v、w、active才能开始。行星仪碎好转成vdb做被动刚体用来结算屋顶、天机仪。屋顶是玻璃材质 ,掉下来会有二次破碎,也得分开碎,这样大碎块破碎就做好了。后续加一些小碎渣、烟尘、石头。





太多落在天记仪旁边 ,如何破碎掉落是个问题。首先考虑这么大体量的破碎该如何破碎,想到了分区域破碎,先碎行星仪,行星仪是钢结构,要有弯曲变形,还要落下一大块砸碎天记仪。结算之前要有很好的控制,碎块给好v、w、active才能开始。行星仪碎好转成vdb做被动刚体用来结算屋顶、天机仪。屋顶是玻璃材质 ,掉下来会有二次破碎,也得分开碎,这样大碎块破碎就做好了。后续加一些小碎渣、烟尘、石头。


4.整体破碎想要节省时间有几个点:
   1)被动刚体要用vdb速度快。
   2)结算好的碎块要用transformpieces驱动。
   3)做debris、smoke可以用简模替代。


视效花絮·破碎篇↓

【结界桥坍塌】


结界桥坍塌大致分了3个阶段:确定破碎区域,简模动态以及铁链动态,lookdev和渲染测试。


△结界桥坍塌-效果展示



△结界桥破碎-整体破碎


【简模动态】

在简模动态的阶段,对于画面的要求是最基础的,例如:整体下落的节奏,冲镜的碎块选择,以及景别区分后的破碎量处理。近景在处理下落节奏的时候需要注意很多细节,比如下落的速度决定了整个场景的大小感觉,碎块的分布决定了整体的倒向以及画面构图,这些也是首先需要确定的东西。接下来才会去处理每一个景别上的物体破碎程度,这时便会面临数据量的问题,在处理大型破碎的时候,往往我们会为了细节而不断的添加元素,最后导致场景冗余的部分越来越多,但是对于画面来说并没有起到什么实际上的作用。例如在主物体之后的柱子,如果不破碎的情况下,画面显得纵深不够,也不够饱满,但是破碎后的碎块过多会填满整个画面,这时的碎块需要的是大小差别更大,区别更加明显,即可分割场景也可以为画面增加细节。


在处理完大体的动态的时候,需要在简模动态完成之前处理掉导演在大气氛上的一些小的需求,比如冲镜。这时的近景碎块如何冲镜就变得灵活多了,多数情况下为了更快的达到效果,通常会选择挑选体积较大的碎块手动KEY动画的形式。



△结界桥破碎-简模动态


【铁链动态】

在处理完简模动态的时候,这时我们不能继续添加细节,因为场景里还有许多铁链需要解算动态,如果过多的添加细节会导致铁链的不稳定。铁链在解算时我们选择的是以约束的方式来计算,并且降低碰撞精度,并约束旋转角度,这样一来不会产生过多的计算量,而且可以提高铁链的稳定性。对于断开的铁链,我们选择在这个阶段去制作,因为断开后的铁链会对整体破碎的力传递有一些影响,我们需要将这种不确定性降低,减少问题的发生。



△结界桥破碎-增加铁链


【Lookdev阶段】

其中最费时间的莫过于lookdev阶段了,第一个需要解决的问题就是:在添加破碎的细节过后,铁链在跟随破碎的碎块动态时,约束的不稳定造成钢体之间力的不稳定。这时我们就需要很多种的约束去确定每一个大的区域力的稳定,并且控制每一个大的区域激活的顺序,这样既达到了整体的破碎的稳定,也增加了画面的节奏感。在解决完所有钢体的动态后,此时需要做的就是增加元素了,无论是烟尘还是小的碎粒是需要被整体的风暴所影响的,为了减少数据量,采取了分区域添加细节,这样就涉及到了不同区域上的速度传递,虽然导致构成的网络略微复杂一些,但保证了整体的模拟真实性。



△界桥破碎-Lookdev


【渲染测试】


严格来说,在制作效果的同时,便已经开始了测试渲染了,这样可以保证元素在最后对接时参数的固定化,减少冗余的操作。在最后的测试渲染阶段,需要保证场景比例还原,边缘置换与材质组提供的贴图置换融合适当,画面中没有闪、跳等情况。(通常我们在解算的时候,为了还原真实场景,会对场景比例有一些调节,但最终渲染的时候还是要还原场景比例,并通过自检才能提交下游环节)结界桥这个整体的破碎场景在特效阶段大概分成了12个元素,其中包括碎块、碎渣、烟、尘土等等。管理这么多层元素的关系并不简单,由于制作镜头之前做了一个很好的命名规划,所以在最后这一步区分开近、中、远三个景别并且每个景别元素之间的区分并没有造成困扰,反而下游组在接手文件时能更快的提高效率。




△结界桥破碎-部分分层展示


商务合作:17710343057