Maya教程:使用nCloth打造气球爆炸的过程(2)
这就是我解算完成的气球的初始状态。(图06)
图06
当完成tearable Constraint以后,我们要考虑一件事情,什么时候tearableConstraint会发生作用。
当我们施加了T.Cnstraints以后,在解算的第一帧,Maya便完成模型的分割,根据glueStrength的数值来决定布料对于外界施加力的“灵敏度”,glueStrength数值为0时,布料一旦开始解算就会分裂,相反为1时,布料不会分裂(glueStrengthScale==1)。所以,我们可以用两种方法:
A:通过多次解算,尝试出一个数值,使布料在某一时刻点破碎,或某一次碰撞强度下破碎。
B:直接在glueStrength上加关键帧动画,在需要布料破碎的那一个点上,把数值打到0,这样布料就瞬间破碎了。
对于气球的爆破,B方法最合适不过了。
决定了爆破的方法,下面的事情就很简单,让气球充气变大,上浮,爆破(glueStrength=0)。
因为这里使用Manual,只有两个属性,Pressure就是Pressure,没什么多解释的,数值大内压高,模型就鼓起来,负值就是内压逃逸了。(图07)
图07
需要关心的是下面这三个数值,是布料行为的最重要的三个属性,在syflex中,也有对应的属性名称。分别是抗延展,抗收缩,和抗弯折,这三个属性对应的是布料的link和edge的行为。(图08)
图08
在这里,就是气球对内部压力的“抵抗”。好在Maya为我们预置了很多不同的属性组合产生不同的效果,我们可以在nClothShape节点的presets里面选择一个适合的start point,比如Solid Rubber (固体橡皮),把stretchRes调低,或者最中性的Tshirt,调高一点damp,减小摩擦就可以得到想要的效果。
下面是我的设置。(图09)
图09
至于布料的漂浮,方法不下四五种,还可以互相组合,最简单、最直接的就是将重力方向反一下,气球就会上举,根据气球充气变大的速度,加上动画即可。(图10)
图10
最后的收尾工作
在完成以上的步骤以后,反复调试数值组合,我们要收拾一下气球破裂以后的残局。
虽然气球破碎了,但是,所有的相关属性和节点都还在起作用,包括pressure,所有的Constraints,还有布料本身的自碰撞,如果不关闭这些属性,那么气球破裂以后,那些碎片会上下翻飞最后扭做一团!
处理的方法也很简单,直接在一些boolean值上K动画,在爆破后关闭所有的约束和自碰撞以及preesure,只留下和地面以及其他passiveObjects的碰撞,贴上一些例子,注意这些Tangents都是stepped的。(图11、图12)
图11
图12