Blender 2.8 の使い方 (14) パーティクルヘア

パーティクルシステム

パーティクルシステムとは煙、雨、雪、炎といった大量の粒子(パーティクル)を発生させて表示する仕組みです。 物体をポリゴンの集まりとしてモデリングするのではなく、パーティクル(粒子)として扱います。 それらの粒子に形状、寿命、色、速度などを設定して、運動をコントロールすることで大量の粒子を高速に描画します。

パーティクルシステムでは毛皮や毛髪といった表現も可能です。 煙と毛髪は見た目は全く異なるものですが、粒子存在する時間(寿命)の間の運動を時間に沿って動作させれば、煙や雪となり、寿命の間の粒子を同時にすべて表示してパーティクルの軌跡とすると毛髪のような表現が可能になります。 毛髪の長さは寿命の長さと考えられます。

次のスクリーンショットのような、本数の多い眉毛や睫毛を一本一本、普通にモデリングしようとすると非常に時間がかかります。 髪の毛までポリゴンモデリングやスカルプトと考えると気が遠くなります。

髪の毛がありませんが、睫毛と眉毛をパーティクルヘアーと使って Eevee で表示した例です。 リアルタイムで表示できます。

blender28_12_title_eevee.png

Blender でパーティクルヘアを使うための設定は、あちこちに分散しているため、なかなか思う通りに使いこなすことは困難です。 今回は、パーティクルヘアという技術を使って、本質的に本数の多くなる「毛」を効率的に扱う方法を見ていきましょう。

この記事を書いている時点では、パーティクルシステムをノードを使う形式に変更するための開発が進んでいますが、Blender 2.83 LTS では従来の方法を使う必要があります。 少なくとも 2022年初夏まではサポートされるパーティクルシステムでもあり、将来設定する場所や方法が異なっても内容は普遍的なものです。 「変更されるかもしれないから近づかない」ではなく、積極的に踏み込んでいくことも必要ではないかと思います。


エミッター

3DCGでパーティクル(粒子)というのは、粒子が放出される過程をなるべく簡単に表現するために考えられた方法です。 まずは簡単に試してみましょう。

particle_00.png

オブジェクトモードで右下のプロパティから、パーティクルタブを選択します。 次に上部の [+] をクリックします。

particle_00a.png

「パーティクル設定」という名前のパーティクルが追加されます。 何も設定しなくても「エミッター」が選択されて、数も 1000 になっています。 左下のタイムラインエディターの再生ボタンをクリックします。

particle_00b.png

次の動画のように実行されると思います。この例では終了時間を 250 から 200 に変更して連続してパーティクルが生成されるようにしています。

particle_00.gif


パーティクルヘア

ここから先はパーティクルヘアについて詳細に見ていきます。 設定する場所がいろいろな場所に分散していて、覚えるのはなかなか大変です。 少しずつ試していきますが、まず最初にパーティクルに関するプロパティをざっと見てみましょう。

パーティクルに関するプロパティ

「プロパティ/パーティクル」タブの上部に表示されるリストの右側の [+] をクリックすると「パーティクル設定」という名称のパーティクルに関する設定を追加できます。 「パーティクル設定」をダブルクリックすると名称を変更することができます。

オブジェクトは複数のパーティクル設定を所有することができ、実際の設定内容は別オブジェクトのパーティクル設定(の名称)を選択することができます。

パーティクルには粒子を放出する「エミッター」と毛髪のような形状を生成する「ヘアー」があります。 粒子の数はデフォルトでは1000となり、「ヘアー」で使うには通常は大きすぎます。 セグメントは曲げる場合の制御点の数で、デフォルトでは 5 となっています。 睫毛とか草のように複雑に曲がらないが場合は 5 でも十分ですが、長い髪の毛でも 10 までの値で十分です。

図の右側の表示方法に関する設定には「レンダー」と「ビューポート表示」というパネルがあります。 Cycles でレンダリングする場合は「レンダー」のステップの値を大きくするとなめらかに表示されます。 Eevee でレンダリングする場合は「ビューポート表示」パネルの「ストランドステップ」の値を大きく(5 から 7 程度)するとなめらかにレンダリングされます。


ParticlePanel1.png

