ジャンル雑多なゲーム・ゲーム制作関連の色々な情報を取り扱っているブログ。最近はBlenderについてが中心。
[Blender 2.8] パーティクルのパスに沿ってメッシュを変形 [パーティクルインスタンスモディファイアー]

[Blender 2.8] パーティクルのパスに沿ってメッシュを変形 [パーティクルインスタンスモディファイアー]

[Blender 2.8] ヘアーパーティクルを基に、オブジェクトの変形をするのに便利な、パーティクルインスタンスモディファイアーの機能と使い方のご紹介

今回の記事は、Blenderの『パーティクルインスタンスモディファイアー』についてです。

公式Blenderマニュアルには、このモディファイアーの用途として、「他のオブジェクトの『パーティクルシステム』のパーティクルの位置に、メッシュオブジェクトを「インスタンス」として複製するのに使用します」とあるのですが、私の個人的な所感としましては、「ヘアーカーブに沿って変形させた細長いメッシュオブジェクトを量産」という用途になら、使えるかな…?と思いました。

ちなみに、『パーティクルシステム』について、詳しくは下記記事をご覧ください。

※2020年7月23日 加筆修正を行いました。

目次

まず最初に

Blender パーティクルインスタンス モディファイアー 3DCG

『パーティクルインスタンスモディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]で表示される一覧から、[パーティクルインスタンス]という項目を選びます。

追加されると↓のように表示されます。

Blender パーティクルインスタンス モディファイアー 3DCG

memo: 『インスタンス』とは?

『インスタンス』と聞いたら、プログラミングの経験多少ある方なら、恐らくご存じかと思うのですが、『クラス』というものを雛形として発生させる複製物(厳密に言えば違うのですが)の事です。「実体」と訳される事もあるようです。

インスタンス 【 instance 】 

特に、オブジェクト指向プログラミングで、クラス定義に基いてメモリ上にデータと手続きの集合として実体化されたオブジェクトのことをインスタンスという。クラスからインスタンスを生成することを「インスタンス化」(instantiation)という。

引用元: インスタンスとは – IT用語辞典 e-Words

基本的な使い方

冒頭でご説明しました通り、このモディファイアーは『パーティクルシステム』を使用する事が前提となっておりますので、まずは『パーティクルシステム』を設定した他のオブジェクトを最低でも1つは用意する必要があります。

  1. 『パーティクルシステム』を設定したオブジェクトを用意します。
Blender パーティクルシステム 3DCG
  1. 次に、『パーティクルインスタンスモディファイアー』を設定するオブジェクトを用意し、[モディファイアーを追加]>[パーティクルインスタンス]を追加します。
Blender パーティクルインスタンス モディファイアー 3DCG
  1. [パーティクルインスタンス]>[オブジェクト]に『パーティクルシステム』を設定したオブジェクトを指定します。
Blender パーティクルインスタンス モディファイアー 3DCG
  1. アニメーション再生時に分かりやすいように、[サイズ]にチェックを入れて有効化しておきます。
Blender パーティクルインスタンス モディファイアー 3DCG
  1. アニメーション再生したら、『パーティクルシステム』と連動しているのが分かるかと思います。
Blender パーティクルインスタンス モディファイアー 3DCG
パーティクルインスタンス(左側)と、パーティクルシステム(右側)

[パーティクルインスタンス]の詳細設定項目一覧

[オブジェクト(Object)]

パーティクルシステムが関連付けられているターゲットオブジェクト。

[パーティクルシステム(Particle System)]

このモディファイアーを適用する、ターゲットオブジェクトのパーティクルシステムを指定します。

[生成元(Create From)]

[標準(Regular)]

この項目を有効にすると、通常のパーティクルを使用して、インスタンスを生成します。

[子パーティクル(Children)]

この項目を有効にすると、『子パーティクル』を使用して、インスタンスを生成します。

Blender パーティクルインスタンス モディファイアー 3DCG
[子パーティクル]のチェックの有無で比較

ちなみに、『子パーティクル』について、詳しくは下記記事をご覧ください。

[サイズ(Size)]

この項目を有効にすると、パーティクルサイズの属性によって、メッシュのインスタンス化された複製をスケーリング出来ます。無効にすると、全ての複製体が元のオブジェクトのサイズと同じサイズで表示されます。

Blender パーティクルインスタンス モディファイアー 3DCG
[サイズ]のチェックの有無で比較

パーティクルのサイズは、パーティクルシステムの[レンダー]パネルの[拡大縮小]と、(『子パーティクル』を使用している場合は)[子パーティクル]パネルの[サイズ]で調整できます。

『パーティクルシステム』の[レンダー]パネルについては下記記事をご覧ください。

[パーティクルの表示タイミング(Show Particles When)]

[生存(Alive)]

この項目を有効にすると、発生して消滅していないパーティクルを使用したインスタンスを表示します。

[発生前(Unborn)]

この項目を有効にすると、発生前のパーティクルを使用したインスタンスを表示します。

[消滅(Dead)]

この項目を有効にすると、消滅したパーティクルを使用したインスタンスを表示します。

