Blenderでジオメトリを何度も手作業で複製したり、形を作り替えたり、繰り返しの動きをアニメーションしたりするために何時間も費やすのは楽しくありません。そんな作業は、たとえば「同じことを何度も繰り返す必要があるが、違いはほんの少しだけ」というタイプのワークフローです。
しかし、手続き的な効果を作るための、より賢く速い方法があります。それがジオメトリーノードです。最初は難しそうで習得に時間がかかるように見えるかもしれませんが、この記事の最後まで読めば、ジオメトリーノードが何か、なぜ重要なのか、そして自分のBlenderプロジェクトでどう使い始めるかが分かるようになります。
ジオメトリーノードとは?
ジオメトリーノードは、Blenderの「手続き的にモデルを作成・操作するための方法」です。メッシュオブジェクトを直接編集する代わりに、インスタンス化、変換、オブジェクトのばらまき(散布)などの処理を定義する、見た目のノードをつなぎ合わせます。これは非破壊で、モジュールとして構築できます。

各ノードは小さな作業を行いますが、つなぎ合わせることで、非常に細かな結果を生み出せます。たとえば、ランダム化された何千本もの木で構成された森、アニメーションするパーティクルトレイル、あるいは建築的なパターンなどです。ジオメトリーノードなら一度作って、調整可能なパラメータで全てをコントロールできます。
なぜジオメトリーノードが重要なのか
従来のモデリング/アニメーションのワークフローは、多くの場合、時間のかかる手作業による調整に依存しており、変更やバリエーションのたびにモデルへ直接編集を行う必要があります。ジオメトリーノードは、このプロセスに「手続き的な制御」を導入することで革命を起こします。入力値、ランダム性、または数学的な関係性を通じて、モデルを動的に生成・変更できる仕組みです。
このアプローチには、いくつかの大きな利点があります。複雑なシーンをゼロから作り直さなくても、すぐに更新したりランダム化したりできるため、作業効率が上がります。また、パラメータは制作のどの段階でも調整できるので、パイプラインへの柔軟性も高まります。ジオメトリーノードは、大きな芝生のパッチを生成するような、手作業では難しい、あるいは不可能な複雑な形状、パターン、効果を生み出すための実験への扉を開きます。この機能は、群衆シミュレーションやリアルな自然環境のような大規模なモデリングに最適です。
このガイドで紹介しているBlender–Kitsu連携のサンプルについて、完全なソースコードはGitHubで確認できます:
🔗 https://github.com/cgwire/blender-scripting-geometry-nodes
ジオメトリーノードを追加する
その概念は難しそうに見えるかもしれませんが、5分だけください。あなたの最初のジオメトリーノード設定を作ります。
- デフォルトのキューブがある新しいBlenderプロジェクトを開きます。
- ジオメトリーノードのタブで、Newをクリックして新しいジオメトリーノードグループを作成します。

これで、ジオメトリーノードエディタの作業領域に空のノードツリーが表示されます。デフォルトノードとして、Group Input と Group Output の2つが用意されているはずです。これはデータフローの「開始」と「終了」を表します:ジオメトリが入ってきて、修正されて、外へ出るのです。
設定を動かして見るには、最初のノードを追加するだけです:
- Add → Geometry → Operations → Transform Geometry をクリックします。
- Group Input → Transform Geometry → Group Output を接続します。
- Transformノード内で、移動(translation)やスケールの値を調整します。

