大便失禁怎么回事

首页 » 常识 » 诊断 » 图文版C4D教程XP粒子模拟火焰和液
TUhjnbcbe - 2023/4/4 21:20:00
北京治疗白癜风最好方法 https://disease.39.net/bjzkbdfyy/240524/e4payul.html

最近在回味以前的老歌,听到古惑仔电影原声音乐里的一首“我话事”,觉得很带感:

然后就想着如果找一个人物舞蹈加点特效应该会很好玩,就像很早以前写过的液体跳舞小人一样:

于是就有了今天的内容,我的想法是先用火烧小人,然后用液体浇小人,最后小人长出毛来。

由于我最近不是在学习XP的EFX么,所以烟雾模拟以及液体模拟我都是用的XP。

没有XP的鹿友其实是可以用TFD以及RF来代替的,只是可能某些细节会不一样没,长毛的话就是用的C4D自带的毛发就好了。

好了,废话不多说,进入今天的正题吧!

01

骨骼动画优化部分

首先打开C4D,导入一个骨骼动画,这个骨骼动画我是在mixamo上下载的,文后我也会分享给大家,然后将帧速率改为25:

可以看到这个骨骼动画是由两部分组成的,我们先将动画本身处理一下,将这两部分分别烘焙为点级别动画:

烘焙完毕以后你会发现对象的所有信息属于不可编辑的状态:

没关系,在场次里面,把mixamo自带的两个场次删了就好了:

现在我打算让模型关节的部分作为火焰烟雾的发射源,表面的部分作为碰撞,但是可以看到现在模型的面数有1W多个:

碰撞的面数太多了,模拟火焰烟雾可能会比较卡,所以添加一个减面生成器,面数我这里减到了左右:

然后将它们连接成一个对象,现在点击播放键你会发现减面的部分没有动画了:

没关系,给减面后的对象添加网格变形器,把原来的表面对象拖进去,高级里面外部选择为表面,然后点击初始化:

点击播放键,现在减面后的对象就继承原来的动画了,然后再次将继承了动画后的对象烘焙为点级别动画:

再给场景里面添加一个曲面背景吧,我直接用的GSG的插件,自己做也可以哈,费不了多少功夫:

02

烟雾流体初调试

给关节对象添加EFX的发射源标签,取消勾选solid让它基于对象的表面发射。

由于我们的对象是有动画的,所以我这里把速度传输提高到了,这样动画的速度也会传递到流体上:

给碰撞对象添加EFX碰撞标签,这个不用多说哈:

新建EFX容器,点击播放键烟雾和火焰就正常模拟了,不过现在烟雾和火焰没有消散,这不是我想要的:

所以适当的调整烟雾、燃料以及热量的消散值,同时我这里稍微提高了一点涡度、湍流以及湍流半径:

目前感觉好像还行,就是流体的精度我觉得稍微低了点,我这里把体素尺寸改为2。

这时你会发现由于动画的速度比较快,好像流体有点赶不上运动的感觉:

我们可以提高这个运动间隙填充的数值,这样就会有一定的改善:

现在的烟雾是一开始就有的,我希望它刚开始的时候有一个过渡,然后后来逐渐消失变成液体。

所以我在发射源标签的热量以及然后数值上K了关键帧,让它们一开始是0,到了25帧到帧的时候是,然后帧到帧的时候逐渐变成0:

再次点击播放键检查一下,截图上可能看不太出来,在对象运动比较快的时候,火焰会出现闪烁伪阴影的现象:

03

液体模拟初调试

这个需要增加子帧步幅才行,但是增加子帧步幅播放起来势必会更慢,所以我们后面再处理,暂时关掉EFX。

来搞液体吧,新建反射器,这次我以表面作为对象进行发射,从多边形区域发射:

发射的模式为射击,从帧开始发射,然后持续发射帧,每帧个粒子。

勾选无交叉,半径给到1就好,然后速度改为0,粒子半径我设置为2:

这里我建议先设置一下渲染尺寸,固定一下视角,如果是在视角外的粒子我们可以用杀死场杀死,这样可以节约点资源:

新建重力场,参数默认即可:

给地面以及碰撞都添加XP的碰撞标签,然后地面的摩擦稍微提高一点。

其实按理来说应该角色动画的两个部分都添加碰撞标签的,不过我觉得这个影响不大:

模拟液体我这里还是用的xpFluidFLIP,因为我觉得和场景里的对象发生碰撞那些用它好一点。

适当的调整容器的尺寸,体素是粒子半径的3倍6,然后我这里稍微提高了一点黏度、涡度以及表面张力:

接下来给场景中添加一个杀死场,杀死视窗外的粒子:

后面我希望将粒子速度越快的地方网格越薄,速度越慢的地方越厚。

所以粒子显示里我改为通过速度映射颜色,颜色改为黑白,通过控制台可以看到速度最大的粒子是多,所以我这里设置为感觉应该差不多:

接下来给粒子添加网格,体素尺寸以及点半径大家看着调整就好:

再添加两个滤镜:

标签里激活顶点变换颜色,平滑稍微给一点数值,这样后面就可以用它来控制网格的厚薄了:

04

进一步优化烟雾流体

液体差不多就先这样吧,接下来回过头进一步优化烟雾流体吧,首先给流体的网格也添加EFX的碰撞标签,让流体也能和烟雾产生碰撞:

回到烟雾流体播放观察一下,可以在显示里切换通道查看,差不多在帧的时候,就没有了,只剩下一点温度这个影响不大:

所以我在EFX的启用上K了一下关键帧,让它在帧的时候关闭,这样可以节约一点资源又不会影响效果:

接下来给地面也添加EFX的碰撞标签,不过这样当然模拟起来会更慢:

回到EFX里,我们前面留了一个伪阴影的问题还需要解决,这个需要提高子帧步幅来处理,这里的CFL数值和最大最小子帧步幅可以配合使用。

CFL值越小模拟越精准但是模拟越慢,百分比代表着百分之多少用最小帧步幅的数值,剩下的用最大子帧步幅。

我这里把最大最小子帧步幅都改成了50,代表着都用50来计算,然后CFL值我直接拉到百分之百这样可以略微计算快一点:

差不多这样就可以缓存了,记得把EFX改为VDB,然后取消勾选压缩缓存文件:

缓存时间一个半小时,其实还是能接受的,体积也不算太大:

缓存完毕播放一下,你可能会发现刚开始的时候莫名其妙会有烟雾,但是我们缓存之前看是没有的:

这个我个人认为可能是显示上的一个bug,我们回到EFX的显示里把显示切换为烟雾,可以看到烟雾通道是没有数据的,所以这个不会影响我们的渲染:

05

进一步调整流体形态

接下来进一步调整网格吧,因为我要用另外一台电脑渲染,所以我这里先将它烘焙成了ABC文件:

给ABC文件添加置换变形器,着色器里添加顶点贴图,把网格的顶点标签拖进去:

再修改一下置换里的数值:

最后再添加一个平滑变形器,数值大家看着调整就好:

06

毛发模拟

接下来就是模拟毛发了,我这里是用的表面这个对象添加的毛发,引导线的长度可以短一点:

毛发的数量我这里弄的比较多,有50W根毛发:

毛发的材质里我是直接用的自带的渐变预设:

毛发的粗细适当调整一下:

长度这里我K了一下关键帧,让它从帧到帧的时候逐渐生长出来:

卷发里适当的调整一下:

然后集束也调整一下:

毛发的启用里K一下关键帧,让它在帧才打开:

给ABC文件添加一个毛发碰撞标签,同样也K一下启用关键帧:

把毛发缓存一下,前面缓存很快,在毛发开始启用的时候会卡一会儿,等一下就好:

07

渲染部分

接下来就是渲染部分了,将渲染器切换为RS,打开GI,这个不用说哈:

新建环境光,体积的贡献值给到1,这个也不用多说哈:

新建RS体积对象,导入vdb,动画里将帧速率改为25点击计算,同样这里你会发现烟雾的方向是反的:

所以轴向里把Z轴改为-1就好了:

新建RS的体积材质给体积对象,烟雾就用密度通道,参数默认就好:

发光通道我这里用的是燃料通道,强度适当降低一点:

调整火焰的颜色我这里分享一个小技巧,我们可以将调色的模式改为开尔文,然后最右侧的颜色把开尔文值改到的样子:

然后通过调整亮度值来调整火焰的亮度,我这里给到了,别忘了把差值改为平滑,这样就能利用C4D自带的渐变色做出好看的火焰了:

网格的材质我本来是直接打算用RS预设的水材质,然后突然觉得加点颜色也挺好玩,所以就在传输颜色里修改了一下:

至于毛发材质,RS本身对C4D自带的毛发材质支持是很好的,所以就用C4D的毛发材质就好,只不过你现在会觉得毛发过白了一点:

这个是RS对高光的计算方式和C4D默认的计算方式不同导致的,官方建议是将毛发的高光强度改到2就好了:

地面和小人就是普通的反射材质,这个不用多说哈:

视情况再补两盏灯吧,这两盏灯我没有开体积贡献值:

采样方面统一采样我设置的是,其他本地采样都是:

最后渲染我是用的苦七的ti渲染的,前面火焰烟雾以及液体渲染基本差不多每帧1分钟或者不到1分钟。

但是由于我毛发数量给的很多,所以毛发渲染非常慢,平均一帧10多分钟,总时长26个小时,显卡满满的香气啊:

后面苦七又说应该让摄像机有点抖动,没办法,不想再重新渲染了,我就AE胡乱的加了点抖动导出成品看看效果吧:

动图压缩得很厉害,感觉液体模拟可以再调整一下,不管了,毛发渲染时间确实太长了。

好啦,今天的分享就到这里,想要源文件以及原视频的鹿友后台撩我获取吧!

更多内容欢迎

1
查看完整版本: 图文版C4D教程XP粒子模拟火焰和液