Blender パーティクルインスタンス モディファイアー 3DCG
[生存]
Blender パーティクルインスタンス モディファイアー 3DCG
[発生前]
Blender パーティクルインスタンス モディファイアー 3DCG
[消滅]

追加オプション

[スペース(Space)]

パーティクルシステムが割り当てられているターゲットオブジェクトのワールド空間、またはローカル空間を使用します。

  • [ワールド(World)] …このメッシュオブジェクトのコピーの場所が、このオブジェクトとターゲットオブジェクトの場所に依存することを意味します。
  • [ローカル(Local)] …このメッシュオブジェクトのコピーの場所が、このオブジェクトの場所にのみ依存することを意味します。

それぞれに設定した時に、『パーティクルシステム』を設定した方のオブジェクトを回転させたらどうなるかを見てみます。

Blender パーティクルインスタンス モディファイアー 3DCG
[スペース: ワールド]
Blender パーティクルインスタンス モディファイアー 3DCG
[スペース: ローカル]

[量(Amount)]

使用するパーティクルの割合を設定します。パーティクルをランダムに省略して、インスタンスの数を調整することができます。

[オフセット(Offset)]

インスタンス化に使用されるパーティクルの範囲の相対的なオフセット。

同じパーティクルシステムを複数のモディファイアーで使用されている場合に、使用されるパーティクルのオーバーラップを回避できます。

もし、オーバーラップを完全に回避したい場合は、オフセット値を最低でも[量]の値と同じにしなければなりません。

Blender パーティクルインスタンス モディファイアー 3DCG
[量]の調節

[X]、[Y]、[Z]

インスタンス化されたパーティクルからの回転を適用するために、オブジェクトのどの軸を「回転の中心軸」として使用するかを指定します。

Blender パーティクルインスタンス モディファイアー 3DCG
オリジナルの方向
Blender パーティクルインスタンス モディファイアー 3DCG
[X]選択時のインスタンスの方向
Blender パーティクルインスタンス モディファイアー 3DCG
[Y]選択時のインスタンスの方向
Blender パーティクルインスタンス モディファイアー 3DCG
[Z]選択時のインスタンスの方向

『パス』を使用する場合

[パスに沿って作成(Create Along Paths)]

デフォルトでは、インスタンスは現在のフレーム内のパーティクルの位置に応じて配置されますが、このオプションを有効にすると、現在のフレームに関係なく、パーティクルパスに沿った位置を選択できるようになり、オブジェクトの形状をパーティクルパスに沿って変形させます。

Blender パーティクルインスタンス モディファイアー 3DCG
[パスに沿って作成]で変形させたメッシュオブジェクト(左側)と、元々のヘアータイプの『パーティクルシステム』(右側)

ちなみに、パーティクルパスは、パーティクルシステムの[レンダー]パネルで[レンダリング方法]を[パス]に設定することで、調整が出来るようになります。

[形を保持(Keep Shape)]

この項目を有効にすると、インスタンスが変形するのを防ぎ、[位置]の値に従ってパスに沿った配置をします。

Blender パーティクルインスタンス モディファイアー 3DCG
[形を保持]

[位置(Position)]

インスタンスがパスの何パーセントを占めるか、または[形を保持]が有効になっている場合は、パス上に配置する位置を指定します。

[ランダム(Random)]

各インスタンスの[位置]の値にランダム性を追加します。

Blender パーティクルインスタンス モディファイアー 3DCG
[位置]

[回転(Rotation)]

パスを中心として回転させる度合いを指定します。

[ランダム(Random)]

各インスタンスの[回転]の値にランダム性を追加します。

Blender パーティクルインスタンス モディファイアー 3DCG
[回転]

カスタムデータレイヤー

これらの項目の入力フィールドを使用すると、頂点カラーレイヤーを選択できます。このレイヤーには、パーティクル情報に基づいて色が塗りつぶされます。これらの頂点カラーレイヤーは、『シェーダー』等で使用して、『マテリアル』にバラつきを追加できます。

[インデックスレイヤー(Index Layer)]

パーティクルインデックスに基づく値の頂点カラーレイヤー。

[値レイヤー(Value Layer)]

パーティクルごとのランダムな値の頂点カラーレイヤー。

この2つの項目の扱い方ですが、例えば、↓の画像のように、”index_layer”という頂点カラーを新しく作成しておきます。

Blender 頂点カラー 3DCG

次に、[インデックスレイヤー]に作成した”index_layer”を設定します。

Blender パーティクルインスタンス 3DCG

準備が整ったら、[シェーダーエディター]で[属性]というノードに、”index_layer”と入力して、パーティクルインデクスに基づく値から生成される頂点カラーを読み込み、それを使ってマテリアルを作成してみます。ちなみに、ただ[属性]のカラーを使った場合は↓のような感じになります。

Blender パーティクルインスタンス シェーダーエディター マテリアル 3DCG

↓のように、バラつかせることが出来ました。

Blender パーティクルインスタンス シェーダーエディター マテリアル 3DCG

参考にさせて頂いたサイト・ページ一覧

モディファイアー関連の記事のご紹介

この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。

生成

Blenderに関する記事や作品をまとめたページ作りました!

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください