这教程里,我们将看到怎样在一个泥地表面创建脚印。一个非常好的角色动画与动力
学综合使用的范例。至少有两种方法可以解决这个问题(踩稀泥),一个办法是做一个刚
性物体使用rigid body/particle 碰撞实现泥地的压痕。问题是用这种方法实现时,当走
路时刚性物体不能被弯曲。
第二种方法是使用力场绑定到脚来变形一个由softbody mesh制作出的泥泞路面
第一步:
tulaoShi.com
打开场景文件:footprints.ma.
点击下载
这个场景文件里包括一双行进于泥地表面上的脚,如果你此时播放动画,地面与那双靴子不会相互影响。激活 persp/outliner
*选择mud surface
*选择Soft/Rigid Bodies-Create Soft Body-Soft Option 接下来 在Creation Options 卷展览下选择Make soft
*按Create生成
*在 Outliner栏里选择mudParticle,并在Channels 盒里将Conserve设为 0
第二步;
由于没有力场的绑定此时的地面仍然没有变形,我们将加入空气力场给脚底和脚跟来完成这种影响
*再不选择任何物体的情况下,选择Fields-Air-Air Options
*调整参数如下:
Magnitude 100
Attenuation 0.5
Direction to -1,0
Max Distance 0.2 (后来我把它改成1了觉得更好些,用0.2好像mud没有被作用)
*按Create生成
*在 Outliner栏里按Ctr建选择 bootLSole 和 airField1.
* 选择 Fields - Attach to Selected Objects as Source.
在Outliner中我们将看见air field 与bootlsole已成为父子关系,绑定的同时力场也移到了bootLSole的中心位置。
重复上面的操作给heelL和bootR即bootR里的heelR
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/shejiruanjian/)
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/shejiruanjian/)
第三步
这一步里我们将用到Dynamics Relationship Editor 来给地面(mud)加上力场
*选择Window - Relationship Editors - Dynamic Relationships...
*在左栏里选择mud
*在右栏里选择所有的fields
里场现在已经被连接,播放动画看看效果
注意:必须将Playback Speed设为free。
第四步
泥巴的变形可以通过脚前部的泥凸起来表现得更真实些。用同样的力场绑定到脚的指定
方向就能解决了,但这里我们要用到一个表达式来确定Field被即活时的Magnitude属性。
换句话说,表达时将限制当脚踩到泥里时和脚离开地面时的field的magnitude
*返回到第一帧
*挑选Fields - Create Air - Options,按Reset重置为默认值,按下面参数设置
Air name : pushUPAirL
Attenuation: 0.5
Direction : 0,1,0
Speed : 1.0
Max Distance : 1.0
按Create生成
*把pushUpAirL放在左脚趾下一点
*在Outliner中用mmb把pushUpAirL拖到bootL上。
pushUpAirL此时变成了bootL的子物体
重复这些操作给right boot 命名新的airfield 为pushUpAirR
打开Dynamic Relationships... 连接pushUPfieles给mud 物体。
第五步
我们将给pushUpAir airFields的 Magnitude attribute 加入一个表达式
*选择Select pushUpAirL 在channel box 中反白显示Magnitude
*在Magnitude 上右击鼠标再谈出的菜单中选择Expressions
*输入下面的语句
if (bootL.translateY -3.0) { pushUpAirL.magnitude = 0; }
else { pushUpAirL.magnitude = 50; }
*按Create生效
*重复同样的工作给pushUpAirR(注意把上面表达式里的*L改成*R)
*播放动画
mud 物体的凸起形式取决于pushUpAir fields的放置位置和magnitude值,可以通过调整它
们得到满意的效果。
至此我们通过使用so12下一页