スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Houdini] Pyro Smokeを3dsMax V-Rayでレンダリングしてみました

Houdini楽しいですね。覚えることが多いですし、他のDCCツールと思想が違うので辛さはありますが、それを超える面白さがありますね。3dsMaxなどとの連携について、まだまだ検証中ではありますが書いてみました。

そもそもはHoudini VFXセミナーでゲストスピーカーの北川さんから「プロシージャルに土煙を生成している」というお話しをうかがって、自分もやらなければと思ったのが検証を始めたきっかけです。とはいえセミナーは数ヶ月前、実際に検証を始めたのは数日前ですが・・・。 ブログのNo More Retakeは、いつも参考にさせていただいています。ありがとうございます。

3dsMaxからHoudiniへ(.abc)、Houdiniから3dsMaxへ(.vdb)

ブログに書けそうなことがたくさんあったのですが、ここでは3dsMaxとHoudiniのやり取りに絞って書きたいと思います。次のようなフローで検証していました。

  • 3dsMaxからキャラクターのAlembicファイルを出力
  • HoudiniでAlembicを読み込み
  • キャラクターと地面の接地部分からPyroで煙を生成
  • Pyroの結果をOpenVDBにコンバート、.vdbファイル出力
  • 3dsMaxのVRayVolumeGridで.vdbファイル読み込み
  • V-Rayでレンダリング

V-Rayのレンダリング結果はこのようになりました。

VRayVolumeGridの詳しい検証ができていないので、とりあえずなんとか表示させた状態です。改めてVRayVolumeGridの方で質感調整が必要ですが、思っていたよりはすんなり表示できました。vdbファイルはVRayVolumeGridに読み込むことで、V-Rayでレンダリングできるようになります。VRayVolumeGridはPhoenixFDの機能の一部だったのですが、最新のV-Rayにも搭載されるようになりました。Maya版で先に搭載されたので、むむむと悔しく思っていましたが、V-Ray 3.2から3dsMaxでも利用できます。

HoudiniでOpenVDBへのコンバートと出力

Houdiniでvdbファイルへコンバートは、こちらの動画を参考にしました。Pyroの結果をVDBへ変換するのはそれほど複雑ではありませんでした。Pyroをシェルフから作成すると、pyro_importの中にimport_pyrofieldsノードができます。これを繋いで変換します。 convertVDB

  • import_pyrofieldsノードにConvert VDBノードを接続
  • Convert ToのドロップダウンをVDBに
  • File Cacheノードなどを接続
  • 拡張子を.vdbにしてRender(出力)する
3dsMax&V-RayでOpenVDBの読み込みとレンダリング

OpenVDBファイルを読み込むには、VRayVolumeGridを使用します。

  • Createタブ/Geometry/V-Ray/VRayVolumeGridで作成
  • ビューポートをクリックするとファイルを指定するダイアログが開くので、.vdbファイルを選択
  • 続いて、Presetを選ぶダイアログが開くので、今回は"Fire/Smoke"ボタンを選択

次に(簡易的ではありますが)ビューポートの表示と煙の質感の設定をします。読み込んだ初期状態では、Fire(Temperature)が表示されてしまいますのでこれを非表示にして、煙だけを表示するようにします。それぞれ次のようにして非表示にします。VRayVolumeGirdを選択し、

  • ModifyからPreviewロールアウトのLiquid/Temp.のチェックを外す
  • RenderingロールアウトのFire and Smoke Options...ボタンを押してダイアログを開く
  • ダイアログのFireロールアウトのBased onのプルダウンをDisabledにする

previewTemp

viewportPreview

fireDisable

renderSmok

3dsMaxでレンダリングできました

これでとりあえずV-Rayでレンダリングすれば表示されます。煙が薄い場合は、ダイアログのSmoke colorロールアウトでMaster Multiplierを2.0にするなど数値を上げていくと煙が濃くなります。Houdiniでの質感をそっくり再現することはできませんので、TempやSmoke,Fuel,Velocityなどの値を元にVRayVolumeGrideで質感を作り直す必要はあります。

OpenVDBファイルを経由することで、3dsMaxでレンダリングする目処がついたのは収穫でした。プロシージャルなところを活かして個人でも生産性を上げていきたいと思っていて、メインのエフェクト以外はできるだけ制作時間を圧縮していきたいですね。次回はHoudiniで接地面にエミッター(煙の発生源)を生成する方法について書いてみようかと思います。

スポンサーサイト

テーマ: 3DCG - ジャンル: コンピュータ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。