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;
}

2012年4月2日月曜日

DiamantModelingToolsによるリトポロジー作業


先日Richard Diamant氏が無償公開した”DiamantModelingTools”(最新はAlpha1.01a)
モデリングツールやUVエディタなどの機能がセットになっていてどれもかなり使いやすい。
なかでもモデリングツールはリトポロジー作業を意識した機能となっており、
標準でリトポロジー機能のないMayaにとってはとても有用なツールだと思った。
そこで今回、リトポロジー作業に絞って同ツールの使用方法をまとめてみた。


Maya2011/2012の64bitのみ対応、32bitでは動作しないので注意。


【インストール】
1."http://rd3d.com/dtools.htm"から圧縮ファイルをDL。
2.解凍したフォルダ”DiamantToolsAlpha1.0”Cドライブ直下に置く。
3.同フォルダの”modules”フォルダ中の”DiamantTools.txt”
4.”C:\Program Files\Autodesk\Maya2012\modules”にコピー。
5.Mayaを起動、[Window][Settings/Preference][Plug-in Manager]
 開き、[ModelingTool_201X_x64.mll][Loaded]にチェック。
6.初回起動時、シェルフにツール起動用のアイコンが作成される。


【ツールの起動/終了】
インストール時に作成されたシェルフのアイコンをクリックして起動。
専用のツールウインドウが開く。
DiamantModelingToolsからMayaの通常機能へ戻るには"Q"を押す。
(単に他ツールを選択するだけでは切り替わらない事がある)




【ベースモデルの指定】
1.ベースモデルの含まれたシーンを開く。もしくはシーンにベースモデルを読み込む
2.DiamantModelingToolsのウインドウを開き、[Modeling]タブに切り替え
3.[Slide On Surface of Mesh]欄の[List]ボタンをクリック、リストからモデル名を選択
(以前に別モデルを読み込んでいた場合などは[Clear Objects]で選択をクリアする)




【リトポロジーモデルの生成】

1.ツールウインドウ内Modelingタブの左側[Quad Draw]アイコンを左クリック





2.ベースモデル上で左クリックすると緑のポイントが打たれるので、これを4点配置。





3.4点の緑のポイントに囲まれた範囲を"Shift+左クリック"すると最初のポリゴンが生成される
 以降も緑のポイントを設置→ポリゴン生成を繰り返す。生成に使うポイントは設置する
 緑のポイントと既存メッシュモデルのバーテックスから任意の4点を選択できる。
 生成されるポリゴンは青い半透明でプレビューされるので、希望の状態で生成する。




※注意点
四角ポリゴンのみで制作する。三角や五角形以上のポリゴンも一応作れるが不安定
大量のポイントを一度に配置するより、こまめにポリゴンを生成していく方が動作が安定する
ポイントの削除はアンドゥで行う。



【リトポロジーモデルの編集】
ベースメッシュ上に頂点をスナップさせた状態でコンポーネントの移動やスムージングを
行う事ができる。
このツールで生成したモデル以外でも、通常のMayaの機能で作成したモデルや追加した
頂点などもベースメッシュ上にスナップさせる事ができる


・移動/スムージングの共通操作
1.ツールウインドウ内[Modeling]タブの左側[AdvancedModeringTools]アイコンを左クリック
2.ビューポート上で"中クリック+マウス移動"でブラシの拡大/縮小が出来る




・頂点/エッジ/フェースの移動
1.モデル上にカーソルを乗せると、直近の頂点/エッジ/フェースのいずれかが強調表示される
2.そのまま状態から"Ctrl+左ドラッグ"で任意の場所に移動。
ブラシのサイズに応じて周囲のコンポーネントもソフト選択される




・頂点/エッジ/フェースのスムース
1.モデル上にカーソルを乗せると、直近の頂点/エッジ/フェースの何れかが強調表示される
2.そのまま状態から"Shift+左ドラッグ"で任意の場所に移動。
ブラシのサイズに応じて周囲のコンポーネントもソフト選択される。
ボーダーエッジにスムースを掛けるとフェースが縮むので注意




以上の機能を使ってリトポロジー作業を進めるが、手順としては、
最初は大まかにメッシュを生成。必要に応じてMayaの基本機能も使ってポリゴン分割等を行い、
メッシュのスムース機能でトポロジーを整えていくと手間が少なく済みそう。
生成されたモデルは多少不安定な事もあるので、早めに保存するか
FBXやOBJでエクスポートしておく事をお勧めする。