(JP) 【Blender】ジオメトリノードを使ってモデリングする・基礎編

ジオメトリノードは、ノード形式のインターフェースを使用することで、多彩な表現を可能にするBlender 2.92から導入された機能です。
この記事ではジオメトリノードを使用するにあたる使い方などの基礎知識を取り上げていきます。

ジオメトリノードとは

Blenderにはジオメトリノードという、非常に高機能なモデル変形ツールです。
ノード形式のインターフェースを持ち、ノードをつなげていくことによりシンプルなものから非常に複雑な処理を実現することができます。

ジオメトリノードはBlender 2.92から導入された機能ではありますが、3.0で大きく変更が入り、仕様が変わりました。
この記事においては3.2を使用していますが、多くの事項は3.0から使用できます。
ジオメトリノードは比較的新しい機能であるということもあり、今後機能の変更が入ったりできることが多くなったりしていくことが予想されます。

ノードとは

ノードは入力と出力がついた箱をつなげていくことで処理を定義する方式です。
このようなノード形式のインターフェースはBlender内でもいくつか存在しており、ジオメトリノード以外にはシェーダーノードやコンポジターノードが存在します。
以下にそれぞれの要素を示します。

ノード 処理を行う「箱」です。
ノードツリー 複数のノードにより構成される一連のノードの構成です。
ソケット ノードに入出力を定義する出入り口であり、入力ソケットより入力されたものがノード内で処理され、出力ソケットに出力されます。
ノードによっては入出力それぞれ、複数のソケットを持つ場合があります。

ノードの説明

ノードの種類は120種類以上用意されてより、以下のような分野に分類されています。

属性(Attribute) ノードに含まれる属性を操作するための機能を含みます。
色(Color) 色に関する操作を行うための機能です。
カーブ(Curve) 曲線に対する操作を含みます。
カーブプリミティブ(Curve Primitives) 円など、曲線のプリミティブ形状を含みます。
ジオメトリ(Geometry) ボリュームやメッシュへの操作を含みます。
入力(Input) 主に他のノードへの入力として接続されるものです。
インスタンス(Instances) インスタンスへの操作を含みます。
マテリアル(Material) マテリアルへの操作を含みます。
メッシュ(Mesh) メッシュに特化した操作を含みます。
メッシュプリミティブ(Mesh Primitives) 立方体などメッシュのプリミティブ形状を含みます。
出力(Output) ノードツリー外に出力するためのノードを含みます。
ポイント(Point) 頂点などへの操作を含みます。
テキスト(Text) 文字列への操作を含みます。
テクスチャ(Texture) テクスチャを追加するための機能です。
ユーティリティ(Utilities) データを操作するための一般的な機能を含みます。
ベクトル(Vector) ベクトル操作をするための機能を含みます。
ボリューム(Volume) ボリュームを操作するための機能を含みます。

これに加えノードのグループ化や、レイアウトを操作するための項目が含まれています。

画面の説明

ジオメトリノードを使い始めるには、画面上部に表示されている画面レイアウトのジオメトリノード(Geometry Node)のタブをクリックします。

ジオメトリノードタブ

ジオメトリノードタブ

この画面の構成はデフォルト設定では以下のようになっています。

ジオメトリノード画面構成

ジオメトリノード画面構成

  1. 3Dビュー
  2. ノード操作パネル
  3. スプレッドシート

3Dビューは通常の3Dビューで、現在の状態がリアルタイムに表示されています。

ノード操作パネルでノードの接続を行います。

スプレッドシートは現在選択中のオブジェクトの数値情報(頂点の位置など)が表示されます。
この数値情報を使用して狙った変更がオブジェクトに対して行われているかを確認することができます。

ノードをつないでみる

ジオメトリノードの開始と各部の確認

「新規(New)」ボタンを押すと、ノードを使用することができます。

新規(New)ボタン

新規(New)ボタン

最初の状態では以下のような形になっています。

初期状態

初期状態

