Blender物理シミュレーション(Particle)

Blenderのパーティクル生成機能の解説
当サイトの記事内リンクには広告を含む場合があります。

Blenderのパーティクル生成機能

パーティクルは面や頂点から粒子(パーティクル)を放出し、さらに連続して描画する事でStrand(糸状)にしてHair(髪の毛など)を作成できる機能です。

 

パーティクルで芝生

 

使用バージョン
Blender2.49b、2.67b、2.80

 

 

パーティクルの基本

パーティクルを使用する

2.6系以降
Propertiesヘッダー→Particle+
2.4系
ObjectF7Particle buttonParticle Systemパネル→Add New

 

パーティクルを生成するとParticleSystemモディファイアが追加されます。
ヘアータイプのパーティクルはConvertでメッシュオブジェクトに変換できます。

 

プレビュー

3Dビュー上でアニメーションとしてプレビューできます。
Blender基本操作(アニメーション)

 

発生させたパーティクルはオブジェクトモードで3D Viewの描画モードをSolidにすると確認できます。

 

Emitterでパーティクルを発生させる

粒子を放出するエミッタータイプのパーティクルを使用します。

 

簡単なパーティクル
2.6系以降
デフォルト設定のままアニメーションさせると、パーティクルが落下していきます。

落下するパーティクル

 

Propertiesヘッダー→SceneGravityパネルを無効にすると、重力の影響が無くなりパーティクルが上昇します。
上昇するパーティクル

 

2.4系
Physicsパネル→Normalの値を1にしてシミュレーションを行うと、面の法線の向きに合わせた粒子が放出されるのが見えます。

上昇するパーティクル

 

Randomを1にすると、オブジェクトを中心にランダムな方向に粒子が放出されます。
数値を大きくするほど遠くへ飛んでいきます。
ランダム方向に飛ぶパーティクル

 

レンダリング時の表示はVisualizationパネルで点やクロスなどに変えられますが、マテリアル設定で色を変えたりHaloで光のように表示する事もできます。

 

他のオブジェクトをパーティクルとして使う

使用するオブジェクトを指定します。

 

2.8系
Renderパネル→Render AsObjectObjectパネル→Instance Object
2.6系
Renderパネル→ObjectDupli Object
2.4系
Visualizationパネル→Objectを選択→OB

 

EmitterはPlaneで、OBにCubeを指定しました。PhysicsパネルNormalの値は5です。
Planeから放出されるCube

パーティクル関連のパネル

選択システムによって設定項目は異なります。

 

2.6系

基本設定

Blender2.6のパーティクルパネル

 

Type
Emitter
パーティクルを放射

オブジェクトを適用して飛ばしたりする事もできます。
Haloタイプのマテリアルにして粒子の大きさなどを変更します。

Hair
ストランドとして描画

Advancedを有効にするとVelocityパネル、Rotationパネル、Phisicsパネルが増えます。
Emitterパネルの項目も増えますが、Hair Lengthの項目が隠れます。

 

Emissionパネル

生成するパーティクルの数や寿命などを設定します。
Blender2.6のEmissionパネル

 

Hair dynamicsパネル(Hair)

クロスシミュレーションを使用した物理演算を有効にします。
Blender2.6のHair dynamicsパネル

 

Cacheパネル(Emitter)

シミュレーションを行いデータをキャッシュとして保存します。
Blender2.6のCacheパネル

 

Velocityパネル

面の角度などをパーティクルの速度に影響させます。
Blender2.6のVelocityパネル

 

Ramdom
生成されるパーティクルのスピードにランダム性を持たせる

 

Rotationパネル

パーティクルの回転を有効にします。
Blender2.6のRotationパネル

 

Phisicsパネル

演算の設定です。
選択したタイプによって設定項目は異なります。

 

Blender2.6のPhisicsパネル

 

演算のタイプ
Newtonian
デフォルトのタイプ
Keyed
指定した他のパーティクルシステムから発生したパーティクルと同じ位置に発生
Boids
人工知能を持ったパーティクルが群れのように動き回る

設定によって敵を攻撃したり、指定オブジェクトに向かったりします。

Battle
体力や攻撃力を設定します。
Misc
回転量や高さなどを設定します。
Relations
指定オブジェクトが持つパーティクルとの関係性を設定します。
Fluid
液体のような表面張力やバネの力などを持つ

 

Boid Brainパネル(Boids選択時)

からボイドの動きのルールを追加します。
ルールは上にあるものが優先されます。
Blender2.6のBoid Brainパネル

 

