ジオメトリノードは、ノード形式のインターフェースを使用することで、多彩な表現を可能にするBlender 2.92から導入された機能です。
この記事ではジオメトリノードを使用するにあたる使い方などの基礎知識を取り上げていきます。
ジオメトリノードとは
Blenderにはジオメトリノードという、非常に高機能なモデル変形ツールがあります。
ノード形式のインターフェースを持ち、ノードをつなげていくことによりシンプルなものから非常に複雑な処理を実現することができます。
ジオメトリノードがBlenderに導入されたのは比較的最近で、バージョン2.92からです。
ジオメトリノードは比較的新しい機能であるということもあり、その後3.0で大きく変更されて仕様が変わりました。今後も機能が変更されたり、できることが多くなったりしていくと予想される、広い用途への応用が可能な機能です。
この記事では3.2を使用していますが、多くの事項は3.0から使用できるので、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)のタブをクリックします。
この画面の構成はデフォルト設定では以下のようになっています。
- 3Dビュー
- ノード操作パネル
- スプレッドシート
3Dビューは通常の3Dビューで、現在の状態がリアルタイムに表示されています。
ノード操作パネルでノードの接続を行います。
スプレッドシートは現在選択中のオブジェクトの数値情報(頂点の位置など)が表示されます。
この数値情報を使用して狙った変更がオブジェクトに対して行われているかを確認することができます。
ノードをつないでみる
ジオメトリノードの開始と各部の確認
「新規(New)」ボタンを押すと、ノードを使用することができます。
最初は以下のような状態になっています。
「グループ入力(Group Input)」から直接「グループ出力(Group Output)」につながっているのが分かります。
この場合、入力されたオブジェクトは何も変更が加えられず、そのまま出力されています。
そのため、3Dビューに表示されているものに一切の変化がありません。
スプレッドシートを見ると「頂点(Vertex)」は8個あり、XYZそれぞれの座標が表示されています。
左側で「辺(Edge)」や「面(Face)」を選択すると、数値情報の種類を切り替えることもできます。
ノードを追加
ノードを一つ追加してみましょう。
「追加(Add)」→「メッシュ(Mesh)」→「メッシュ押し出し(Extrude Mesh)」を選択してみます。
するとノードが表示され、マウスで動かせるようになります。
表示されている二つのノードの間に動かし、線が白くなったら左マウスボタンをクリックしてください。
すると六つの面が押し出され、以下のような形になっています。
ノードの中には値を変えるための仕組みがあります。
例えば「押し出し乗数(Offset Scale)」を動かすと、その大きさに応じてオブジェクトの状態も変わります。
このように接続することで、左側のジオメトリデータがメッシュ押し出しノードで処理され、メッシュデータとして出力されます。
押し出し率をランダム化
このように押し出す大きさを自由に変えられますが、この押し出し率をランダムにしてみましょう。
「ユーティリティー(Utilities)」→「乱数(Random Value)」を追加します。
ノードを以下のように配置してみます。
配置したノードの出力をオフセット乗数は以下のように接続できます。
ノード接続の状態
ノード接続はその状態に応じて、複数の種類の表示があります。
通常の接続
通常の接続の場合は、緑色の線で表示されます。
非互換の接続
接続を間違えており、互換性がない場合は赤い線で表示されます。
処理フローの接続
ノードからの出力がターゲットにおいて計算されるのに使用されるなど、処理フローとして接続する場合は点線になります。
これは、例えば前述の押し出しの例のように、ノードからの接続が複数の要素(例の場合はそれぞれの面)に適用されるケースになります。
変数を外から設定できるようにする
ジオメトリノードは外側から見るとモディファイアの一つとして認識されます。
そのため、モディファイアのように外部からの変数を取り込むことができます。
ジオメトリノードの画面で、[N]キーを押すとパネルが表示されます。
このパネルの「グループ(Group)」タブを選択すると「Inputs(入力)」と「Outputs(出力)」を指定することができます。
入力を追加する
入力を追加すると、以下のようにノードのグループ入力(Group Input)に新しくソケットが増えていることを確認できます。
このinputノードから、乱数(Random Value)の最大値に接続します。
この状態ではモディファイアのInput値は0.000になっていますが、これを変更することができます。
この数字を変更すると、その結果が反映されるようになります。
STYLYで使用する場合の留意点
他のモディファイアと同じように、STYLYで使用する場合においてはモディファイアを「適用(Apply)」する必要があります。
尚、こちらの機能はFBXのエキスポート時などにテスト機能ながらも「トランスフォームを適用(Apply Transform)」という機能があり、自動的に適用することができます。
テスト機能なため、うまく動作しない場合はそれぞれ個別に適用するようにしてください。
STYLYにアップロードする方法
3DモデルをSTYLYにアップロードしてみましょう。
アカウント作成方法
STYLYにアップロードする方法
UnityからSTYLYにアップロードする方法
STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions
今後の記事でジオメトリノードを使用した応用や便利な使い方などを取り上げていきます。
Certified (QA) by Shota Shawn Yoshizawa
Edited by:SASAnishiki