签到

11月06日
尚未签到

共有回帖数 0

    花非花雾非雾

    等级:
    先看一个截图:

    学综合使用的范例。至少有两种方法可以解决这个问题(踩稀泥),一个办法是做一个刚
      性物体使用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完成了一个步迹动画。可以看得出当脚步向前走动时,脚前步的泥被簇拥而起

    楼主 2016-02-23 15:23 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知