「グループ入力(Group Input)」から直接「グループ出力(Group Output)」につながっているのが分かります。
この場合、入力されたオブジェクトは何も変更が加えられず、そのまま出力されています。
そのため、3Dビューに表示されているものに一切の変化がありません。

スプレッドシートを見ると「頂点(Vertex)」は8個あり、XYZそれぞれの座標が表示されています。

スプレッドシート

スプレッドシート

左側を「辺(Edge)」や「面(Face)」に切り替えると数値情報の種類を切り替えることもできます。

スプレッドシート表示の切り替え

スプレッドシート表示の切り替え

ノードを追加

ノードを一つ追加してみましょう。
「追加(Add)」→「メッシュ(Mesh)」→「メッシュ押し出し(Extrude Mesh)」を選択してみます。

するとノードが表示され、マウスで動かせるようになりますので、そのまま、表示されている二つのノードの間に動かし、線が白くなったら左マウスボタンをクリックしてください。

新規ノードの追加

新規ノードの追加

すると四つの面が押し出され、以下のような形になっています。

押し出されたオブジェクト

押し出されたオブジェクト

ノードの中には値を変えるための仕組みがあり、例えば「押し出し乗数(Offset Scale)」を動かすとその大きさに応じてオブジェクトの状態も変わります。

オブジェクトのスケーリング

オブジェクトのスケーリング

このように接続することで、左側のジオメトリデータがメッシュ押し出しノードで処理され、メッシュデータとして出力されます。

ジオメトリノードのデータの流れ

ジオメトリノードのデータの流れ

押し出し率をランダム化

このように押し出す大きさを自由に変えることができますが、この押し出し率をランダムにしてみましょう。
「ユーティリティー(Utilities)」→「乱数(Random Value)」を追加します。

ランダム値(Random Value)ノードの選択

ランダム値(Random Value)ノードの選択

ノードを以下のように配置してみます。

ノードの配置

ノードの配置

配置したノードの出力をオフセット乗数は以下のように接続できます。

ノードを接続

ノードを接続

ノード接続の見方

ノード接続はその状態に応じて、複数の種類の表示があります。

互換性のない接続

通常の接続の場合は、緑色の線で表示されます。

通常の接続

通常の接続

非互換の接続

接続が間違えており、互換性がない場合は、赤い線で表示されます。

互換性のない接続

互換性のない接続

配列の接続

出力されたデータが配列データとして使用される場合は点線になります。

配列の接続

配列の接続

これは、例えば前述の押し出しの例のように、ノードからの接続が複数の要素(例の場合はそれぞれの面)に適用されるケースになります。

変数を外から設定できるようにする

ジオメトリノードは外側から見るとモディファイアの一つとして認識されます。
そのため、モディファイアのように、外部からの変数を取り込むことができます。

モディファイアとして表示されているジオメトリノード

モディファイアとして表示されているジオメトリノード

ジオメトリノードの画面で、[N]キーを押すとパネルが表示されます。
このパネルの「グループ(Group)」タブを選択すると「Inputs(入力)」と「Outputs(出力)」を指定することができます。

入力と出力

入力と出力

入力を追加する

入力を追加すると、以下のようにノードのグループ入力(Group Input)に新しくソケットが増えているのが確認できます。

入力の追加

入力の追加

これを設定するとモディファイアの設定として操作をすることができます。

モディファイアからの数値の操作

モディファイアからの数値の操作

この数字を変更すると、その結果が反映されるようになります。

モディファイアを変更した時の挙動

モディファイアを変更した時の挙動

STYLYで使用する場合の留意点

他のモディファイアと同じように、STYLYで使用する場合においてはモディファイアを「適用(Apply)」する必要があります。

モディファイア適用

モディファイア適用

尚、こちらの機能はFBXのエキスポート時などにテスト機能ながらも「トランスフォームを適用(Apply Transform)」という機能があり、自動的に適用することができます。
テスト機能なため、うまく動作しない場合はそれぞれ個別に適用するようにしてください。

 

今後の記事でジオメトリノードを使用した応用や便利な使い方などを取り上げていきます。