2012年6月19日火曜日

イメージプレーンの誤レンダリング防止

レンダリングが遅いと思ったら、いらないイメージプレーンを消し忘れてた、という凡ミスをなくすためのMEL

string $list[] = `lsType imagePlane`;
for ($node in $list)
    if ($node != "<done>"){
    setAttr ($node+".displayMode") 0;
}

で全てのイメージプレーンをNONEに出来ます。
これをpre render mel に入れればいいのだけど、長いのでプロシージャにして呼び出します。

global proc WB_IPhyde()
{
    string $list[] = `lsType imagePlane`;
    for ($node in $list)
        if ($node != "<done>"){
            setAttr ($node+".displayMode") 0;
        }
}

これをWB_IPhyde.melとして保存すれば、レンダーセッティングのpre render mel にWB_IPhydeと入れるだけで、レンダリング前に全てのイメージプレーンをNONEにしてくれます。

ただ、このままではMAYA GUIからのRender Current Frameの時も同様にNONEに設定されてしまいます。それでは困る場合の方が多いので、BatchRenderの時のみpre render melが適用されるように「about -b」を使ってif文を足します。

global proc WB_IPhyde()
{
    if(`about -b`==1){
        string $list[] = `lsType imagePlane`;
        for ($node in $list)
            if ($node != "<done>"){
                setAttr ($node+".displayMode") 0;
            }
    }
}

0 件のコメント:

コメントを投稿