首页 百科知识 深入柔体粒子

深入柔体粒子

时间:2022-10-16 百科知识 版权反馈
【摘要】:当你创建了柔体,软件自动的生成柔体粒子,并且将模型的每一个控制点吸附于相对应的柔体粒子,所以控制柔体粒子动画就是控制柔体动画。所以柔体粒子除了有特殊的连接属性以外完全是一个标准粒子,InputGeomSpace和TargetGeomSpace这两个属性通常我们不能使用,也不做改变。然后把粒子的生命值恢复到Liveforever,播放然后回到第一帧,粒子自动消失了,因为我们初始化了它的第一帧状态。

第一节 深入柔体粒子

当你创建了柔体,软件自动的生成柔体粒子,并且将模型的每一个控制点吸附于相对应的柔体粒子,所以控制柔体粒子动画就是控制柔体动画。

那么柔体粒子和普通粒子有什么不一样的地方?

如同所有的粒子属性一样,柔体粒子在粒子的属性面板里面有相应的特殊属性:

img275

InputGeomSpace和TargetGeomSpace很清楚地给我们揭示了粒子为什么可以控制几何体了:maya通过将模型自身的空间位置信息给粒子,然后再将粒子的自身位置信息返回给几何体模型的创建节点,如此一来,粒子创建的时候位于每一个模型的控制点上,运动的时候又控制了每一个模型的控制点。

所以柔体粒子除了有特殊的连接属性以外完全是一个标准粒子,InputGeomSpace和TargetGeomSpace这两个属性通常我们不能使用,也不做改变。

EnforceCountFromHistory这个属性默认的是打开的,也就是粒子保持与模型的控制点数量和位置相同,这一点很重要,意味着当你创建好柔体后,柔体粒子的数量就不变了,即使你删除柔体模型的控制点也不会改变粒子数量。

接下来,我们用一个实例来学习一下柔体粒子的特性,我们将会制作一个吹气球的动画,首先当然是制作一个气球的模型了:

img276

接下来把它变成柔体,我们使用Duplicate,Make Copy Soft(复制,将复制的面变成柔体),然后选择Make Non_Soft a Goal(把不是柔体的面变成目标体),然后将目标权重设置成0.2。(这次直接选择隐藏目标体)

img277

于是我们创建了柔体粒子,拥有如下属性:

img278

利用粒子的goal属性,我们就可以制作吹气球的过程了,当然了,要“吹”,那就一定要把柔体粒子发射出来,才可以,所以我们在场景里面创造一个粒子发射器(使用默认属性),然后删除发射器发射出来的粒子:

img279

img280

注意:要删除发射器自身发射的粒子。

接下来就是让发射器发射柔粒子了,有两种方法可以为粒子指定发射器:

第一种方法:选择粒子和发射器,然后使用菜单particle→UseSelectEmitter:

img281

第二种方法:使用动力学连接编辑器。

img282

连接好了以后,点击播放,柔体不会有任何变化,粒子发射器也没有发射出更多的粒子,似乎和我们的想象差得很远。

不要忘了柔体粒子也就是普通粒子,所以要想粒子一开始没有,然后被发射出来,当然是先要让那个粒子消失,然后再发射出来。

所以,先把粒子的生命值设置成0:

img283

然后回到时间轴的第一帧,我们会发现粒子没有了,当然柔体的气球也没有了。

接下来再播放,粒子并没有出来,因为粒子的生命周期被设置为0了,当然出不来了,所以再次把粒子的生命周期调整为:Liveforever,重新播放,气球一下子就出来,而且非常直接没有过程的。

img284

之所以会一下子就到位没有过程,是因为柔体粒子的EnforceCountFromHistory属性是开启的,它使得粒子在初始状态永远保持创建时模型的位置和控制点的数量,所以一回到第一帧就变成了原来的样子了,我们把这个属性关掉播放看看:(把生命周期调整到0,回到时间轴第一帧,然后再调整到Liveforever)

效果如下:

img285

气球吹出来了,但是问题很多,在解决这些问题之前,首先解决播放的问题:

要想重新播放,又要把生命周期调整到0,回到时间轴第一帧,然后再调整到Liveforever,这个太麻烦了。

我们在第一帧使用initial将粒子初始状态记录下来,这样就不用每次都设置了。所以,先把粒子的生命值设置成0,然后回到第一帧,粒子不见了,然后到Outiner里面选中柔体粒子,使用菜单Solver→initial→set for selected。

img286

这样,粒子的初始状态就被记录下来了,以后就不用再重复操作了。然后把粒子的生命值恢复到Liveforever,播放然后回到第一帧,粒子自动消失了,因为我们初始化了它的第一帧状态。

接下来解决动画中的两个问题:

1.柔体总是周而往复的运动,很长时间才能停下来成为原来的球体;

2.粒子太多了,不断地出来粒子,远远超过柔体本身控制点的数量。

第一个问题好解决,因为这完全就是Goal的问题,只要把粒子的Conserve属性和GoalWeight属性调整一下就好了:

img287

第二个问题的原因是我们关掉了EnforceCountFromHistory属性,所以粒子的数量就没法保持不变了,要解决也很简单,我们自己把粒子的最大数量设置成为柔体的控制点的数量就可以了:

img288

获得柔体模型点的数量以后就可以在柔体粒子的属性面板里面设置了粒子的最大数量了:

img289

最后,我们将粒子发射器的发射率调整到很大的数值这样就可以一瞬间将所有的粒子都发射出来,然后不断调整粒子的Conserve属性和GoalWeight属性,最终就做出一个非常好的吹气球的过程动画了:

img290

粒子发射器参考设置:

img291

柔体粒子参数,参考设置:

img292

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