2015年6月7日日曜日

parapara スクリプト ver.2

以前作った、MayaのGhost機能をまとめた「parapara」スクリプトに手を加えてみました。

●Window


●Description video
※Not sound. 音声ありません。


●Description
・Ghost number :表示するゴーストの数です。
・frame per step :何フレーム毎のゴーストを表示するかの数です。
・Create Ghost :選択したオブジェクトのゴーストを作ります。
・Delete GhostAll :シーン内のゴーストを全て消します。
・Global Prefs :キーフレームが打っていないところもゴーストを表示します。
・KeyframesOnly :キーフレームが打ってあるところだけゴーストを表示します。

●Notes
・コントローラーを使ってアニメーションをつけているオブジェクトに対しては、上手く機能しません。
・ゴーストは選択したオブジェクトに対して作られるので、コントローラを使ってアニメーションをつけている場合、そのコントローラのゴーストが作られるからです。

●Summary
・Notesに書いたとおり、コントローラを使ってアニメーションをつけている場合使えないのが最大の問題。
・説明ビデオに音声が無くてすいません。説明ビデオのためにヘッドセット買おうかな。

●Script
/*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()
{
   intSliderGrp -e -value 1 numSlider;
   intSliderGrp -e -value 1 paraSlider;
   updateGhostData 0 1;
   updateGhostData 1 1;
   updateGhostData 2 1;
   CreateGhost;
}

global proc DeleteGhostAll()
{
   intSliderGrp -e -value 1 numSlider;
   intSliderGrp -e -value 1 paraSlider;
   unGhostAll;
}

global proc ChangGlobalPrefs()
{
    string $sel[] = `ls -sl`;
    string $shapeSel[] = `listRelatives -s`;
    setAttr ($shapeSel[0] + ".ghostingControl") 0;
}

global proc ChangKeyframesOnly()
{
    string $sel[] = `ls -sl`;
    string $shapeSel[] = `listRelatives -s`;
    setAttr ($shapeSel[0] + ".ghostingControl") 4;
    
    float $startRange = `playbackOptions -q -min`;
    float $endRange = `playbackOptions -q -max`;
    setAttr ($shapeSel[0] + ".ghostRangeStart") $startRange;
    setAttr ($shapeSel[0] + ".ghostRangeEnd") $endRange;
}

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

window parapara;
showWindow parapara;

columnLayout;

intSliderGrp -label "Ghost number" -field true
             -value 1
             -minValue 1
             -maxValue 10
             -fmx 100
             -cc"GhostsParaNum()" numSlider;

intSliderGrp -label "frame per step" -field true
             -value 1
             -minValue 1
             -maxValue 30
             -fmx 100
             -cc"GhostsPara()" paraSlider;
            
setParent ..;

//ゴーストの作成、削除
rowLayout -numberOfColumns 3;

text -label "                           ";
            
button -label "Create Ghost"
       -command "CrateGhost()";
                  
button -label "Delete GhostAll"
       -command "DeleteGhostAll()";
       
setParent ..;

//ゴーストの表示の仕方変更
rowLayout -numberOfColumns 3;

text -label "Ghosting Control";          
       
button -label "Global Prefs"
       -command "ChangGlobalPrefs()";
       
button -label "KeyframesOnly"
       -command "ChangKeyframesOnly()";
       
setParent ..;

}

0 件のコメント:

コメントを投稿