Blender 2.92がリリースされていますが、このバージョンでは、新しく 【 ジオメトリノード 】 が追加されました。

 

 今回は、この機能について紹介しようかなと思います。

 

オメトリーノードとは                

 

 ジオメトリ―ノードとは、 

 

プロシージャルでオブジェクト制御が出来るノード

 

になります。この機能は、2.91にはないので、

 

 

のように2.91を開いて項目を探しても

 

 

のように存在しないのですが、

 

 

のように2.92を開いてメニューを開くと

 

 

のようになっており、新規に 【 Geometory Node Editor 】 の項目が追加されています。 

 

 

これを使う事で、プロシージャルなオブジェクトの制御が出来るようになります。

 

 

■ プロシージャルな制御               

 

 プロシージジャルな制御方法は、数値で結果を調整する物になりますが、この仕様の物は3DCGツールだとテクスチャ生成の機能としてプロシージャルテクスチャが実装されています。

 

 プロシージャルテクスチャの歴史はかなり古く、前の世紀の3DCGツールから実装さてています。Blenderでも標準機能で実装されていますが、BSDFにテクスチャーを当てる場合、

 

 

のように呼び出しますが、この時に、

 

 

外部呼出しやテクスチャーペイントで生成割いたものではなく、元から実装されている物があります。これがプロシージャルテクスチャになります。選択すると、画像ではなく、パターンを制御するパラメーターが追加されます。レンガを選択すると、

 

のようになりますが、数値の制御で異なるパターンを指定できるようになります。

 

 プロシージャルテクスチャは、ディスプレイスメントマップでも使用可能ですから、

 

■ ディスプレイスメントマップ            

 

のように数値の変更で形状に変化を与える事ができますが、このように数値で形状を変更する方法が存在しています。

 

 ジオメトリ―ノードは、オブジェクトの配置者形状の変化をノードでコントロールできるようになっているのですが、この機能の追加により、レベルデザインが行いやすくなりました。

 

 

オメトリーノードを使う               

 

 ジオメトリーノードが実装される前のレベルデザインは、パーティクルを使う事で意図した位置にオブジェクトを配置する事が出来るようになっていたのですが、パーティクルを使う場合、

 

 

のようにパーティクルを散らす対象と配置するオブジェクトを鵜用意します。そして、画像のように配置を行うオブジェクトを選択後にプロパティーでパーティクルを追加します。パーティクルを追加すると、

 

 

のように項目が追加されます。最初に

 

 

の部分の 【 + 】 でパーティクルを追加して、その後に、

 

 

の場所でエミッタの設定をします。動かないおのおうぁ位置する場合には、終了のフレームを1にする必要があり、寿命の部分の数値をシーンの最終フレームに合わせる必要があります。その後、スクロールして下に行き、

 

 

の項目で、レンダリング手法を 【 オブジェクト 】 にします。そして、ビューポートを見てサイズを確認しながらスケールを調整します。建物のように同じ材図のストラクチャを配置する場合だと、スケールのランダム化は0のままにしておき、植物の場合だと、数値を入れます。

 

 数値は、0~1まで指定可能ですが、1にすると大小のサイズの差が大きくなります。そして、その下のオブジェクトで、配置する部ジェクトを指定します。

 

 すると、

 

 

のようにおぶじぇくとがはいちできるので、サイズを変更して適正な状態にします。また、数値を変えると、

 

 

のようにの総数が減るので、この状態でサイズを変更して配置することもできます。

 

 

 この方法でもオブジェクトを配置できますが、タイムラインと寿命が個別に存在しているので、レベルデザインで使う場合には少し煩雑で、パラメーターにキーフレームを打つことはできる物の、他のパーティクルと混在すると管理が煩雑になるという問題がありました。

 

 アクションと同様に発生時期と終了時期を指定できるので、そうした点では便利ですが、 【 セット 】 として考えると、少し煩雑な部分もあります。

 

 2.92では、こうした機能はノードに包含され独立した状態で管理できるようになっています。

 

 

 ブジェクトの形状を変える            

 

 まず、

 

 

から、 【 Geometory Node Editor 】 を開くと、

 

 

のような画面になっているので、ここで 【 新規 】 を選択すると、選択されているオブジェクトのノードを追加できます。この辺りは、マテリアルノードと同じです。ノードを追加すると、表示を行うのに必要な項目のみが追加されているので、

 

 

のようになっています。 【 SHIFT 】 + 【 A 】 でメニューを呼び出し、

 

 

 

のように 【 ジオメトリ 】 => 【 トランスフォーム 】 でノードを追加して、  

 

 

 

の世に配置します。すると、

 

 

のような状態になりますが、ここでノードの数値を変更すると、

 

 

のようにノードでサイズを変更できるようになります。この項目は、キーフレームを打つことが出来るので、右クリックからメニューを開き、

 

 

のようにキーフレームを打って制御したり挙動をドライバーで制御する事もできます。

 

 

のようにキーフレームを打った後に、

 

 

のように場所を変えてキーフレームを打つと、

 

 