Goal
指定したゴールとなるオブジェクトに向かう
Avoid
指定したオブジェクトとの衝突を避ける
Avoid Collision
ボイドやコリジョンオブジェクトを避ける
Separate
互いに離れる
Flock
近隣のボイドの動きをコピーしますが互いに離れる
Follow Leader
指定したオブジェクトをリーダーにして追従
Average Speed
平均速度を維持
Fight
近くのボイドに向かって移動し戦う

 

Renderパネル

レンダリング時の描画のタイプを選択します。
Blender2.6のRenderパネル

 

Displayパネル

3D View上での表示のタイプを選択します。
Blender2.6のDisplayパネル

 

Childrenパネル

発生パーティクルを親として、さらに子パーティクルを生成します。
流れを集結させたり、ランダムな乱れを適用したりできるので髪型の作成に適しています。
Blender2.6のChildrenパネル

 

Field Weightsパネル

各種エフェクターの影響度です。
Blender2.6のField Weightsパネル

 

Force Field Settingsパネル

パーティクル自身をエフェクターにします。
Blender2.6のForce Field Settingsパネル

 

Vertex Groupsパネル

パーティクルの密度や寿命に影響させる頂点グループを設定します。
Blender2.6のVertex Groupsパネル

 

2.4系

Particle Systemパネル

どの種類のシステムを使用するかを設定します。
Blender2.4のParticle Systemパネル

 

Emitterなど
Emitter:発生装置、Reactor:反応装置、Hair:ヘアー

 

Basic
Amount
発生量
Segments(Hair選択時)
ヘアーの分割数。高い数値で滑らかになるが重くなる
Sta/End(Reactor選択時)
反応条件に当てはまらなくても指定フレーム内でパーティクルを発生させる
Deathなど(Reactor選択時)
反応するパーティクルの条件
Multi React(Reactor選択時)
複数回反応させる
Shape(Reactor選択時)
ターゲットとの距離による反応の強さ
Sta(Emitter選択時)
発生フレーム
End(Emitter選択時)
終了フレーム
Life(Hair以外)
パーティクルの寿命
Rand(Hair以外)
寿命のランダム度合い

 

Emit From
Random
ランダムにする
Facesなど
パーティクル発生場所
Even(Hair以外でVerts選択時以外)
等分布にする
Jittered(Hair以外でVerts選択時以外)
分布方法
Amount
サンプリングに使用するジッター数
P/F
放出位置/面
Grid(Hair以外でVerts選択時以外)
分布方法
Invert
反転

 

Reactor選択時

Target
Ob
ターゲットとなるパーティクルシステムを持つオブジェクト
Psys
ターゲットとなるパーティクルシステムの番号

 

Physicsパネル

パーティクル生成の数値設定を行います。
Blender2.4のPhysicsパネル

 

Initial velocity
Object
オブジェクトの動きをパーティクルの発生スピードに影響させる
Normal
面のノーマルを影響させる
Random
向きのランダム性の強さ
Tan
面のタンジェントを影響させる
Rot
面のタンジェントを回転させる
Particle(Reactor選択時)
ターゲットのパーティクルを発生スピードに影響させる
Reactor(Reactor選択時)
ターゲットのパーティクルの発生方向を発生スピードに影響させる

 

Global effects
AccXYZ
パーティクルの向き
Drag
空気抵抗の度合い
Brown
ブラウン運動の度合い(毛先がランダムな方向に曲がる)
Damp
スピードの減速度

 

Visualizationパネル

パーティクルを3Dビューやレンダリングでどう表示するかの設定を行います。
プルダウンメニューからパーティクルの表示タイプを選択します(選択しているパーティクルシステムによって選択できる項目は異なる)。

 

None選択時
パーティクルは表示されなくなります。

Render emitter
パーティクル発生装置オブジェクトをレンダリング

 

None選択時以外
Blender2.4のVisualizationパネル

Draw
Vel
パーティクルのベロシティを表示
Size
パーティクルのサイズを表示
Num
パーティクルの番号を表示
Draw Size
3Dビューのパーティクルのピクセルサイズ
Disp
3Dビューでの表示量。低スペックマシンでは低めに

 

Render
Emitter
発生元のオブジェクトを描画するか
Parents
親パーティクルを描画
Unbom
発生前のパーティクルを表示
Died
寿命の終わったパーティクルを表示

 

プルダウンメニューの選択項目によっては以下の項目が設定可能になります。

 

Line選択時

Speed
パーティクルの速度をラインの長さに乗算
Back
ラインの後ろの長さ
Front
ラインの頭の長さ

 

Path選択時

