いちいちアトリビュートを変更してログから調べたりするのは面倒です。
なので"zxy"みたいな文字列で変更するスクリプトを作成します。
trySetRotateOrder.mel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | global proc trySetRotateOrder( string $node , // ノード名 string $order ) // 回転順序 { if (!`attributeExists "ro" $node `) return ; $order =tolower( $order ); int $ro ; switch ( $order ) { case "xyz" : $ro =0; break ; case "yzx" : $ro =1; break ; case "zxy" : $ro =2; break ; case "xzy" : $ro =3; break ; case "yxz" : $ro =4; break ; case "zyx" : $ro =5; break ; default : $ro =-1; break ; } if ( $ro <0 ) return ; evalEcho( "setAttr " + $node + ".rotateOrder " + $ro ); } |
ノード名と回転順序を渡すと指定した回転順序を設定します。
6行目で小文字に変えているので大文字を渡すなどしても問題ないはず。
ノードに rotateOrder のアトリビュートが無かったり、回転順序が "xyz","yzx","zxy","xzy","yxz","zyx" 意外だと無反応です。
21行目の evalEcho は普通に eval で良いかも・・・。
0 件のコメント:
コメントを投稿