ソフトボディ
ソフトボディ同士の衝突に挑戦
前回「風になびく旗」を作成しましたので、今回はゼリー状の柔らかく弾力のある物体を作成してみたいと思います。1つでは淋しいので複数のソフトボディ同士が衝突し合う状態に挑戦したいと思います。
画像の通り今回用意したのは、プリミティブオブジェクトのCube(立方体)2個、Icosphere(球体)、Plane(平面)。ソフトボディのCubeとIcosphereが落下しながら衝突し合い、最後にPlaneに当たるという予定です。
・・・と、いきなり壁にブチ当たってしまいました。ソフトボディ同士が衝突せずすり抜けてしまい、おまけに最下部に配置したPlaneもすり抜けて落下してしまったのです・・・。さて、お互いを衝突させるにはどうしたらよいのでしょう?
調べてみたところ、「Collision」にて設定を行うそうです。ということで各オブジェクトの設定は下記の通りです。
まず、最上部のCube(立方体)から・・・。衝突の設定は「Fields」タブの右隣の「Collision」タブにて行います。[Collision]をクリックし、[Damping]を0.000に変更します。この衝突設定は全てのオブジェクトに対して行います。次にソフトボディの設定です。[Use Goal]は"OFF"にし、[Use Edges]と[Stiff Quads]を"ON"にします。後は[Damp]と[Be]を0.8に変更します。
基本的に最上部の立方体と設定は変わりませんが、1点だけ[Grav(重力)]の値を変更しました。これにより落下速度が変わりお互いが衝突するようにしています。
Icosphere(球体)の設定もほぼ同じですが、今回は[Rull]と[Rush]の値を変更しています。私だけかもしれませんが、球体だけ少し柔らか過ぎるように感じたので・・・。とりあえずこちらはお好みでどうぞ。
Plane(平面)に関しては、ソフトボディを使用しないので設定は「Collision」のみです。ということでやっとソフトボディ同士が衝突し合うようになりました。
レンダリングしたものがこちらです。おぉ〜プルンプルンしております。
ソフトボディ
ソフトボディで風になびく旗を作成
ゼリー状の柔らかく弾力のある物体やなびく旗などを表現する際に使用する機能「ソフトボディ」。以前からとても気になっていたソフトボディ機能、敷居が高そうで敬遠しておりましたが、今回思い切って挑戦してみたいと思います。
まずは、旗となる板状のMeshオブジェクトを用意します。ソフトボディ機能の効果を活かすには極力ポリゴンが細かい方が良いとのことなので、画像のように[Subdivide]にて細分化を行います。さらに今回は、仕上がりがよりきれいに見えるように[Subsurf(サブディビジョン・サーフェイス)]のLevels 2を適用しました。
今回は風を吹かせて旗をなびかせるため、とりあえず始めに旗となる板状のMeshオブジェクトに対して、風の影響力を設定します。
[Edit Mode]に変更し全ての頂点を選択します。その状態で「Bottons Window」内のコンテキスト[Editing]を選択し、「Link and Materials」タブ内の[New]をクリック。名前の「Group」を任意の名前に変更します。(今回は「Flag」で・・・)「Weight」を[0.000]に変更し[Assign]をクリックし確定します。これにより全ての頂点が風の影響を受けるようになりました。
上記設定のままだと旗が風で飛ばされてしまうので、固定する箇所を設定します。いわゆる「ピン止め」です。画像の通り上部左右の頂点を選択し、先程設定した「Weight」を[1.000]に戻し同じく[Assign]をクリックし確定します。これにより設定した箇所は風の影響を受けなくなります。
いよいよソフトボディの設定です。[Object Mode]に変更し板状Meshオブジェクトを選択した状態で、「Bottons Window」内のコンテキスト[Object]、サブコンテキスト[Physics buttons]を選択し、「Soft Body」タブ内の[Soft Body]をクリック。まず[Grav(重力)]を0.980に設定します。0.980とは地球の重力値(だそうです)。次に[Use Goal]にて先程設定した「Flag」の頂点ウエイトを反映させます。最後に旗の伸び縮みの設定を行います。初期設定のままだと旗が風によって不自然に伸びたり縮んだりしてしまうので、 [Rull]と[Rush]の値を1(0.999)に変更し伸び縮みしないようにします。
〈追記〉July 9, 2010
地球の重力値ですが、他の文献では9.8と表記されておりBlenderの初期設定もGrav : 9.8であることから考えてもこちらの数値が濃厚だと思われます。
ソフトボディの設定が完了したので、最後に風を発生させるフィールドの作成を行います。「Header」から(または「3D View」上にマウスカーソルを移動し[Space]キーを押す)[Add] > [Empty]を選択します。「Bottons Window」内のコンテキスト[Object]、サブコンテキスト[Physics buttons]をクリックし、「Fields」タブ内の[Field Type]から「Wind」を選択。[Strenght(風の強さ)]を1.000に設定します。後はフィールドを旗の手前の適当な場所へ移動し、Z軸の矢印が旗の方に向くように回転します。
これにて準備完了です。では[Alt]+[A]キーでアニメーションを再生してみます。無事旗が風になびきました。それにしてもこんな事までもがオープンソースのフリーウェアで出来てしまうなんて、改めて「Blender」の素晴らしさを実感してしまいます。
因みにアニメーションを停止させるには[ESC]キーです。