视频地址:https://www.bilibili.com/blackboard/html5player.html?aid=251526020&as_wide=1
教程作者:马鹿野郎(授权转载自公众号:野鹿志)
交作业去这里→#优设每日作业#
又有一阵子没更新了,其实我还是没闲着,先来看看要临摹的内容吧,同样来自INS上的大神@BastardFilms:
同样我这里压缩成动图大家看看效果吧:
原图作者BastardFilms,入侵请联删
原作者是使用XP制作的烟雾,由于我之前模拟烟雾都是用的TFD,XP的EFX几乎没怎么用过,所以我也想尝试一下。
不过制作出来烟雾的形态还是和原图的效果差很远,将个烂就吧。
另外其实模拟部分早几天就做出来了,但是渲染出来的烟雾总是有闪烁的情况。
我测试了很久,模拟方面应该没有问题,我猜就是渲染的问题,但是暂时没有找到解决方法,所以最后我是后期用AE消除闪烁的情况的。
好了,不多废话了,后面我们边做边说吧。
首先按照原图搭建一下场景吧,新建一个立方体,适当的调整它的大小,我这里的尺寸是60*20*60cm:
C掉以后删除顶部的面,然后添加一个布料曲面增加厚度,这个不用说哈:
把布料曲面连接对象加删除弄成一个对象,然后再新建一个立方体适当的调整它的位置和尺寸:
再次新建一个立方体调整它的大小和位置:
接下来布尔它们,然后连接对象,这个不用多说哈:
然后导入一个水龙头模型,这个我是直接在魔顿网上下载的:
把模型缩放到适当的尺寸,调整合适的位置:
新建一个大大的平面当作背景,然后让它刚好和水龙头相接,台子的尺寸如果不合适再单独选择面适当调整一下就好了:
如原图所示内部再放一个立方体吧:
现在的水龙头模型是一个整体,我们需要把它分离一下,所以添加分裂对象,模式选择为分裂片段:
将分裂C掉,就可以看到模型的各个部分都被分开了:
选中开关的部分,把它们打个组,移动到合适的地方:
然后水龙头部分可以删除多余的部分:
下面是为后面模拟做准备了,可以看到会和烟雾碰撞的水龙头部分面数有2000多。
虽然不算多,但是我们还是尽量让碰撞体的面数少一些:
所以可以先删除部分不需要的面,删除完毕以后记得优化一下点:
再用减面生成器对剩下的部分减面一下,我这里减到1000多个面,感觉差不多了:
然后再将减面对象连接成一个对象,先暂时这样吧,后面我们看着实际情况再调整:
先设置下帧速率吧,帧速率设置为25,做10秒动画吧:
我这里给开关做了一个简单的旋转动画,先选中需要旋转的部分调整一下它的轴位置:
然后让它在20帧的位置旋转90度:
接下来就是烟雾模拟了,我尝试了一下,要制作类似原图那种烟雾突突突的感觉,用粒子发射器来当作发射源感觉会比物体发射要好一些。
所以新建一个粒子发射器,我这里用的是椭圆形的发射器,调整到适当的位置和尺寸:
给水池添加XP碰撞体标签,碰撞模式为内部,反弹关掉,同时添加一个EFX碰撞标签,并且取消勾选solid,这样烟雾就可以和水池的内部发生碰撞:
给粒子发射器添加EFX发射源标签,因为我们要模拟烟雾,所以就只保持烟雾通道是百分之百,其他通道都关掉。
速度通道我也给到了一百,这样粒子运动的速度也会传输到烟雾上,卷曲我也同样给到了100,然后压力值我给了10,这样烟雾体积会有一定膨胀的感觉:
除此之外,我们想要粒子产生烟雾,还需要在额外数据中的物理数据里给烟雾一定的数值:
接下来新建XPEFX,虽然默认情况下的EFX会有自适应框,所以不改变模拟框的尺寸对模拟的速度不会有太大影响。
但是缓存出来的文件却会大的多,所以记得把体素框改小一点,通道里就只勾选烟雾通道就可以了,点击播放,你会发现烟雾精度很低:
先暂时将体素尺寸改到1吧,这样模拟速度既不会很慢,也便于观察:
现在烟雾有很多问题,没关系我们一个一个的解决。
首先是烟雾一坨坨的太大了,这个其实是和粒子的半径有关系的,所以回到粒子发射器里,将半径改为1,然后有一个1的变化范围:
接下来还有几个问题,开关是20帧的时候打开,所以烟雾应该晚一点出来才对,并且烟雾数量太多了,下落的速度也太快了。
所以我这里首先让粒子15帧的时候才发射,让粒子只存活20帧,有20帧的变化。
然后粒子的数量我改少了,同时我将粒子的速度改为0,你会发现烟雾会自然下落:
这是由于EFX里,烟雾的浮力默认是负方向导致的,我这里顺带的提高了涡度,湍流以及湍流强度:
但是现在烟雾下落的速度又太慢了点,以至于都不能碰撞以后堆积起来。
所以我这里又添加了一个重力,控制粒子下落的速度,我个人觉得这样会比较好控制点:
现在的烟雾和水龙头是没有碰撞的,所以给水龙头也添加EFX碰撞标签,并且取消勾选solid。
这时候你会发现在水龙头内部的粒子发射不出烟雾来,并且会有一定的距离:
我们首先想到的是提高模拟的精度看能不能解决这个问题,所以我这里尝试把体素改到0.2。
水龙头的内部确实有烟雾了,但是现在模拟会很慢,并且可以看下预估的缓存文件有10多个G:
我觉得这个可能不是我最好的选择,所以我这里换了一种方式,首先我把体素尺寸改到了0.5,可以看到现在的缓存文件预估是700多M:
新建一个体积略微大一点的立方体放在发射器的位置,其实相当于就是给烟雾碰撞更多一点的空间:
再给它添加EFX碰撞标签取消勾选solid:
同时回到之前的碰撞水龙头,我们把碰撞标签里重新勾选上solid,这样烟雾内部就正常的发射出烟雾,并且可以和水龙头产生正常的碰撞了:
内部的立方体别忘记也给一个EFX碰撞标签:
另外我激活了upres,体素尺寸同样也改为0.5,其他参数默认,这样会在原有的基础上再次增加烟雾的细节:
基本这样就可以进行缓存了,XP的EFX和TFD不一样,无论是RS还是OC渲染都需要导出VDB文件才行。
所以缓存的时候EFX选择为VDB,压缩缓存文件可以取消勾选,这样会提高一些缓存的速度,但是缓存文件的体积会有所增加:
缓存时间其实不长,只有10来分钟,体积也不到1G:
接下来就是渲染部分了,我首先给台子以及水池都添加了倒角变形器,增加了一点点的倒角:
新建环境光,给一个HDRI贴图,这个不用多说哈,同时新建一个大大的平面当作地面:
新建RS的体积对象,载入VDB序列,显示模式改为点,就显示100个就好,方便观察:
动画里面模式选择简单,点击计算,记得把帧速率改为25:
但是你会发现现在的烟雾的方向好像反了:
没关系,把体积对象的Z轴改为-1就好了:
接下来新建一个体积材质,载入密度通道,我这里为了让烟雾厚一点,吸收和散射都给到了8,其他参数都是默认的:
现在的烟雾是黑的,将灯光里的体积贡献值给到1就好了:
顶部在补一盏灯吧,同样记得体积贡献值要给到1:
地面和背景的材质是普通的白色反射材质:
水龙头和开关的材质是RS预设的金属铅材质:
水池是RS预设的玻璃材质,同时我把反射、折射等次数都提高了:
在优化里我取消勾选了剔除内部较弱折射:
我觉得现在的玻璃有一点点飘,所以在高级里阴影的透明度提高了一下:
台子和内部立方体的材质我是首先用RS的噪波节点制作出第一个纹理:
再用一个噪波节点制作出第二个纹理:
用一个合成节点将这两种纹理以相乘的方式混合:
最后再用一个混合节点将纹理当作蒙板,混合一个白色和灰色材质:
设置渲染尺寸,摄像机固定视角,做一个推进动画这里不用多说吧:
最后我们再来说说GI,这个就是导致这篇文章耽误了这么长时间的原因,并且现在还暂时没有找到好的方法。
在默认不打开GI的时候,我们注意看一下74帧和75帧红色箭头处的情况:
当我打开GI区别更明显,首次选择蛮力模式,二次选择辐照点云之后,可以看到红色箭头处75帧明显会比74帧要淡一些。
如果是静帧还好,在动画里面这个烟雾就会产生闪烁,这个就是一直困扰我的问题:
为此我测试了很久,每帧随机图案的选项也取消勾选了,也尝试过两种GI引擎都用蛮力。
或者将辐照点云的计算先缓存,然后载入以后提高帧混合,也都没有解决掉:
没办法,先把文章首尾最后再来说怎么在AE后期里消除闪烁吧。
采样方面,主采样是128,其他所有的本地采样都是512,渲染时长我记得是16-17个小时:
最后再来说说AE里怎么消除闪烁吧,其实很简单,就是借助了一款叫做DEFlicker的插件,它有四种消除的方式,我这里选择的是消除高速闪烁:
添加以后不用调整参数,它会自动消除闪烁,我这里添加了两个,闪烁基本就删除了,效果还不错,安装包我也会放进源文件里供大家使用:
闪烁确实没有了,不过烟雾的形态确实也没有原图好看,最后导出来看看效果吧:
来源:https://uiiiuiii.com/cinema4d/1212452832.html
图文来源于网络,如有侵权请联系删除。