すぐに、ビューポート上でオブジェクトが移動したりリサイズされたりするのが見えるはずです。おめでとうございます。これであなたは、最初の手続き型モディファイアを作ったことになります!
ジオメトリーノードは、いくつかの大きなカテゴリに分かれています。各カテゴリはシーンの異なる側面を担当します。これらのカテゴリをツールボックスだと思ってください。形状の生成から、裏側のデータや数学の制御まで、作業の種類ごとに分かれているのです。
新しいワークフローで使うべきノードを見つけるために、さまざまなノードタイプを簡単に見ていきましょう:
1. Input Nodes(入力ノード)
入力ノードは、ノードツリーの出発点となる情報を提供します。ほかのノードがジオメトリを計算したり変換したりするために使える、位置、法線、インデックス、オブジェクト情報など、オブジェクトやシーンから既存のデータを取り込みます。
たとえば Input → Scene → Object info ノードを使うと、計算を行うために必要な、オブジェクトインスタンスに関するあらゆる情報が手に入ります。
新しいノードツリーを作ると、Blenderは常に、現在のシーン内のモデルのグループを表す新しい Input Group ノードを追加します。
2. Output Nodes(出力ノード)
出力ノードは、ノードシステムから何が「外へ出るか」を定義します。Blenderがレンダーしたり表示したりする最終的なジオメトリです。Group Output ノードが最も一般的で、ノードネットワーク全体の結果をビューポート上のオブジェクトへ戻して接続します。
ほかの専用の出力(シェーダセットアップのMaterial Outputなど)は、Blenderシステムの別の部分へデータを渡します。ジオメトリーノードでは、Output段階が「結果として表示されるジオメトリ、インスタンス、または属性」を決定します。
3. Geometry Nodes(ジオメトリーノード)
ジオメトリーノードは、ジオメトリ(つまりシーン内の実際の形状)を直接変更したり、組み合わせたり、生成したりします。
それらは手続き型モデリングの中核です。手で彫刻する代わりに、ジオメトリを自動生成するシステムを作れます。そして、基となるメッシュを壊さずに、後から調整もできます。
4. Mesh Nodes(メッシュノード)
メッシュノードは、メッシュ構造に対する細かな制御に焦点を当てます。つまり、ジオメトリを構成する頂点、エッジ、面です。特定のメッシュ構成要素へアクセスして変更したり、ジオメトリの種類を変換したりできます。
トポロジーを厳密に制御する必要があるときはメッシュノードを使いましょう。グリッドを作る、エッジループを操作する、既存メッシュから新しいトポロジーを生成する、といった手続き型モデリングのタスクに最適です。

5. Instance Nodes(インスタンスノード)
インスタンスノードは、オブジェクトのコピー(インスタンス)を作成し、サーフェス上やポイント上に散らします。Instance on Points や Realize Instances などのノードがこれを扱います。
インスタンシングはジオメトリーノードの中でも非常に強力な機能です。実際には1つのコピーだけをレンダーし、それを複数回参照することで、木・岩・パーティクルなど何千ものオブジェクトを複製してもシーンを重くしにくいからです。

6. Attribute Nodes(属性ノード)
属性ノードは、色、スケール、ポイントごとのランダム値のように、ジオメトリに取り付けられたカスタムプロパティを制御したり受け渡したりします。これらの属性は、変換、マテリアル、または効果の駆動に使えます。
属性によって、手続き型システムに「ばらつき」と「制御」を追加できます。散布されたオブジェクトの大きさをランダム化したり、パーティクルの色を別々にしたり、マテリアルの効果をジオメトリデータに結び付けたりできます。
7. Utilities and Fields(ユーティリティとフィールド)
ユーティリティノードは、ジオメトリーネットワークの背後にあるロジックや計算を担当します。Math、Vector Math、Compare、Map Rangeのような処理が含まれ、プログラミング言語のように、ほかのノードの入力を処理・制御する用途で使われることが多いです。
これらはセットアップの「頭脳」として働き、関係性を作ったり、グラデーションを作ったり、値をランダム化したりします。
8. Curve Nodes(カーブノード)
カーブノードは、ライン、スプライン、パスといったカーブベースのジオメトリで動作します。ケーブル、つる、道路、あるいは抽象的なモーションの軌跡を生成するのに役立ちます。Resample Curve、Curve to Mesh、Set Curve Radius のようなノードを使うと、カーブの形状、解像度、厚みを手続き的に調整できます。
カーブはインスタンシングを駆動することもでき、パスに沿ってオブジェクトを配置したり、時間経過に合わせて動きをアニメーションさせたりできます。