のようにアニメーションさせることもできます。つまり、ここでサイズ変更や回転を行った場合、その処理をアニメーションとして実行する事が出来るようになります。

 

 また、 【 ジオメトリーノード  】 については、モディファイヤーにも追加されており、

 

 

のようにモディファイヤーからも追加できますが、ノードを追加した後は、プロパティにも追加されます。

 

 

 

 

 のノードを試してみる               

 

 このノードはレベルデザインに使えるノードなので、これを使うと、オブジェクトを配置できるようになります。まず、

 

 

のようにオブジェクトを追加して、ポイントのメニューからノードを追加します。ポイントには、

 

 

のよ宇な項目がありますが、

 

 【 ポイント 】 => 【 ポイントインスタンス 】 

 

を選びます。

 

 

すると、

 

 

のようなオードが追加され、

 

 

のようになります。その後、

 

 

でポイント配置を行い、

 

 

ここで、状態をコントロールします。その後、さびディビジョンサーフェースを加えて、

 

 

さらに配置するオブジェクトにもサブディビジョンを適応します。すると、


 

のようにオブジェクトが丸まります。オブジェクトには、テクチャも適応できるので、

 

 

のようにできますが、ディスプレイスメントマップも適応できるので、

 

 

のようにテクスチャを指定して、ディスプレイスメントを指定する事もできます。また、シェーダーミックスを使うと、

 

 【 プリンシプルBSDF 】 + 【 放射 】

 

と言う指定が出来るので、

 

 

のようなグローを指定して、

 

 

の世にキーフレームを指定することで、

 

 

始点と終点で発光をコントロールできます。放射を抑えると、

 

 

のように凹凸が目立ちますが。ここから

 

 

のように変化するような動画を作る事ができます。

 

 動画については、ジオメトリ―ノードでも変更できるので、トランスフォームの項目でもキーフレームで制御できるので、

 

 

のようにノードを追加して、

 

 

のよにノードを指定して

 

 

のような感じのノードにして、動かすと、

 

 

のような動きを作る事もできます。

 

 

 ブジェクトの配置                  

 

 ジオメトリノードは、オブジェクトの配置が可能な物になるので、パーティクルでオブジェクトを指定する場合と同じ方法を用いてみる事にします。

 

 まず、オブジェクトパーティクルに該当するノードが 【 ポイント 】 なので、最初に

 

 

で 【 ポイントの配置 】 を行います。

 

 

のようにランダムで指定して、

 

 

のように配置をします。すると、レンダリング不能なオブジェクトが表示されるので、ここからノードを組み合わせて表示できるようにします。

 

 まず、この状態だと 【 表示できないジオメトリのポイント 】 が指定されているので、これを分岐して表示できるようにします。この時に、 

 

 

のように 【 ジオメトリ統合 】 を追加します。これで、元のオブジェクトと指定したポイント(オブジェクトパーティクルを配置するダミー部分に該当)が指定できるのでこれを組み合わせてノードを組みます。その為、

 

 

のような状態で、シェーダーノードでシェーダーミックスを行うような状態だったり、コンポジションでグロー効果などを追加する場合のような合成を行うことになります。

 

 何もないのは対象オブジェクトが存在しないためですから、ここで、対象となるインスタンスを追加します。

 

 

のように 【 ポイント 】  => 【 ポイントインスタンス 】 でノードを追加して、更には位置するオブジェクトを追加します。

 

 

今回場ボルトを追加したのですが、ポイントインスタンスのノードで追加したボルトを指定します。

 

 

今回の形状は、六面体なので、

 

 

のようになりますが、これを

 

 

のようにサブディビジョンサーフェースをかけると、ポイントを配置する対象が変形するので、

 

 

のようになります。光源を入れると、

 

 

のようになりますが、トランスフォームで変形させると、

 

 

のような感じになります。これを見るとボルトがまともに配置されていないので、ここで、適正に形状を配置する必要があります。

 

 この形状の破綻は、サイズがおかしいのでこうなっている訳ですが、

サイズをコントロールする場合には、

 

 

のように 【 ポイント配置 】 と 【 ポイントインスタンス 】のノードの間に 【 ポイントスケール 】 を入れる事でサイズの変更ができます。この時に、タイプを 【 ベクトル 】 に変更して、数値を調整します。すると、

 

 

のようのボルトが表示されるようになります。明るすぎますが、これはCyclesでのレンダリングになりますが、マテリアル表示だと、

 

 

のようになり、Eeveeでは、

 

 

のように露出オーバーになるので、太陽光の強さを変えてみると、

 

  

のようになります。このように 【 オブジェクトの表層を任意の形で埋める 】 事もできますが、地面に対して植物や建物などを配置するのにも使用できます。

 

 

 

回の作業環境                   

 

  ■ Core i5 650

  ■ H55M-Pro 

  ■ DDR 1333 2GBx2+1GBx2(DUAL CH)

  ■ Quadro K620(PCI Express x16 【GEN2動作】)

  ■ SATA HDD

  ■ WINDOWS 10 x64 (20H2)

 

  ■ Blender 2.92.0 (x64) 

     https://www.blender.org/

 

  ■ Gimp 2.10.18 (x64)

     https://www.gimp.org/