Steps
3Dビューでのパスのステップ数
Render
レンダリングでのパスのステップ数
Abs Length
子パーティクルの寿命を絶対値で指定
Max Length
子パーティクルのパスの長さをBlender単位で指定
RLength
長さにランダムな変化を加える
B-Spline
B-スプラインで滑らかに
Strand render
レンダリングにストランドプリミティブを使用(レイトレース非対応の為、アルファ透過を使用していると奥にあるStrandが消えてしまうが高速レンダリングが可能に)
Adaptive render
パーティクルのパスのステップ数を表示

 

Object選択時

OB
パーティクルの位置にここで指定したオブジェクトを表示

 

Group選択時

GR
パーティクルの位置にここで指定したグループ内のオブジェクトを表示
Dupli Group
グループをそのまま表示
Pick Random
グループ内のオブジェクトからランダムに表示

 

Billboard選択時

 

Lock
ビルボードの向きを固定
Viewなど
ビルボードの向き
Tilt
ビルボードのひねり
Rand
ひねりのランダム度合い
UV Split
UVコーディネイトの分割数
Noneなど
ビルボードのテクスチャのアニメーションタイプ
Linearなど
ビルボードのテクスチャのオフセットタイプ
OffsetX、Y
ビルボードに与えるオフセットの値
OB
指定オブジェクトにビルボードを向ける(デフォルトではカメラ)
Normalなど
UVチャンネル
UV
使用するUVレイヤー

 

Extrasパネル

Blender2.4のExtrasパネル

 

Effector
エフェクターのサイズなどを設定
Time
使用する時間のタイプや挙動を設定
Vertex group
頂点グループによって影響を制御
Density
密度(発生範囲)
Velocity
速度
Length
長さ
Clump
収束
Kink
ねじれ
Rough1~E
1、2、終端の乱れ
Size
サイズ
TanVel
タンジェント速度
TanRot
タンジェント回転
Effector
エフェクター
Neg
影響を反転

 

Childenパネル

None以外を選択すると選択した部分から子パーティクルを生成します。
Blender2.4のChildenパネル

Reactorで水しぶきを作る

Reactorは他のパーティクルシステムとのイベント時に働きます。
モンキーからCubeが放出されて下に落ち、Planeの水面と衝突して水しぶきパーティクルが発生するシーンを作成します。
パーティクルで水しぶき

 

使用オブジェクト

落下開始位置にモンキーを置きEmitterにします。
放出されるオブジェクトとしてCubeも用意しておきます。

 

2.6系以降
パーティクルタイプのReactorが無い為、Dynamic Paintを使用します。

 

モンキーにDynamic Paint→TypeBrushを設定します。

 

Sourceパネル
Paint
Particle System
Particle System
ParticleSettings(使用しているパーティクル名)
2.4系
Physicsパネル→Normal:1、AccZ:-9.82

 

落下用オブジェクト

モンキーからCubeが発生し落下するようにします。
※「他のオブジェクトをパーティクルとして使う」参照

 

水面オブジェクト

Planeを水面にします。

 

2.6系以降
Planeはメッシュをある程度細分化します。

パーティクル接触部分にウェイトがペイントされるようにして、データをパーティクル発生範囲として指定できるようにします。

 

ダイナミックペイント側
Surface(2.6系ではDynamic Paint Advanced)パネル
SurfaceWeightを選択します。

時間が経つと消えていくようにするにはDissolve(2.6系ではFade)を有効にします。

Outputパネル
出力する頂点グループdp_weightが設定されているので、+で有効にします。
パーティクル側

TypeHairを選択します。

Renderパネル
Objectを選択し、Instance Object(2.6系ではDupli Object)に描画用のオブジェクト名を入力します。
Vertex Groupsパネル
DencityLengthに頂点グループ名を入力します。

Blender2.6のVertex Groupsパネル

 

モディファイアの順番はダイナミックペイントが上、パーティクルが下になるようにします。

 

2.4系
Particle Systemパネル
プルダウンメニュー→Reactorを選択

 

Basic
他パーティクルとの接触時にパーティクルを発生させたいのでCollisionを選択
Target
モンキーを指定
Physicsパネル
高く跳ね上がった後に重力で下に落ちていく設定にしています。

 

Normal
10
AccZ
-9.82
Reactor
跳ね上がる形状を変えられるので好みで設定
Visualizationパネル
水しぶきの形を設定します。

 

Circleを選択(Pointなどでも良い)

 

衝突用オブジェクト

2.6系
特に設定は行いません。
2.4系
水面用のPlaneに落ちたCubeがそのまま落下していかないようにもう一つPlaneを用意して、ObjectF7Physics buttonsCollisionパネル→Collisionを有効にします。

※水面用Planeに直接指定しても良いですが、挙動が変わってしまうので別のPlaneに設定しています。

 

Particle Interaction
Damping
0.7

 

完成