9. Grease Pencil Nodes(グリースペンシルノード)
グリースペンシルノードは、Blenderの2D描画システムをジオメトリーノードのワークフローに統合します。ストロークを手続き的に修正したり、描画をジオメトリに変換したり、ノイズ、押し出し、変形などの効果を2Dラインに適用したりできます。
これらのノードは、2Dアニメーションと手続き的なデザインの間のギャップを埋め、アーティストにモーション・グラフィックスをスタイライズする新しい方法や、2D/3Dのハイブリッドシーンを作る方法を提供します。
10. Point Nodes(ポイントノード)
ポイントノードは、ジオメトリ内の個々のポイントを操作します。散布、配置、インスタンスの変換に使われる、基本となる構成要素です。ポイントの追加、移動、回転ができるほか、各ポイントに色やスケールといった属性を割り当てることも可能です。
たとえば Distribute Points on Faces は、サーフェス上に均等またはランダムに配置されたポイントを生成し、それらを芝生やパーティクルといったインスタンスの配置位置として利用できます。
11. Volume Nodes(ボリュームノード)
ボリュームノードは、霧、煙、または手続き的な密度フィールドのような体積データを作成・操作できるようにします。これらを使って3Dテクスチャを生成したり、雲の形を作ったり、密度に基づく効果でジオメトリを満たしたりできます。表面モデリングをはるかに超えた、空気感のある、または有機的な効果への道が開けます。
12. Material Nodes(マテリアルノード)
マテリアルノードは、マテリアルやシェーディングデータを割り当てたり、変更したりします。Set Material や Material Index ノードを使うと、属性、ランダムシード、またはモデルの領域に基づいて、異なるマテリアルを動的に適用できます。
たとえば、構造の一部を色分けしたり、散布されたオブジェクトに対してマテリアルを手続き的に割り当てたりするのが簡単になります。
13. Texture Nodes(テクスチャノード)
テクスチャノードは、ジオメトリの変換や見た目のバリエーションを駆動できる手続き的なテクスチャをサンプル、あるいは生成します。グレースケールのマスク、ノイズパターン、グラデーションなどを提供でき、それらがスケール、ディスプレイスメント、色に影響します。
テクスチャデータと数学ノードや属性ノードを組み合わせることで、不均一な地形、波打つサーフェス、パターン化された分布に対して自然なランダム性を作れます。
14. Group Nodes(グループノード)
グループノードは、複数のノードをひとまとめにして、再利用できる単位としてまとめます。複雑なセットアップを整理し、ノードツリーをきれいに保つために重要です。グループの入出力でパラメータを公開すれば、それを調整可能にでき、結果として自分のカスタムセットアップを「新しいスーパー・ノード」に変えるようなものです。
自分のグループを作り始めると、あなたはただジオメトリーノードを使っているだけではありません。自分の手続き型ツールを作っているのです。
15. Hair Nodes(ヘアノード)
ヘアノードは、手続き的なヘアやファーのシステムを生成、スタイリング、制御するために設計されています。ストランドの長さ、密度、グルーミング属性にアクセスできるため、草原のようなものからキャラクターの髪まで、あらゆるものをシミュレートできます。
これらのノードは、古いパーティクルベースのワークフローを置き換えるものであり、Blenderの新しいヘアシステムとシームレスに統合される、現代的な手続き型アプローチです。

結論
ジオメトリーノードは最初、抽象的で難しそうに見えるかもしれませんが、Blenderの中でもとてもワクワクする機能の1つです。ノードの組み合わせ方が分かってくると、手作業の編集ではなく、手続き的なロジックによって駆動されるアニメーション全体、環境、あるいはビジュアルエフェクトを生成できます。
ただし、全部を暗記する必要はありません。多くのジオメトリーノードのセットアップは、いくつかの主要ノードに依存しており、試しながら自然に使い慣れていきます。
次の記事では、さらに一歩進みます。スクリプトを使って自分専用のカスタム・ノードグループを作り、制作ワークフローの複雑さを抑えつつ、ユニークなアニメーションパイプラインでエフェクトを自動化する方法を学びます。


