このページでは Game Development Toolset の VFX Samples の一つである Simulated Flowmap について紹介する。Game Development Toolset のダウンロードとインストールに関してはこちらを参照。
使用したバージョン: Houdini FX 15.5.626
Flowmap について
Flowmap は、水など流体の流れを2次元で表現するため、Y-up で X方向への動きを赤(R)チャネルに、Z 方向のチャネルを緑 (G) チャネルにわたし、 0 < x,z < 128 で-方向に、128< x,z < 255 で+ 方向に動く。X=128, Z=128 で静止状態。
1. シーン概要
- Houdini 起動後、ビューポートにカーソルがある状態で TAB キーを押しメニューを表示。 Game Development VFX Samples から Simulated Flowmap を選択。Enter キーを押して確定。
- 原点にアセットが展開される。
ネットワークビューで、/obj 以下に SimulatedFlowmap1 という名の HDA が一つ追加されたのがわかる。 - ネットワークビューの SimulatedFlowmap1 ノード上で RMB-> Allow Editing of Contents を実行。
- SimulatedFlowmap1 をダブルクリックするなり、Enter キーまたは 'i' キーを押すなりして、ノードの中に入る。以下の12個のノードと Sticky Note による README がある。このページで触れるのは最初の二つ(太字)。
- VISUALIZATION: シミュレーションされた流体をレンダリング用に変換するためのネットワーク
- RENDER: レンダリング設定・出力のためのノード
- PARTICLE_SOURCE: パーティクル発生源
- PARTICLE_SINK: パーティクル消失源 (sink は流し)
- SCENE_COLLIDERS: 流体が巻きつく衝突形状
- INITIAL_FLUID: 流体初期状態
- SIMULATION: シミュレーションネットワーク
- WATER_MESH: レンダリング用のメッシュを作成するネットワーク
- FLOWMAP_TEXTURE: WATER_MESH で作成されたメッシュとテクスチャを併せてレンダリングできるようにするためのネットワーク
- CAMERA: カメラ
- AMBIENT_LIGHT: ライト
- COMPOSITING: 合成処理用のネットワーク
2. シミュレーションをキャッシュする
シミュレーション結果を一度書き出すことで残りの作業が手早く行なえるようにする。
- File->Save を実行し、シーンをファイルとして保存すると同時に、$HIP の位置を決め、キャッシュがどこに書かれるかを決定する。
- ファイル名は flowmap.hip とする (わかり易ければ何でも良い)。
- VISUALIZATION ノードの中に入り、surface_cache ノードを選択する。
- Geometry File の最後に ".sc" を追加して、BLOSC 圧縮を有効にする。
キャッシュファイル名は
FlowMapParticleGen1.hip.surface_cache.$F3.bgeo.sc
となる。
以下有効にした場合としない場合のファイルサイズの比較。フレーム数 非圧縮 BLOSC 圧縮 120 345MB 163MB 240 696MB 336MB - Save to Disk ボタンをクリックし、シミュレーションをキャッシュとして書き出す。
- デフォルトでは240フレームとなっているが、全部書き出したくなければ半分の120フレームでも良い。
- 書き出しが終了したら、"Load From Disk" トグルをオンにして、書き出したキャッシュを読み込むようにする。
- こうすることでタイムラインをスクラブしてシミュレーション結果の視認が容易になる。
- ネットワークエディタ内で U キーを押して階層を一つ上に上がり、ビューポートでキャッシュされたシミュレーションを再生してみると下の通り (120フレーム)。
3. テクスチャとして出力
- /obj/SimulatedFlowmap1/RENDER の中の baketexture1 を選択。
- 15.5 を使っている場合、Scripts タブの Pre-Render Script と Post-Render Script のトグルをオフにする。これらは Houdini15.0 用の設定。
- 1フレーム目で Render to Mplay ボタンをクリック。
- するとレンダリング結果は真っ暗になる。
- 2フレーム目以降で Render to Mplay ボタンをクリック。
- /obj/SimulatedFlowmap1/RENDER の中の baketexture1 を選択。
- Output Picture 1 で指定されたファイル名に
$HIP/tex/$HIPNAME.$OS.%(UDIM)d.$F3.png
などと $F3 とフレーム番号が必ず入るようにする。そうしないと同じファイルを上書きするだけになる。
おまけ
- 1フレーム目から色がでるようにレンダリングするには、シミュレーションを 0フレーム目開始にする必要がある。
- メインウィンドウ右下の Global Animation Options ボタンをクリック、表示されるパネルで Start を 0 にし、Close ボタンを押して閉じる。
- タイムスライダの左端の開始フレームフィールドを0にする。
- /obj/SimulatedFlowmap1/SIMULATION を選択、Start Frame を 0 にする。
- /obj/SimulatedFlowmap1/VISUALIZATION/surface_cache を選択、Load from Disk をオフにして、再度 Save to Disk をクリック、キャッシュを書き直す。
- 書き出したら再度 Load from Disk をオンにする。
- タイムスライダの左端の開始フレームフィールドを 1 に戻し、巻戻しボタンを押して現在のフレームも1に戻す。
- Water Flow in Portal 2: Valve の Alex Vlachos 氏による Siggraph 2010 講演 (PDF)
0 件のコメント:
コメントを投稿