Maya脚本:平移旋转自动归零

mel14
//by 喵喵动画屋  旋转归零

string $lanzi[] = `ls -sl`;
int $shuliang = size($lanzi);
print($shuliang+"\n");

for($i=0;$i<$shuliang;$i++)
{
    print($lanzi[$i]+"\n");
    
   int $rotate_ret = `getAttr -se ($lanzi[$i]+".rotateX")`; 
   if($rotate_ret==1)
   {
        setAttr ($lanzi[$i]+".rotateX") 0;  
   }
   
   $rotate_ret = `getAttr -se ($lanzi[$i]+".rotateY")`; 
   if($rotate_ret==1)
   {
        setAttr ($lanzi[$i]+".rotateY") 0;  
   }
   
   $rotate_ret = `getAttr -se ($lanzi[$i]+".rotateZ")`; 
   if($rotate_ret==1)
   {
        setAttr ($lanzi[$i]+".rotateZ") 0;  

   }
   
   

     print($rotate_ret+"\n"); 

}


//by 喵喵动画屋  平移归零

string $lanzi[] = `ls -sl`;
int $shuliang = size($lanzi);
print($shuliang+"\n");

for($i=0;$i<$shuliang;$i++)
{
    print($lanzi[$i]+"\n");
    
   int $translate_ret = `getAttr -se ($lanzi[$i]+".translateX")`; 
   if($translate_ret==1)
   {
        setAttr ($lanzi[$i]+".translateX") 0;  
   }
   
   $translate_ret = `getAttr -se ($lanzi[$i]+".translateY")`; 
   if($translate_ret==1)
   {
        setAttr ($lanzi[$i]+".translateY") 0;  
   }
   
   $translate_ret = `getAttr -se ($lanzi[$i]+".translateZ")`; 
   if($translate_ret==1)
   {
        setAttr ($lanzi[$i]+".translateZ") 0;  

   }
   
   

     print($translate_ret+"\n"); 

}

Maya脚本:轮子自动跟随位移精确旋转

mel-2

本次案例:轮子跟随位移精确旋转。

  • 表达式原理:让表达式,计算出【前一帧和当前帧】的位移差。计算出位移差之后,我们用【位移差/周长】得到一个百分比,然后我们再用百分比*360度,就得出了每帧旋转的角度。最后我采用一个累加的方式,将累加的值传递到旋转属性值上。

float $last = `getAttr -time (frame-1) 位移属性`;
float $now= `getAttr -time (frame-0) 位移属性`;
float $chazhi = $now – $last;
float $baifenbi = $chazhi/(3.14*直径);
float $jiaodu = $baifenbi*360;
float $default_jiaodu=旋转属性 + $jiaodu;
setAttr “旋转属性” $default_jiaodu;

Maya脚本:Mery睁眼+握拳脚本使用方法

image_03-3426

最近老是有小伙伴问我“握拳”手势用的是什么插件,其实这只是一个简单的mel脚本,这里我就连同“睁眼”一起放出来,操作方法:打开脚本编辑器>>粘贴MEL>>全选MEL>>点击三角符号运行。除此之外也可以将MEL脚本直接拖到工具架上运行