当前位置: 主页 > 平面设计 > Maya制作Cas车辆动画里增加履带车动画

Maya制作Cas车辆动画里增加履带车动画

  • 2022-02-06
  • 来源/作者: PS.ONEGREEN.ORG    / 佚名    
  • 2 次浏览

  首先在场景中创建一条封闭曲线,作为履带运动路径:

  Maya制作Cas车辆动画里增加履带车动画

  编辑曲线:

  Maya制作Cas车辆动画里增加履带车动画

  创建一个方体作为履带的一个带片:

  Maya制作Cas车辆动画里增加履带车动画

  Maya制作Cas车辆动画里增加履带车动画

  打开脚本编辑,执行源化脚本,弹出对话框:

  Maya制作Cas车辆动画里增加履带车动画

  Maya制作Cas车辆动画里增加履带车动画

  关闭脚本编辑,在方体处于选择状态下,点击“指定履带片”按钮。再选择曲线,点击“指定履带轨迹”按钮:

  Maya制作Cas车辆动画里增加履带车动画

  Maya制作Cas车辆动画里增加履带车动画

[NextPage]

  点击“确定”:

  Maya制作Cas车辆动画里增加履带车动画

  Maya制作Cas车辆动画里增加履带车动画

  播放动画:

  Maya制作Cas车辆动画里增加履带车动画

  调整履带运动速度,选择路径曲线,在通道栏修改speed直。数值小,履带运动慢,数值大,履带运动快:

  Maya制作Cas车辆动画里增加履带车动画

  重新播放动画:

  Maya制作Cas车辆动画里增加履带车动画

  脚本程序:

  global string $dgkk2;
  string $dgWindow=`window -title "设置" -rtf true`;
  columnLayout;
  $dgkk2=`intSliderGrp -v 30 -min 10 -max 100 -l "带片数量" -field true`;
  rowColumnLayout -nc 2;
  text -l " 选择履带片 ";
  button -l "指定履带片" -c "dgpp()";
  setParent ..;
  rowColumnLayout -nc 2;
  text -l " 选择曲线 &qu
ot;;
  button -l "指定履带轨迹" -c "dgpq()";
  setParent ..;
  button -w 200 -l "确定" -c ("dghp($dgkk2) ; deleteUI -window " + $dgWindow);
  showWindow $dgWindow;
  global proc dgpp() {
  global string $dgop;
  string $dgkk3[]=`ls -sl`;
  $dgop=$dgkk3[0];
  }
  global proc dgpq() {
  global string $dgoq;
  string $dgkk3[]=`ls -sl`;
  $dgoq=$dgkk3[0];
  }
  global proc dghp(string $dgk2) {
  $nu=`intSliderGrp -q -v $dgk2`;
  global string $dgop;
  global string $dgoq;
  addAttr -ln speed -at double -min 0 -max 1 -dv 0.5 $dgoq;
  setAttr -e -keyable true ($dgoq+".speed");
  for($i=0;$i<$nu;$i++) {
  duplicate -n ("poo"+$i) $dgop;
  pathAnimation -n ("qoo"+$i) -fractionMode true -follow true -followAxis x -upAxis y -worldUpType   "object" -inverseUp false -inverseFront false -bank false $dgoq ("poo"+$i);
  select -addFirst ("qoo"+$i) ;
  timeSliderClearKey;
  float $mm=1.0*$i/$nu;
  expression -s ("qoo"+$i+".uValue=(time*0.5*"+$dgoq+".speed+"+$mm+")%1;") -o "" -ae 1 -uc all ;
  }
  }

  这个程序只是简单介绍一下表达式动画,真正应用还存在一些问题。比要做到如履带板运动和车辆前进速度一致,必须重新编写表达式。如果选择路径动画,首先计算出路径曲线和履带板控制线的长度,再计算出两者的比值。用履带板的uValue=(车主体的uValue*比值)%1即可。

[NextPage]

  另一种方法,根据车辆位子

移动确定表达式。这种方法不仅适用路径动画,而且还适合关键帧动画。程序如下:  global string $dgkk2;
  string $dgWindow=`window -s 1 -wh 400 200 -title "设置" -rtf true`;
  columnLayout;
  $dgkk2=`intSliderGrp -v 30 -min 10 -max 100 -l "带片数量" -field true`;
  rowColumnLayout -nc 2;
  text -l " 选择履带片 ";
  button -l "指定履带片" -c "dgpp()";
  setParent ..;
  rowColumnLayout -nc 2;
  text -l " 选择曲线 ";
  button -l "指定履带轨迹&
quot; -c "dgpq()";
  setParent ..;
  button -w 200 -l "确定" -c ("dghp($dgkk2) ; deleteUI -window " + $dgWindow);
  showWindow $dgWindow;
  global proc dgpp() {
  global string $dgop;
  string $dgkk3[]=`ls -sl`;
  $dgop=$dgkk3[0];
  }
  global proc dgpq() {
  global string $dgoq;
  string $dgkk3[]=`ls -sl`;
  select -r $dgkk3[0];
  rename "qooh";
  duplicate -n "qoob" "qooh&quot;;
  scale -a 0.7 0.7 1;
  pointConstraint -offset 0 0 0 -weight 1 qooh qoob;
  orientConstraint -offset 0 0 0 -weight 1 qooh qoob ;
  }
  global proc dghp(string $dgk2) {
  $nu=`intSliderGrp -q -v $dgk2`;
  global string $dgop;
  for($i=0;$i<$nu;$i++) {
  duplicate -n ("poo"+$i) $dgop;
  addAttr -ln dx -at double ("poo"+$i);
  addAttr -ln dy -at double ("poo"+$i);
  addAttr -ln dz -at double ("

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ... 下一页  >>