主题:  [翻译教程]物体熔化动画的制作

5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#12003/1/26 11:17:34
在网上发现一篇好文章,赶紧翻译了出来,与大家分享。
原文在这里:
www.aliaswavefront.com/en/Community/Learn/how_tos/dynamics/melt/index.html
希望大家喜欢!



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#22003/1/26 11:18:01
这里将要介绍如何用maya的动力学和lattice边形器实现物体的熔化效果
具体效果如图1

图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#32003/1/26 11:19:35
相应的动画在附件,其原理是把lattice网格转换成柔体,使该柔体和桌面碰撞。另外还要添加一些属性进行进一步的控制。


相关文件:点这儿打开



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#42003/1/26 11:20:18
建立花瓶的剖面曲线,用revolve命令建立花瓶曲面 如图2


图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#52003/1/26 11:21:16
选择花瓶,选择菜单 deform-create lattice-options 设置 s=6,t=6,u=6,选create 如图3


图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#62003/1/26 11:22:28
这里把lattice转换成柔体,选择ffd1 lattice,选菜单soft/rigid bodies - create soft body - options,采用默认的属性,点击create



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#72003/1/26 11:23:38
建立一个nurbs平面,移动到花瓶的下端,patches U=10 V=10 请确认花瓶和平面在初始的时候没有接触
如图4

图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#82003/1/26 11:24:58
加一个重力场到柔体,选择ffd1lattice,选择fields-gravity;添加碰撞属性,选择ffd1 lattice,然后选择平面,选菜单 particles-make collide



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#92003/1/26 11:25:58
现在动画已经产生了,不过有可能产生错误的计算,就如同附带的动画所示,可以通过添加两个属性和几行expression来解决这个问题。

计算错误的动画:
相关文件:点这儿打开



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#102003/1/26 11:26:36
在outline窗口,选display-shapes 为on,选择 ffd1latticeParticleShape 选择菜单 modify-add

attribute.. 然后按如下设置
attribute name = spread
Data Type = Float
Attribute Type = Scalar
选择add,添加一个属性,然后采用相同的设置,添加多一个属性叫thickness,点击ok 如图5

图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#112003/1/26 11:27:26
现在建立expression,使其产生熔化的效果,选择ffd1latticeParticleShape,然后Window -> Animation Editors -> Expression Editor.
写入下面的表达式:
vector $melt = ffd1LatticeParticleShape.worldPosition;
float $spread = ffd1LatticeParticleShape.spread;
float $thickness = ffd1LatticeParticleShape.thickness;
if ($melt.y < $thickness) ffd1LatticeParticleShape.velocity = unit (ffd1LatticeParticleShape.worldPosition - <<0,0,0>>) * $spread;

点击create,如图6



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#122003/1/26 11:28:15
如图!

图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#132003/1/26 11:28:57
现在很容易就可以通过spread和thickness属性来控制熔化的动画了,选择ffd1latticeParticle,在channel box里面,把spread设置为4,把thickness设置为1,看看动画的效果。 如图7


图片如下:



5DMaya版主

职务:版主
等级:3
金币:10.0
发贴:737
#142003/1/26 11:30:21
可以更进一步地控制动画
(1)如果要减缓熔化的速度,可以把gravity的magnitude属性降低
(2)试验一下不同的spread和thickness的搭配,会有不同的效果。
(3)也可以加一些turbulence场来使动画更随机!

教程到此,效果挺cool的,希望大家喜欢!



笑橙

职务:普通成员
等级:1
金币:1.0
发贴:180
#152003/1/29 15:59:56
好啊.多谢了.