2011年4月27日 星期三

快速把 translate / rotate 歸零 ( scale 歸一)



這一段小程式主要是用來快速把 translate, rotate, scale 值歸回預設值,不需要特別打開 channel box 或 attribute editor只為了要做這件事。 (對 建模,骨架設定,動畫等等都蠻有幫助的)。

mel 程式 :
{
string $sel[]=`ls -sl`;
string $resetAttrs[]={"translateX","translateY","translateZ","rotateX","rotateY","rotateZ"};
for($each in $sel)
{
for($attr in $resetAttrs)
if (`getAttr -k ($each+"."+$attr)`)
{
catch(`setAttr ($each+"."+$attr) 0`);
}
}

$resetAttrs2 = {"scaleX","scaleY","scaleZ"};
for($each in $sel)
{
for($attr in $resetAttrs2)
if (`getAttr -k ($each+"."+$attr)`)
{
catch(`setAttr ($each+"."+$attr) 1`);
}
}

}
pymel 版 :
from pymel.core import *

zeroList = ['tx','ty','tz','rx','ry','rz']

oneList = ['sx','sy','sz']

reset = ls(sl=1)

for r in reset:
for attr in zeroList:
try:
setAttr('%s.%s'%(r,attr),0)
except RuntimeError:
pass

for attr in oneList:
try:
setAttr('%s.%s'%(r,attr),1)
except RuntimeError:
pass



如何設定成快速鍵 : http://maya-tricks.blogspot.com/2009/04/blog-post.html

1 則留言: