1. RealFlowとは?
RealFlowとは、Next Limit Technologiesによって開発された物理シミュレーションツールです。 具体的には、運動する水や粘液、水面などの液体のシミュレーション、剛体や柔体、ファイバーなどの相互作用を計算できます。
具体的には、流れる水、たれるハチミツ、打たれたボールの変形、布地、海面など、応用を利かせればさまざまのもののシミュレートができます。
RealFlow4へのバージョンアップではさまざまな機能が追加されています。
ソフトボディはRF3ではElastics(弾性体)として実現可能でしたが、RealFlow4ではよりとっつきやすくなったようです。画像のソフトボディシミュレーションでは、ゴムっぽい感じにオブジェクトが伸びるように設定してみました。
インターフェースの変更点の主な点としては、Global Links, Exclusive Linksの登場と、Undo, Redoの強化でしょうか。上の画像はGlobal Links, Exclusive Linksですが、デーモンやオブジェクトの影響範囲の設定変更はRF3のシーンツリーに比べて大変楽になっています。
こちらの画像はExport Centralです。ほかのソフトにエクスポートする際の名前の変更が可能になりました。ログファイルも残すことができます。
2. いざ流体シミュレーションに挑戦
メインの機能となる流体シミュレーションを試していきます。
まずは3ds maxでシミュレーション用のグラスを作成します。RealFlowはさまざまなファイル形式でオブジェクトの読み込みができますが、今回はmax上でSDファイル形式のオブジェクトとして書き出します。SDファイル形式での書き出し、読み込みには専用のプラグインが必要なので、ダウンロードしておきましょう。
RealFlowを起動し、オブジェクトを読み込みます。
そのままではシミュレーションに時間がかかってしまうので、scaleを0.3位にしておきましょう。
読み込んだオブジェクトのパラメーターです。ここで、Collision distanceに0に近すぎる値は入れないようにしましょう。メタボールのサイズにもよりますが、後でメッシュを生成したときにオブジェクトの外にメッシュがはみ出してしまいます。
エミッター、デーモンを追加しましょう。k_Volumeデーモンを追加しておくと、ボックス外(内)のパーティクルを削除してくれるので、時間の節約になります。
Resolutionの値を上げればその分よい結果になりますが、上げ過ぎると時間がかかるので注意してください。本番では200にしてみました。水のような粘性の低い液体を表現する時には、メッシュパラメーターの中のFiltersを設定しておきます。それぞれのパラメーターは実験を繰り返してちょうどいい値を探しましょう。
こんな感じになりました。ややパーティクルの量が少なかったようです。途中でパーティクルが途切れていました。
さすがRealFlowのメイン機能だけあって、簡単に、かつかなりリアルな水を製作できました。3Dソフトに標準でついているメタボールではこうはいかないと思います。新しいインターフェースのGlobal Links, Exclusive Linksの登場で、RF3のようにシーンツリーで苦しむ必要もないようです。
ところで、ネックとなるシミュレーションにかかる時間もバージョンアップにより短くなっています。それでも、本番のシミュレーションでは多少時間がかかっているので、あまり本番用のシミュレートはミスはしたくないですね。
3.今度はソフトボディシミュレーションに挑戦
さて、次はソフトボディシミュレーションを試してみましょう。
まずは3ds max でスキンをしてアニメーションをつけたモデルとソファをエクスポートします。ソファはOBJファイルで書き出しをしました。
ソファのパラメーターです。DynamicsのところをSoft Bodyにします。
今回大切なのは、Mass(質量), Stiffness(硬さ), Damping(減衰)です。
パラメーターはよりよい結果が出るまでいろいろと変えてみましょう。今回はこのままの状態で進めていきます。
次に、Select pinsをクリックし、シミュレーションに関係しない頂点をドラッグして選択して下さい。Shift+ドラッグで頂点を加えていくことができます。
いい感じに変形してくれました。このままシミュレーションを進めてみます。
元の形に戻りましたね。
Solid を yesにするとオブジェクト内がパーティクルで満たされます。かかる時間はやや増えますが、ゼリー状の物体の表現などに使えそうです。
というわけで、ちょっとぷるぷるしていただきましょう。
ぷるるーん、と。
ところが、maxにSDファイルで出力してみたところ、アニメーションされていませんでした。仕方なく、メタボールでレンダリングした結果がコレです。なんかもこもこしてますね。
ソフトボディシミュレーションを使っていて、いじることのできるパラメーターの数が少ないので、それぞれのパラメーターの挙動が意外とわかりやすいように思います。その数値しだいではいかようにも変形するので、布地やゴムなどのシミュレートにも使えそうです。
ただ、3ds maxとの連携がやや難しいようです。パーティクルの連携はできるものの、メッシュのアニメーションが連携できませんでした。簡単にファイルのやり取りができるようにして欲しいというのが素直な感想でした。ソフトボディでは今のところメッシュのアニメーションの連携はできないとのことでしたが、近い将来、プラグインアップデートで改善される予定との事なのでそちらにも期待したいと思います。
4. スクリプトを使ってみよう!
RealFlow4では、Python(パイソン)というフリーのオブジェクト指向プログラミング言語を用いることにより、面倒な作業を自動化したり、RealFlowの標準機能では難しいシーンを作成することができます。
Pythonとは、1990年初頭にオランダで作られたオープンソースのハイレベル言語です。Pythonはコードのシンプルさが重んじられているので、プログラミングの専門家でない人もプログラミングを読みやすくかつ書きやすいといえます。ちなみに、Pythonはニシキヘビという意味です。そんなわけでマスコットマークは青と黄のニシキヘビが絡んだものになっています。
さて、それでは実際に使ってみましょう。まずは、"Hello World!!"と表示するプログラムを書きます。
def main(): dialog = GUIMessageDialog.new() if __name__ == "RealFlow": |
設定のしかたなどは次で説明するとして、使ってみます。
このように表示されます。
"ALERT_TYPE_INFORMATION"を"ALERT_TYPE_CRITICAL"に変えてみました。
次に、Next Limit社のホームページからフリーでダウンロードできるスクリプトを使いながら、実際の設定のしかたを紹介します。
http://www.nextlimit.com/nlscript/
上記のサイトでメンバー登録することで商業利用も可能なスクリプトが自由にダウンロードできます。
RealFlowでは、デフォルトではエミッターやメッシュ作成時にメッシュをエクスポートしてしまうようになっているので、毎回チェックをはずすのは不便です。そこで、"Expot None"というバッチをダウンロードします。
まずは、スクリプトをダウンロード後、拡張子を".rfs"にして保存。アイコンも同時に保存しておきましょう。その後、RealFlowのメニューバーから"Scripts⇒Add"を選択し、保存したスクリプトとアイコンを選択します。ついでにショートカットも登録しておくといい感じです。OKをクリックするとすると、アイコンが追加されています。
それでは使ってみましょう。
エミッター、メッシュ、オブジェクト生成直後はこんな感じですが...
新しくできたアイコンをクリックするだけこの通りです。
今回はバッチだけでしたが、他にもイベント、デーモン、ウェーブ、フルイドの作成も可能です。
スクリプト機能を使ってみての感想としては、RealFlow3から4にかけてのアップデートにかけての目玉機能な気がします。ユーザーの自由度が大変上がっています。また、スクリプトを書けない人でもフリーでダウンロードできるのでどんどんカスタマイズできるあたりが魅力的に感じました。