「子パーティクル」はパーティクル1つに対して、同じような設定の複数の「子」パーティクルを指定できます。 毛髪の場合は1本の親ヘアーの近くに例えば500本の小ヘアーを持たすことができます。ビューポート表示とレンダリングで表示される本数を別に設定できます。 集結は、毛束の根元をまとめたり、毛束の毛先を広げたりする指定をカーブで設定できます。

詳細は後から説明しますが、ヘアー形状は、プロパティ/レンダーにあるヘアーパネルから「ヘアーの形状タイプ」で「ストリップ」を指定した場合に、根元と先端の太さと形状を変更できるようになります。

頂点グループは、ヘアーの密度、長さなどを頂点グループとウェイトでコントロールする場合に使用します。

ParticlePanel2.png

パーティクルヘアの生成

上のエミッターのサンプルのように、最初の設定を変更しないで「ヘアー」をクリックします。 エミッターの場合とは異なって、タイムラインエディターを実行(アニメーション)する必要はなく、静止画としてオブジェクトの表面全体にパーティクルヘアーが発生します。

particle_01.png

パーティクルヘアの数と長さの設定

オブジェクトモードのままで、「放射」パネルでヘアー数とヘアー長、セグメント数を変更できますが、一度パーティクル編集モードでなにか編集すると、その後は「放射」パネルは変更できなくなります。 やり直す場合は「パーティクル設定」リストから削除して、再作成する必要があります。特に長い髪の毛の場合はここでセグメント数を 7 以上 10 以下の値にしておきましょう。

particle_01a.png

パーティクルヘアの数「0」

パーティクルヘアはオブジェクト全体にランダムに分布するか、頂点グループを指定してコントロールできますが、パーティクルヘアの数を「0」にすると1本毎に好きな位置に配置することができます。 一見大変そうですが、子パーティクルを適切に使用すると毛皮でなければコントロールしやすいため、私はいまのところパーティクルヘアの数を「0」に設定してパーティクル編集モードで1本毎に追加しています。

particle_01b.png

パーティクル編集モード

オブジェクトにパーティクルヘアーを追加すると、3Dビューポートに「パーティクル編集モード」が現れます。

particle_01c.png

「パーティクル編集モード」ではツールバーに選択、3Dカーソルの設定の他に以下のブラシのアイコンが現れます。

ブラシ機能
くし 制御点をプロポーショナル移動する
スムーズ ヘアーを真っ直ぐにする
追加 ヘアーを追加する
長さ 左クリックで長く、Shift+左クリックで短く
パフ ヘアーの根元を立ち上げる
カット ヘアーを切断する
ウェイト ウェイトを付ける

particle_02.png

パーティクルの追加

パーティクルヘアーはツールバーにある「追加ブラシ」で追加できます。 このとき追加する本数は [N]キーで表示されるサイドバーのツールタブに、一度に追加できるパーティクル数の設定があります。 半径で指定された範囲に、数(ここでは10)で指定された本数が、追加ブラシでクリックした場所に追加されます。

particle_02a.png

追加ブラシをクリックすると半径の範囲に 10 本のヘアーが追加されます。

particle_02b.png

マテリアルの変更

ここからはヘアーを見やすくするためにマテリアルを3種類(Material、hair、hair2)を適当な色で作成します。 レンダープレビューモードに変更して設定したマテリアルの色で表示されるように変更しています。

particle_02c.png

パーティクルヘアのマテリアルの設定

デフォルトでは、エミッターとなっている立方体のメッシュに設定されたマテリアルがヘアーにも設定されます。 エミッターと別のマテリアルに設定するには、プロパティ/パーティクルのレンダーパネルのマテリアルを既存のマテリアル(ここでは hair)に設定できます。

particle_02c2.png


ヘアーの形状 (Eevee)

レンダリングエンジンを Eevee とした場合、プロパティ/シーンの「ヘアー」パネルには、「ヘアーの形状タイプ」という項目があります。 そこでは、根元から先端まで同じ太さで表示される「ストランド」と、太さを変更できる「ストリップ」という選択肢があります。


particle_02d.png

「ストランド」には太さというパラメータはありません。「ストランド」では拡大しても線として表示されます。

particle_02d1.png

ヘアーの形状 (Eevee と Cycles)

「ストリップ」に変更すると、根元と先端の太さを指定できるようになります。 「根元の直径」と「先端」のサイズを指定できます。 ここで指定する値は「直径のスケール」で「0.01」が乗算されるため、設定した値の「100分の1」となります。


