[Maya] シミュレーションキャッシュをお手軽に
Mayaファイルをバッチファイルにドラッグ&ドロップでシミュレーションのキャッシュを取れるようにしてみます。
手軽にSimをまわすことができ、GUIを起動しないのでリソースをSimに集中できます(知らんけど)
mayabatch.exeというMayaをコマンドラインから起動する方法を使いますが、このmayabatch起動最大の利点はライセンスを消費しないということにあるんじゃないかと。つまりMayaに元から入っているダイナミクス機能(nParticle、nCloth、Bifrost、Fluid等々)のキャッシュを取るのなら、手元にマシンがある分だけSimをまわせるということになります(これ凄くないですか)
もっというとスクリプト化してしまえるあらゆる作業は裏で回せるってことです。他のマシンでSimをまわして作業を続けられますね(本音は計算の間はここぞとばかりサボりたいですが、、)
今回はBifrost(2.0ではない)Liquid キャッシュを取る場合を例に挙げて紹介しますが、基本的に他の機能もキャッシュを取るコマンドが変わるだけで全て同じ手順です。古来からの遺物である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からキャッシュを取りたいデモを読み込んでみます。
Bifrost Liquidの名前は「liquid1」に。
別名保存して、作成したバッチファイルにドラッグアンドドロップ
成功すればコマンドプロンプトが立ち上がり計算を開始します。
mayaプロジェクトのcacheフォルダにキャッシュが作成されているか確認してみてください。
終わるとウィンドウが閉じて元のMayaファイルがキャッシュ取得済みシーンに更新されているはずです。
以上になります。
今回デジタル・フロンティアさんのDF TALKの記事を参考にさせていただきました。
最近は更新されなくなってさみしいばかりですが、何年経ってもまだまだ使える良記事満載のブログになっています。
ここまで紹介してきた内容をツール化したものを最後に公開します。
上記の手順をMayaで自動化できます。よければ使ってみてください:)
ここから先は
¥ 500
この記事が気に入ったらチップで応援してみませんか?