LogoMark.png

Blender/Physics の変更点


#author("2019-12-29T01:55:58+09:00","default:inoue.ko","inoue.ko")
*物理シミュレーション
~

&color(red){Blender 2.8 からインターフェイスが大幅に変更されて、当サイトの内容は古くなっています。};
~

Blenderには、優れた物理シミュレーションの機能があります。
とりあえず、簡単に実現できる3つの事例を紹介します。
~

**Softbody

ボールが床に落下するシーンを作成してみます。

1)Plane(床)とSheare(球) を置きます(ポリゴン数は少なめがいいでしょう)。

2)球を選択して
プロパティーパネル > Physics > Soft Body を選択します。
-[Soft Body  Goal]  :  OFF(チェックをはずす)
-[Soft Body Edges]  :  ON   
--各種パラメータはそのまま
--Bending の値を大きくします(0だとつぶれます)。
//[Soft Body Collision]  :  ON   

3)床を選択して
プロパティーパネル > Physics > Collision を選択します。

以上で床が障害物となって、「球が床ではねる」という現象が実現できます。
タイムラインで再生ボタンを押すと動作が確認できます。
初回、パラメータ変更後はすべて再計算しますので時間がかかりますが、
2度目からは、スムーズに動きが確認できます。
~

**Fluid
水のかたまりが円錐状の障害物の上に落ちる・・
という簡単なシーンを作成してみます。 事例として・・・・
-大きな立方体 : シミュレーション領域(ドメイン)となります
-球 : 水のかたまりとみなします
-円錐 : 障害物をみなします
の3つのオブジェクトを置いて下さい。
球は円錐の真上、球と円錐は、立方体の内部に置かれるものとします。

1) 立方体を選択して 
-プロパティーパネル > Physics > Fluid を選択します。
-TYPE を [Domain] にします。

2)球を選択して
-プロパティーパネル > Physics > Fluid を選択します。
-TYPE を [Fluid] にします。

3)円錐を選択して
-プロパティーパネル > Physics > Fluid を選択します。
-TYPE を [Obstacle] にします。

4)最後にDomain(立方体)を選択して 
-Fluidパネル内の [Bake Fluid Simulation] を実行

流体の計算が開始され、フレームごとの形状データが出力ディレクトリに自動的に蓄積されます。タイムラインで再生ボタンを押すと動作が確認できます。

補足
-アニメーション設定の [Sta] - [End] までのフレーム分がBakeされます
-出力ディレクトリは、デフォルトでは/tmp/となっています。
Macの方は/tmp/以外のフォルダに変える方がいいでしょう。



~
**Particle

***準備
シーンに、粒子の発生源となるメッシュを置いて、
プロパティーパネル > Particle System パネルで [ADD] します。
type は emitter  を選択して下さい。

1)Emission(発光)パネルの各パラメータの数値を確認します。
Amount 飛び出す粒子の量(とりあえずそのままでOK)
Sta 粒子が発生しはじめるフレーム(とりあえずそのままでOK)
End 粒子の発生がとまるフレーム(とりあえずそのままでOK)
Life 粒子の寿命(とりあえずそのままでOK)
Random と Even Distribution は ON

2)Velocity(速度)パネルの数値を確認します。
Normal 面の法線方向に飛び出す力
X Y Z 方向それぞれに力をかけることができます。
 
3)Renderパネルの内容を確認します
Emitter が ON の場合、オブジェクト自体も描画されます。通常 OFF です。
TYPE は、Halo Line Object(要、対象の選択) などから選択できます。
 
4)Field Weightsパネルを確認します。
Gravity は重力です。デフォルトでは重力があるので、下へ落下します。
~

***通常のパーティクル
とりあえず、ふつうのパーティクルを試してみましょう。
Physics パネルで Newtonian が選択されていることを確認したら、
動作確認(タイムラインで再生)してみて下さい。
粒子が飛び出す様子が確認できると思います。

例1. 雪
    Tot : 1000        Random Life :  0
    Norm : 0      Force Z : -0.05  Life : 75 
    ※Totは全粒子の数、(End-Sta)が継続時間です。 
  
例2. 炎  
    Tot Frames : 500    Random Life : 0.5
    Norm : 0      Force Z : 0.3  Life : 25   

例3. 花火  
    Tot Frames : 500    Random Life :  2
    Norm : 0.1    Force Z : -0.1   
    Life : 30        Vector On / Size 1
    ※Sta = Endとすることで、すべての粒子が一斉に飛散します。

~

***ボイドシミュレーション
鳥の群れが飛ぶようなシミュレーションができます。
Physics のタイプを Newtonian から Boid へ変更します。
鳥は飛びつづけますので、とりあえず Lifeは大きくして下さい。

動作確認してみて下さい。
通常のパーティクル(Newtonian)とは明らかに動きが異なると思います。
Render パネルで TYPE を Object にして鳥のオブジェクトなどを
指定すると、よりそれらしく見えます。

空間内にゴール(目標)やプレデター(捕食者・敵)を置いてみましょう。
エミッターから離れた場所に、Sphereを2つ置いてください。

1)一方の Sphereを選択して
プロパティーパネル > Physics > Force Fields を選択
TYPE を Force、 Strengthを - 側にすると、群れのゴールになります。

2)他方の Shere を選択して
プロパティーパネル > Physics > Force Fields  を選択
TYPE を Force、 Strengthを + 側にすると、群れのプレデターとなります。

タイムラインで再生ボタンを押すと動作が確認できます。

~
~
***参考 : Blender Wikiの情報が充実しています(日本語です)
-Cloth
http://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Physics/Cloth
-Fluid
http://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Physics/Fluid
-Particles
http://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Physics/Particles
-Smoke
http://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Physics/Smoke
-SoftBody
http://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Physics/Soft_Body
~
~

-
-
-

~
~
~