「ストランドの形状」という設定項目は、0 に設定するときれいな円錐となります。

particle_02d2.png

「ストランドの形状」を 0 より大きく(正)すると、先端に向けて急速に細くなる形状となります。

particle_02d3.png

「ストランドの形状」が 負の値にすると、先端まで太いままの形状となります。


particle_02d4.png

ここでは根元から先端までの太さを変更できる「ストリップ」を選択し、「根元の直径」と「先端」のサイズを指定できます。 ここで指定する値は「直径のスケール」で「0.01」が乗算されるため、設定した値の「100分の1」、ここの根元の直径として「0.05m」が設定されます。

particle_02f.png

パーティクルの削除

別のサンプルを試すため、これまでに設定したパーティクルを削除してみましょう。プロパティ/パーティクルの「パーティクル設定」リストから [-] をクリックして削除します。

particle_03.png

本数 0 でパーティクルヘアを生成

再度、パーティクルを追加します。 今回は自動的にヘアーを生成させないために、「放射」パネルの「数」は「0」とします。これで自動的にヘアーは生成されません。

particle_03a.png

パーティクル編集モードでヘアを生成

「追加」アイコンで指定本数のパーティクルヘアを半径で指定した範囲に生成します。 ここでも本数は「1」としています。 毛を一本だけ追加します。

particle_03b.png

子パーティクルの指定

子パーティクルで親パーティクルの、例えば1000倍の本数を追加できます。 子パーティクルは親パーティクルと同じような設定とすることができるため効率的です。 「シンプル」を選択すると、親パーティクルを中心とする「半径」の範囲に指定した本数のパーティクルヘアーが生成できます。

particle_03c.png

パーティクルヘアーの選択

親パーティクルとなるヘアーを一本追加します。 パーティクル編集モードでボックス選択などでヘアーを選択すると、 メッシュの頂点を移動する場合と同様に選択した頂点(制御点)だけ[G]キーで移動させることができます。 「くし」ブラシを使うと複数の頂点をプロポーショナル編集で同時に移動させることができます。

頂点を選択しない状態でも「くし」ブラシを使う事ができますが、その場合はヘアー全体が移動してしまうためコントロールが難しくなります。 パーティクルヘアーを扱うコツは選択にあると私は思っています。

particle_03d.png

オブジェクトモードで追加したヘアを確認

オブジェクトモードでは子パーティクルで設定したヘアーが表示されます。

particle_03e.png

子パーティクルの生成半径の指定

子パーティクルが生成される範囲を「半径」の指定で調節します。 表示数は50本登しています。

particle_03f.png

集結(Clumping)

集結は、毛束の根元や先端を補足する機能です。「集結カーブを使用」をチェックして、グラフの曲線の形を変更すると、それに従って形状が変更されます。

particle_03g.png

ヘアーの曲がり方の制御

頂点(制御点)を選択すると、選択部分だけが移動やブラシ編集の対象となります。 オブジェクトの編集モードと同様に [A] キーで全選択、[AA]で全選択解除となります。 ツールバーからボックス選択、サークル選択、投げ縄選択も可能です。

選択モード

ビューメニューの左側の3つのアイコンでパーティクルヘアの頂点(制御点)の表示/非表示をコントロールします。

パス
制御点は表示されずパーティクル全体のみを選択/解除できます。
ポイント
すべての制御点を表示して編集できます。
先端
パーティクルの先端の制御点のみを表示して編集できます。

particle_03h.png

ストランドステップ

プロパティ/パーティクルのビューポート表示パネルのストランドステップは、オブジェクトモードで表示されるヘアーの滑らかさを決定します。

オブジェクトモードでストランドステップが2の場合の表示です。パーティクル編集モードでの表示より、粗くなります。

particle_03i.png

ストランドステップを増加して、セグメント数と同程度にするとかなり滑らかな曲線となります。

particle_03j.png

キー(分割数を増加)

メニューのパーティクルから分割数の変更を行うとパーティクル編集モードで表示される制御点の数を変更できます。 この例ではセグメント数 5 に対して、キー(分割数) を8にしていますが、セグメント数より大きい値にしてもほとんど意味はありません。

particle_03j2.png

レンダー/パスでBスプラインを指定

プロパティ/レンダー/パスで Bスプラインを指定すると、なめらかに変化する Bスプライン曲線となります。Bスプラインを指定すると、根元がエミッターのメッシュから離れることがあります。