2.6系
モンキーから発生したパーティクル(描画用オブジェクトは未設定)がPlaneに衝突し、衝突部分のウェイトによってPlaneからパーティクル(画像ではCubeを指定している)が発生します。

パーティクルで水しぶき

2.4系
シミュレーションを開始すると水面にCubeが接触した時に水しぶきパーティクルが発生します。

パーティクルで水しぶき

Hairで芝生を作る

長さを持つHairを使用します。
パーティクルで芝生

 

毛並みとしてHairをカスタマイズする場合は、Particle Modeを使用します。
Blender編集モード(Particle Mode)

 

使用オブジェクト

3D Viewヘッダー→ObjectQuick EffectsQuick Furから簡単にヘアータイプのパーティクルを設定できます。
この時自動でマテリアル(Fur Material)も付加されます。発生源であるオブジェクトに違うマテリアルを設定したい場合はもう一つマテリアルを付加し、メッシュ全体を選択しマテリアルを割り当てます。

 

Planeを何度か細分化して頂点数を増やします。
頂点から草を生やす設定にするので頂点数:4225、面数:4096くらいにします。

 

パーティクルの設定

パーティクルのタイプはHairにします。

 

量を1000、分割数のSegmentsを5くらいにします。
Randomを有効、Vertsを選択します。

 

2.6系以降
Blender2.6のパーティクルのパネル

 

 

2.4系
Blender2.4のParticle Systemパネル

 

プレビュー

3D ViewでHairが発生したのを確認できます。
Hairが発生したPlane

 

ここでレンダリングを行うと白い棒のような毛が生えているオブジェクトになりますが、まだ芝生には見えない状態です。
Hairをレンダリング

 

マテリアル設定

マテリアルを作成し、芝生らしくなるように色を付けます。

 

2.8系
シェーダーノードでHairに色が付くように編集します。

根元から毛先にグラデーションで色を付けるにはHair Infoノード→Interceptを方向として使用します。
パーティクルのヘアーにシェーダーノードで色を付ける

2.4系
Texture
新しいテクスチャを作成
Map Input
Strandボタンを有効に(テクスチャが生成されたパーティクルに対して適用される)
Map To
Alphボタンを有効に(アルファ透過を利用して毛先を細く見せる為)
Shaders
Specを0.00に(透過部分に光が当たってうまく透過できなくなるのを防ぐ)
Mirror Trans
Ray Transp(透過)を有効に
Material
A(アルファ値)を0.00に

 

形状の設定

2.8系
Hair Shapeパネル
2.6系
Strandパネル
マテリアル側のパネルです。

Rootの数値で根元の太さを設定します。
Blender2.6のStrandパネル

2.4系
Links and Pipelineパネル

Strandsで設定を行います。
※アルファ透過を行わなくてもStartを少し太く、Endを細くすれば先細りの効果を出せます。

 

Use Tangent Shadings
Tangentシェーダーを利用
Surface Diffuse
発生元オブジェクトのライティング計算を適用
Dist
Hairの長さに合わせて発生元オブジェクト表面の凹凸(Normal)を適用
Use Blender Units
Blender単位を使用
Start
開始点の太さ
End
終了点の太さ
Shape
鋭利の度合い
Width Fade
幅に合わせてフェード

 

テクスチャ

テクスチャのタイプはBlendを選択します。

 

2.4系

Colorsパネル→Colorbandでプレビューの左右をクリックして色とアルファ値の設定を行います。
Blender2.4のColorsパネル

 

左側
芝生の根元となる色(濃い緑)に。A:0.000(不透明)
右側
芝生の先端となる色(薄い黄緑)に。A:1.000(透明)

 

プレビュータイプをHair strandsにすると芝生らしくなっているのが確認できます。
マテリアルプレビューのHair

 

完成

2.4系

発生元オブジェクトを描画しない設定にしました。
開始点の太さを1.5位にすると先端の細さが強調されます。
太めのパーティクルの芝生

 

Amountを10000、Normalを0.005、Randomを0.001に設定したものです。
短めのパーティクルの芝生

 

アルファ透過無し、Start:1.54、End:0.25、Amount:1000、Normal:0.02、Brown:0.05に設定したものです。
Brownの値を増やすとStrandが曲がって草むら風になります。
草むら風のパーティクル

Blenderで実現するドリーミーな世界

class101

ファンタジーな背景のモデリング作品を作れるようになる講座で、教材動画にはBlender初心者向けチャプターもあるので基本から学べます。
詳細は以下のサイトの「デジタルイラスト」カテゴリー内にあります。

 

【定額でオンラインレッスンが見放題】CLASS101+ を見る

電子書籍を執筆しました

【Kindle Unlimitedなら読み放題】Blenderでモデリングした3DCG作品集です。