查看: 1334|回复: 1
打印 上一主题 下一主题

nCloth打造气球爆炸实例

[复制链接]

9210

主题

1

听众

5万

积分

内部人员

Rank: 7Rank: 7Rank: 7

纳金币
12582
精华
186

活跃会员

跳转到指定楼层
楼主
发表于 2013-9-9 11:36:04 |只看该作者 |倒序浏览

1410205C228.jpg

导言:
本教程讲解了使用nCloth打造气球爆炸的过程,请大家忽略气球以外的东西,我们主要关心气球的初始状态,鼓起,悬浮,爆炸这样一个过程。

下面教程开始

要建立一个球体的模型,但是我发现如果用一个简单的poly Sphere并不能得到很好的动画效果,它两头各有一个极点,最好的模型是完美的四边形镶嵌。我们可以通过Subdiv的Sphere转成Polygon得到,就是下图中间一个球体。(图01)

1410211R1Z.jpg
图01

下一步就是一点建模工作,做出一个气口,我做的很丑,大家应该整的比我好。(图02)

141021433W6.jpg
图02


建模完成以后,先让它解算一下,看一下大概的结果,注意,这里只是检查一下模型,在真正解算之前还有很多工作要做。(图03)

141021555427.jpg
图03

这一步就是建立tearable Constraint,通过选择Vertex点来指定碎裂的路径。

真实的气球爆炸不是像我画的那样,但为了好看,我就多画了几道。nCloth的约束有一点不方便的地方就是所有的约束做出来都是一个名字:dynamicConstraint,所以我们最好根据不同的类型重命名一下。(图04)

141022155416.jpg
图04

我将Tearable Constraint的Glue Strength打到了1,代表点之间会牢牢的粘在一起,不会分开。需要注意的是,Glue属性是和场景中物体的大小关联的,如果Glue值打到1,布料还是会分裂,或者相反布料无法分裂,就需要调节一下Glue Strength Scale的值。

在Glue Strength的数值为1的情况下,我才能继续解算布料的Initial State。

在做完这一步以后,有一点需要注意:如果需要在Tearable以后进行诸如添加新的nCloth约束,绘制VertexMap等操作,必须在InputMesh上进行。

我希望气球瘪气的时候是成长条状伏在地面上 (这里的“地面”,我使用了Nucleus节点下的Ground Plane虚拟了一个高度为0的地面),办法有很多,如果你的机器性能较好,可以使用Interactive Playback实时地拖拽布料直到满意,我用的方法是做一个模子,帮助布料塑形。一旦对初始状态满意,记得使用Edit nCloth-> initial state -> set from Current保存当前状态。(图05)

141023104638.jpg
图05


这就是我解算完成的气球的初始状态。(图06)

141023332G2.jpg
图06

当完成tearable Constraint以后,我们要考虑一件事情,什么时候tearableConstraint会发生作用。

当我们施加了T.Cnstraints以后,在解算的第一帧,maya便完成模型的分割,根据glueStrength的数值来决定布料对于外界施加力的“灵敏度”,glueStrength数值为0时,布料一旦开始解算就会分裂,相反为1时,布料不会分裂(glueStrengthScale==1)。所以,我们可以用两种方法:

A:通过多次解算,尝试出一个数值,使布料在某一时刻点破碎,或某一次碰撞强度下破碎。
B:直接在glueStrength上加关键帧动画,在需要布料破碎的那一个点上,把数值打到0,这样布料就瞬间破碎了。

对于气球的爆破,B方法最合适不过了。

决定了爆破的方法,下面的事情就很简单,让气球充气变大,上浮,爆破(glueStrength=0)。

因为这里使用Manual,只有两个属性,Pressure就是Pressure,没什么多解释的,数值大内压高,模型就鼓起来,负值就是内压逃逸了。(图07)

1410251V049.jpg   
图07


需要关心的是下面这三个数值,是布料行为的最重要的三个属性,在syflex中,也有对应的属性名称。分别是抗延展,抗收缩,和抗弯折,这三个属性对应的是布料的link和edge的行为。(图08)

1410243L313.jpg
图08

在这里,就是气球对内部压力的“抵抗”。好在Maya为我们预置了很多不同的属性组合产生不同的效果,我们可以在nClothShape节点的presets里面选择一个适合的start point,比如Solid Rubber (固体橡皮),把stretchRes调低,或者最中性的Tshirt,调高一点damp,减小摩擦就可以得到想要的效果。

下面是我的设置。(图09)

141025001152.jpg
图09

至于布料的漂浮,方法不下四五种,还可以互相组合,最简单、最直接的就是将重力方向反一下,气球就会上举,根据气球充气变大的速度,加上动画即可。(图10)

141025342018.jpg
图10


最后的收尾工作

在完成以上的步骤以后,反复调试数值组合,我们要收拾一下气球破裂以后的残局。

虽然气球破碎了,但是,所有的相关属性和节点都还在起作用,包括pressure,所有的Constraints,还有布料本身的自碰撞,如果不关闭这些属性,那么气球破裂以后,那些碎片会上下翻飞最后扭做一团!

处理的方法也很简单,直接在一些boolean值上K动画,在爆破后关闭所有的约束和自碰撞以及preesure,只留下和地面以及其他passiveObjects的碰撞,贴上一些例子,注意这些Tangents都是stepped的。(图11、图12)

14102610QK.jpg
图11

14102622b02.jpg
图12

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

9

主题

1

听众

3987

积分

中级设计师

Rank: 5Rank: 5

纳金币
590
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2013-9-10 17:29:18 |只看该作者
感谢分享,非常受用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-20 15:26 , Processed in 0.088024 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部