2017年10月23日月曜日

数値を四捨五入する

mayaで作業をしていると、数値を四捨五入したい事が結構でてきます。
そんな時のためのスクリプトを作成してみました。

ROUND.mel

シチュエーションに合わせて専用に作るのもなんなので、四捨五入しかしない単体機能です。

アニメーションを作っている時なんかは、こんな感じのスクリプトで呼び出すと良いかもしれないです。

{
    string $sel[]=`ls -sl -typ "transform"`;
    
    for( $e in $sel )
    {
        string $attrs[]=`listAttr -k -se -w $e`;
        for( $attr in $attrs )
        {
            string $NA=($e+"."+$attr);
            float $v=ROUND(`getAttr $NA`,2);
            
            setAttr $NA $v;
            
        }
        
    }
    
}

上のスクリプトを実行すると、channelBoxの数値がこんな感じになります。



まぁ、.maファイルへ保存すると希望の桁数で保存されているとは限らないので気休め程度なのですがね・・・。

------
pythonコマンドを使用することで簡単に処理する事ができます。