particle_03k.png

Bスプラインを指定して、子パーティクルを50本、集結カーブを設定した状態を示します。 1本のパーティクルヘアでも本数の多いヘアーをコントロールできます。

particle_03m.png

複数のパーティクルヘアの使用

プロパティ/パーティクルの「パーティクル設定」リストから [+] をクリックしてパーティクルを追加します。 本数 0 でパーティクルヘアを生成してマテリアルを「hair2」に設定します。 同じ立方体のメッシュ上に別設定のパーティクルヘアを追加できます。

particle_03n.png

左右対称のパーティクルヘア

サイドバーの ツール/オプションの「Xミラー」をチェックすると、 X軸に対称にパーティクルヘアを追加して編集できます。

左右対称にパーティクルヘアを追加して、編集する場合は、土台のメッシュに Mirror モディファイアを使っているとうまく行きません。 Mirror モディファイアは「適用」して左右のメッシュを実体化する必要があります。

particle_03n2.png

ここまでで、オブジェクトの好きな位置に、好きな種類、好きな本数、好きな形状でパーティクルヘアを生成することができるようになりました。


パーティクルと頂点グループ

これまでは、パーティクルヘアをメッシュに1本1本植えていく方法でしたが、動物の毛皮のような広い範囲に植毛するのは大変です。 オブジェクトのメッシュ全体にパーティクルヘアを生成させるのではなく、メッシュに頂点グループを設定して、その頂点グループの付近に限定してパーティクルヘアを生成させることができます。

particle_04a.png

編集モードで頂点を選択して、プロパティ/オブジェクトデータの頂点グループの[+]をクリックして頂点グループを作成します。 ここでは「グループ」という名称の頂点グループができました。 「割り当て」をクリックすると、選択中の頂点が「グループ」という名称の頂点グループに登録されます。

particle_04b.png

次にプロパティ/パーティクルでパーティクルヘアを作成します。 今回は数をデフォルトの1000のままにします。 ICO球オブジェクト全体にパーティクルヘアが生えました。

particle_04c.png

ICO球オブジェクトのマテリアルを作成して、先に作っておいたマテリアルを登録します。 ICO球オブジェクト自体のマテリアルは編集モードから全体を選択して青い「Material」を割り当てておきます。 ヘアーのマテリアルは、パーティクルのレンダーパネルのマテリアル設定で「hair」を指定します。

particle_04d.png

頂点グループの密度と長さに、頂点を割り当て済みの頂点グループ「グループ」を設定すると、頂点グループの周辺にパーティクルヘアが生成され、離れるほど短くなるようにできます。

particle_04e.png

1本1本植毛して形状を整えて、子パーティクルで本数を増やす方法が、位置や毛の流れ、密度をコントロールしやすいと思います。 毛足の短い動物の毛皮のような表現では頂点グループを使った方が効率的でしょうか。


パーティクルヘアのコリジョン

Blender 2.83 からパーティクルヘアとメッシュのコリジョン(衝突)が簡単に実現できるようになっています。 パーティクルヘアが重力で垂れ下がるときに、球や円柱に邪魔される状況をアニメーションしてみます。

まずは、オブジェクトモードで平面を1つ用意して、斜め上向きに配置します。

hair_collision_00.png

これまで見てきたようにヘアーを30本、6mの長さで生成します。 見やすくするためマテリアルを2種類作成して平面とヘアに別々に設定しています。

hair_collision_01.png

プロパティ/シーンの「ヘアー」パネルの「ヘアーの形状タイプ」を「ストリップ」として、見やすいように太めの設定にしています。 子パーティクルはここでは使っていません。

hair_collision_02.png

パーティクルヘアが垂れ下がるときに、当たるように球と円柱を配置します。 物理演算プロパティコリジョン をクリックします。 下にパラメータが表示されますが、何も設定する必要はありません。

hair_collision_03.png

平面オブジェクトのパーティクルプロパティで ヘアーダイナミクス にチェックを入れます。 パラメータの頂点の質量や剛性などを修正して、気に入った動きになるように調整します。 タイムラインエディターの「再生ボタン」を押すとアニマーションが実行されます。

hair_collision_04.png

たったこれだけでも、かなり正確にシミュレーションできています。

hair_collision_04.gif



ページ先頭へ


Blender 2.8 の使い方 [目次]

copyright (C) 2019-2020 Jun Mizutani