查看: 1720|回复: 0
打印 上一主题 下一主题

maya粒子动力学实例讲解

[复制链接]

347

主题

1

听众

3111

积分

中级设计师

Rank: 5Rank: 5

纳金币
1147
精华
41

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

跳转到指定楼层
楼主
发表于 2013-7-31 15:29:03 |只看该作者 |倒序浏览

3D教程里,我们将看到怎样在一个泥地表面创建脚印。一个非常好的角色动画与动力,用这个例子来给朋友们讲解maya的粒子动力学知识,先看一个截图:

  学综合使用的范例。至少有两种方法可以解决这个问题(踩稀泥),一个办法是做一个刚

  性物体使用rigid body/particle 碰撞实现泥地的压痕。问题是用这种方法实现时,当走

  路时刚性物体不能被弯曲。

  第二种方法是使用力场绑定到脚来变形一个由softbody mesh制作出的泥泞路面

第一步:

  打开场景文件: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

第三步

  这一步里我们将用到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值,可以通过调整它

  们得到满意的效果。

  至此我们通过使用softbody和field完成了一个步迹动画。可以看得出当脚步向前走动时,脚前步的泥被簇拥而起


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

使用道具 举报

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

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

GMT+8, 2024-11-27 18:46 , Processed in 0.091625 second(s), 32 queries .

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

© 2008-2019 Narkii Inc.

回顶部