第一回 : RealFlowレビュー流体シミュレーションについて

今回はRealFlowのレビューです。

RealFlowとは流体&力学シミュレーション・ソフトウェアです。3DCGソフト等のプラグインではなく、完全に独立したアプリケーションで、様々な3DCGソフトに対応しています。

今回リリースされたRealFlow 3は前のバージョンをはるかに上回る機能が追加されました。主にパーティクルで液体を表現することができます。ユーザーインターフェースもゼロから作りなおされており、全てのプラットホームで全く同じユーザーインターフェースになっています。

●RealFlowの新機能

・まずは高速化!

メモリの管理を効率化したようです。更にマルチスレッティングの方も対応(前からかな?)、改良されたようで、全体的なパフォーマンスが上がっているようです。このようなシミュレーション系は作業の大部分が計算時間にかかってしまいますので高速化ほどうれしいものはないでしょう。

・Realwaveの完全統合

主に波等のシミュレーションですが、その他にも水に物が浮かぶとか水しぶきとかそういったものを表現できます。Realwaveは単体で売られていましたが2.5で統合され、ました。RealFlowがパーティクルベースの液体シミュレーションだとすればRealwaveはメッシュベースの液体シミュレーションということになります。海等の広大なシーンを作る場合パーティクルでは限界があるのでこのようなメッシュベースのシミュレーションは必ず必要と言えるでしょう。

※この機能は第2回RealFlowレビューで紹介します。

・リジッドボディダイナミクス

バージョン3では旧バージョンよりも更に正確で高速な物理計算ができるようになりました。拘束ツールという物理シミュレーションには欠かせない機能が追加されたのも注目する点でしょう。

※この機能は第3回RealFlowで紹介したいと思います。

1. 3DCGソフトで基本的なシーン作成

では、基本的な使い方を実践してみます。まずはじめに必要なシーンを3DCGソフトで用意します。今回はししおどしを使って流体のシミュレーションをしてみたいと思います。



今回はLightwaveでモデルを作りました。とりあえず物理計算に使う部分のモデルを作りました。



用意したモデルをLightwaveのLayoutに読み込みます。




今回使用した3DCGソフトはLightwaveです。LightwaveにRealFlow import/exportプラグインをインストールしておく必要があります。そのプラグインを使ってモデルデータとなるSDファイルを書き出します。


ここまでは特にRealflowを使っていないのでいつもと変わらない作業です。では次にRealflowでの読み込みから書き出しまでの作業をしてみます。

2. RealFlowでの作業内容

Lightwaveで作ったモデルをRealflowで読み込みます。



Realflowを立ち上げ、RealFlowで新規プロジェクトを作成します。 プロジェクト作成後、先ほど書き出したモデルを読み込みます。

モデルに合ったスケールを設定してやります。これは流体の動きを決める重要な要素ですので必ずスケーリングする必要があります。



次に基本となるエミッターを追加します。



現実の世界では重力が存在 しますのでgravityを追加します。このgravityも自由にパラメータを細かく設定できます。もちろん特別なシーンでは上空に向かって重力が働くような設定も出来ますが、今回は現実世界を模した設定なので地面(下)へ向かって重力が働くように設定しました。



相互作用を設定しないと流体はモデルをすり抜けて下に落ちてしまうため、モデルのコリジョンを設定します。

左のパネルでCircle01のColision to Objectを選択して「<<ADD Selection」をクリックすることで割り当てが完了しました。全ての効果をまとめて割り当てる場合は「ADD

All emitter」で割り当てます。



エミッターを水の適当な放出予定位置に配置します。



エミッターの最適なものに設定します。Resolution(解像度)をしますが、この値を高くすると大幅に計算時間が長くなるので、動きのチェックのためはじめは低く設定しました。

Pressure(圧力)も設定し、Viscosity(液体の粘度)も設定してやります。粘度を低くするとよりサラサラ感が高まります。物体にぶつかった時の跳ね返りが大きくなるので水しぶきがより多く発生します。エミッターのパラメータにあるV

randomやH randomでパーティクルの放出にばらつきを与えるとよりリアルになります。


とりあえずチェックをする必要のないものとして話を進めますのでResolutionは上の画像よりも高い1000に設定します。竹のアニメーションは今回は手付けで行いました。次回のリジッドボディダイナミクスレビューでその辺は説明したいと思います。




ここまで設定したら動きをチェックします。Actionを押すと計算がはじまりますが、エクスポートセントラルでの設定をしておかないと計算終了後に「あれ?プレビューできない」という事態になりますので注意してください。今回はパーティクルの動きのみのチェックなのでEMITTEERSのCrcle01にチェックを入れた後「Action」ボタンを押しましょう。



計算が終わり動きを確認できるようになりました。計算時間は詳しくは計っていませんがそれなりにかかりますが前回のものに比べて計算時間は短くなっているようです。

サンプルムービー(Quicktime 1.54MB)




計算が終わったらパーティクルにメッシュを設定します。今回は液体のシミュレーションなのでメタボールを設定します。メッシュの細かさやフィルター等のパラメータを調節し、パーティクルに対してのメッシュの生成方法を設定します。今回は上の図のように設定しました。



build meshボタンをクリックするとメッシュの確認が出来ます。



最後にExport Centralで書き出したい部分にチェックを入れて書き出せば完了です。

3. 3DCGソフトでファイナルレンダリング

Realflowで書き出したデータをLightwaveで読み込みレンダリングしてみました。


サンプルムービー(Quicktime 1.46MB)

使ってみた感想

RealFlow自体かなり高機能だと思いました。サラサラの水っぽいものからゼリー状のドロドロしたものまで作れます。機能的には全く申し分ないのではないでしょうか。今後のレビューで紹介する機能(Realwave・リジットボディダイナミクス)を考えてば絶対損はしない商品です。


一つ気になったのが実フレームレートでのプレビュー方法がわからなかったため、動きの確認などで困りました。Maxのようにラフレンダリングで動画を作成し動きを見るプレビュー機能があれば更に良いものになるのではと思いました。


あと、Lightwave以外でのマテリアル設定方法は試していませんが、かなり面倒です。モデルを1フレームずつ書き出すので仕方がないのですが、一度モデルを全て読み込んだあと一括で全てのマテリアルを設定する必要があります。より詳細なマテリアル設定がRealFlow上でできれば更に効率良く作業できると思うので今後に期待しましょう。

次回はRealwave機能の説明をしたいと思います。