リアルタイム系のデータなどでは重宝する"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; } |