キャプチャ

[Maya] シミュレーションキャッシュをお手軽に

Mayaファイルをバッチファイルにドラッグ&ドロップでシミュレーションのキャッシュを取れるようにしてみます。
手軽にSimをまわすことができ、GUIを起動しないのでリソースをSimに集中できます(知らんけど)

mayabatch.exeというMayaをコマンドラインから起動する方法を使いますが、このmayabatch起動最大の利点はライセンスを消費しないということにあるんじゃないかと。つまりMayaに元から入っているダイナミクス機能(nParticle、nCloth、Bifrost、Fluid等々)のキャッシュを取るのなら、手元にマシンがある分だけSimをまわせるということになります(これ凄くないですか)
もっというとスクリプト化してしまえるあらゆる作業は裏で回せるってことです。他のマシンでSimをまわして作業を続けられますね(本音は計算の間はここぞとばかりサボりたいですが、、)

今回はBifrost(2.0ではない)Liquid キャッシュを取る場合を例に挙げて紹介しますが、基本的に他の機能もキャッシュを取るコマンドが変わるだけで全て同じ手順です。古来からの遺物であるMELを用います。

準備は簡単
①キャッシュ取得の処理を記述したMELファイルを用意
②MELを実行するためのバッチファイルを作成

こんだけです。具体的に見ていきましょう。

①キャッシュ取得の処理を記述したMELファイルを用意
mayaプロジェクトのscriptsフォルダにMELファイルを作成します。
例:C:/testProj/maya/scripts/createBifCache.mel
中身は以下を記述してください。

global proc createBifCache()
{
   select -r liquid1 ;
   doCreateBifrostCache 5 {"3", "1", "60", "","","bif","0","2","0","simulation,none" } ;

   file -save;
}

この例だと1フレから60フレまでキャッシュを取ります。Bifrost Liquidの名前は「liquid1」としています。
キャッシュ取得の「doCreateBifrostCache 」コマンドを得る方法はお察しの通りっす。一度手動でキャッシュを取ってみればscript editorに出てきます。
最後に「file -save」で元のファイルに上書き。ファイルを別で分けたければMELにその旨書いちゃってください。他にもやりたい処理があれば好きなだけ書きます。

②MELの処理を実行するためのバッチファイルを作成
MELと同じ階層に同じ名前で作ってみてください(createBifCache.bat)
中身は1行でOK。

"C:/Program Files/Autodesk/Maya2019/bin/mayabatch.exe" -proj "C:/testProj/maya" -file %1 -command "createBifCache";

「-proj」
フラグでプロジェクトを明示しているのは実行したいコマンドが置いてあるscriptsフォルダを見に行ってほしいからです。

「-file」
fileフラグでMayaファイルパスを記述するところを、代わりに%1とします。こうする事でバッチファイルにドラッグ&ドロップしたフォルダのパスを受け渡すことが出来ます。

準備は整った。さあブン回すっ!!!!

適当にContent Browserからキャッシュを取りたいデモを読み込んでみます。

画像1


Bifrost Liquidの名前は「liquid1」に。
別名保存して、作成したバッチファイルにドラッグアンドドロップ

キャプチャ

成功すればコマンドプロンプトが立ち上がり計算を開始します。
mayaプロジェクトのcacheフォルダにキャッシュが作成されているか確認してみてください。
終わるとウィンドウが閉じて元のMayaファイルがキャッシュ取得済みシーンに更新されているはずです。

以上になります。
今回デジタル・フロンティアさんのDF TALKの記事を参考にさせていただきました。
最近は更新されなくなってさみしいばかりですが、何年経ってもまだまだ使える良記事満載のブログになっています。

おまけ
ツール化しました!

ここまで紹介してきた内容をツール化したものを最後に公開します。
上記の手順をMayaで自動化できます。よければ使ってみてください:)

画像3


ここから先は

171字 / 1ファイル

¥ 500

この記事が気に入ったらチップで応援してみませんか?