2013年12月10日火曜日

FumeでDfaultシミュレーションからレンダリングまでを一気に(?)行うTips

だいぶ更新が止まってしまいました…。ありがたいことになんとか元気にやっております。

今回はFume(3dsmax)でDefaultシミュレーション>Waveletシミュレーション>レンダリングまでを一気にローカルマシンで行うスクリプトTips
バックバーナーでシミュレーション後にすぐレンダリングを行うTipsです。
(3dsmax2014とFumeFX3.5.2で試していますがほかのバージョンでも行けるかと思います。)

「このシミュレーションが終わってレンダリングをかければ帰れるのにあとちょっとで終電を逃した~」などなくなります!

帰宅時にシミュレーションかけて翌朝レンダリングを確認したいときにすこし幸せになれるかもw
そもそもマシンパワーでエラーが出て落ちていることも多々ありますが…^^;
金曜の夜にかけて月曜日確認しようと思って職場に来てみたら落ちている時の虚しさといったらないですね…(ToT)

■ローカルマシンでシミュレーション>レンダリング済ませるのスクリプトを紹介

●Fumeのグリッドを選んで下記スクリプトを実行。
----------------------------------------------------------------
$.SelectedCache = 0     --①Cacheモード(?)をDefaultにセット
$.RunSimulation 0    --②DefaultSim実行
$.RunSimulation 2    --③WaveletSim実行
$.SelectedCache = 1  --④Cacheモード(?)をWaveletにセット
rendUseNet = off     --⑤ネットワークレンダリングをオフ
max quick render     --⑥レンダリング
----------------------------------------------------------------
もちろんシミュレーションキャッシュパス、レンダリングパスの設定などをきちんとやった上で実行してください。
(テストしている時、何度かWaveletを使用しないでやろうとしていましたw)

●Cacheモード(?)をDefaultにセットしてからやる場合は①なくてもOK
※Waveletでテストしたあとにそのままにし忘れて回らないミスを防ぐためです。

●Waveletシミュレーションをしない場合は②と⑥だけにして実行でOK.
●ネットワークレンダリングをオフになっていれば⑥はなくてOK
※オンになっているとバックバーナーにサブミットしようとするので…。
(もちろんシミュレーション、レンダリングのパス設定を行った上で実行すること。)

■シンプルにすると…(上記の①と⑤はミスを防ぐためなので)
----------------------------------------------------------------
$.RunSimulation 0
$.RunSimulation 2
$.SelectedCache = 1
max quick render
----------------------------------------------------------------
です。

■Waveletシミュレーションしないで通常のシミュレーションとレンダリングだけしたい場合は…
----------------------------------------------------------------
$.RunSimulation 0
max quick render
----------------------------------------------------------------
だけです。

簡単ですね。
なんで今まで使わなかったんだと思うくらいですw
複数でやりたい場合はForLoopで回せばできると思います。

いきなり実際のシーンで、やって翌朝回って無かったとかならないようにw、念のため簡単にテストしてからトライしてみてください。



■スクリプトではないですが、バックバーナーでシミュレーション後、レンダリングを回してしまいたい場合は…

(Fumeでバックバーナーにシミュレーション投げる方法はマニュアルや他の方ブログを参考にしてください。)

バックバーナーモードでシミュレーションを投げたあとレンダリングの設定にしてバックバーナーにジョブを投げる際、下記のように設定

ちゃんと設定できているとレンダリングのジョブに小さな「+」(プラス)観たいマークが付きます。
もちろんバックバーナーに投げたあとキューモニターからも設定できます。

まぁ、この方法でなくてもシミュレーションジョブと同じマシンにレンダリングのジョブを投げてしまえばいいのですが、それだと一台でしか回せないですし、
この方法はバックバーナーのジョブの従属を決めるものなのでシミュレーション以外にも使えますが、あまりやってる方を見かけないようなので紹介してみました。
Vrayでイラディアンスのキャッシュ計算>実際のレンダリング
KrakatoaでPRTの保存>PRT読み込んでレンダリング
などにも使えますので知っておいて損はないと思います。


※スクリプトはあくまで自己責任で、バックバーナーの方は詳しくはマニュアルなどを見てください。


今お仕事でFume使う頻度が増えたので、もっとスクリプトで楽チンできないかと思い色々スクリプトを探っているところです。
ちょっとしたスクリプトも作っているので完成したら公開するかもです。
一応出来てはいるのですが一部仕様変更をしたいので。少々お待ちを…。
気まぐれなので公開しないかもですが。。。
興味がある方はコメントまたはメールをください。