2012年4月17日火曜日

BatchBakeをMELで使用する


リアルタイム系のデータなどでは重宝する"BatchBake"だが、
mentalrayを使った機能であるためかスクリプトでの使用法がわかりにくい。
とりあえずわかった範囲での、MELで"BatchBake"を使う方法。

メニューから選択する"BatchBake"は2つの過程で実行されている。
 1."BakeSet"ノードを作成、オブジェクトのシェイプノードに接続
 2.対象オブジェクトの"BakeSet"ノードを参照し、ベイクを実行

これはそれぞれ、以下の命令でMELから実行できる。
 1.createAndAssignBakeSet

 2.convertLightmapSetup


"createAndAssignBakeSet"は焼き込み先がバーテックスカラーか
テクスチャーかによって書き分ける。
createAndAssignBakeSet vertexBakeSet "";     //バーテックスカラー
createAndAssignBakeSet textureBakeSet "";     //テクスチャー
""内は対象となるモデル名。指定無しの場合は選択中のモデルが選択される。

実行後作成されたノードのアトリビュートを編集し、ベイクオプションを設定する。
詳細はアトリビュートを編集しながらScriptEditorを眺めるか、
listAttrでアトリビュートの一覧を取得すれば把握しやすい。

"convertLightmapSetup"はなぜかMayaのドキュメントに載っていないが、
ScrptEditorに入力すればコマンドとして認識される。
("convertLightmap"はマニュアルに載っているが、こちらは上手く使えなかった)
もちろんhelpコマンドでオプションフラグも調べる事ができるので、そちらも参考になる。

以下、サンプルのMEL。選択したモデルのライトマップをバーテックスに焼き込む。

string $TransName[];
$TransName =`ls -sl`;
for ($Obj in $TransName)
{
        createAndAssignBakeSet vertexBakeSet $Obj;
        setAttr "vertexBakeSet1.colorMode" 1;
        setAttr "vertexBakeSet1.bakeColor" 1;
        setAttr "vertexBakeSet1.colorBlending" 0;
        convertLightmapSetup -camera persp -vm -bakeSetOverride vertexBakeSet1 -showcpv;
        delete vertexBakeSet1;
}

0 件のコメント:

コメントを投稿