2015年5月31日日曜日

アニメーション paraparaスクリプト

アニメーションでブロッキングをつけている時に、前後のオブジェクトの位置が表示されるといいなと思い、Melスクリプトを書きました。
Mayaのゴースト機能を1つのウィンドウにまとめたものです。
paraparaという名前は、手書きアニメーションでは動きを確認する時に紙をパラパラして確認するので、そこからとりました。

●paraparaスクリプト


●ソース
/*parapara script
*/

global proc GhostsPara()
{
    int $val;
    $val = `intSliderGrp -q -value paraSlider`;
    updateGhostData 2 $val;
}

global proc GhostsParaNum()
{
    int $num;
    $num = `intSliderGrp -q -value numSlider`;
    updateGhostData 0 $num;
    updateGhostData 1 $num;
}

global proc CrateGhost()
{
   updateGhostData 0 1;
   updateGhostData 1 1;
   updateGhostData 2 1;
   CreateGhost;
}


{
if(`window -exists parapara`)
deleteUI parapara;

window parapara;
showWindow parapara;

columnLayout;
intSliderGrp -label "frame per step" -field true
             -value 1
             -maxValue 30
             -cc"GhostsPara()" paraSlider;
           
intSliderGrp -label "Ghost number" -field true
             -value 1
             -maxValue 10
             -cc"GhostsParaNum()" numSlider;
setParent ..;

rowLayout -numberOfColumns 2;          
button -label "Create Ghost"
       -command "CrateGhost()";
           
button -label "Delete GhostAll"
       -command unGhostAll;

}

●説明
・frame per step:ゴーストを描画する間のフレームの数を指定します。デフォルト値は1です。
・Ghost number:カレント フレームの前後にあるフレームに描画する、ゴースト化されたイメージの数を指定します。デフォルト値は1です。
・Create Ghost:選択したオブジェクトのゴーストを作る。
・Delete GhostAll:シーン内のゴーストを全て削除。

●まとめ
思ったより使いにくくてびっくり!
ブロッキングでカーブをステップにしてると、キーフレームの打つ場所がまちまちなので、思ったように前後のオブジェクトが表示されない。
元々のアイディアは、前後のキーフレームが打ってあるところのゴーストを表示する。というものだったが、Mayaのゴースト機能ではそれを行うのは無理そう。
また、ゴーストのオブジェクトの不透明度が100なので、元のオブジェクトと判別しづらい。ゴーストの不透明度の調整ができるといいな。
今度詳しい人に聞いてみよう!

と思ったら、既にありました!
「GhostMan」
http://www.creativecrash.com/maya/script/ghostman

世の中自分がこれは!って思ったものは大抵既に誰かが作ってるな~

0 件のコメント:

コメントを投稿