【Blender】を噛み砕いて解説 / ジオメトリノード入門 Vol.②|オブジェクト配置とインスタンスの基本

Blenderのジオメトリノード画面で立方体の頂点にモンキー(スザンヌ)をインスタンス配置した手順を示す

今回の「ジオメトリ編 Vol.2」では、3Dオブジェクトをたくさん並べて配置してみましょう。

今回の学びで作成したアニメーションが、下に配置したものになります。

その前に、そもそも開発者は何を意図して?このジオメトリをblenderに取り入れたのかを調べてみました。
下に表示してみましたので、読んでみてください。

Blenderに「ジオメトリ」を取り入れた、開発者は意図とは。

Blenderにおける「ジオメトリ」とは、主にジオメトリノード(Geometry Nodes)を指し、頂点・辺・面といった3Dオブジェクトの形状データを、ノード(視覚的なプログラムブロック)を繋ぎ合わせて処理・生成するシステムのことです。手動で形を作り込む従来の手法とは異なり、ルールや数式に従って形状を自動で組み立てるプロシージャル(手続き型)な制作を可能にします。

開発者がジオメトリノードを取り入れた理由

  • 非破壊的なワークフローの確立: 元のメッシュデータを直接変形せず保持するため、制作のどの段階でも後からパラメータを自由に変更・修正できる。
  • 反復作業の自動化と効率化: 森の木々、都市の建物、群衆の配置など、手作業では膨大な時間がかかる大量かつ規則的なオブジェクトの配置を自動化し、生産性を高める。
  • 「ツールを作るためのツール」としての提供: アーティスト自身が自分のプロジェクト専用のモデリングツールやアセットを自作し、チーム内で再利用できるようにする。
  • 旧システムの限界打破: 従来の静的なモディファイアや古くなったパーティクルシステムを刷新し、シーン全体をより柔軟でパワフルに制御できる統合環境を提供するため。

内容は無理に慌てて覚える必要はなく、「こんな理由なのか」程度で頭の片隅にでもとどめておいてください。

今回は、この中の 「反復作業の自動化と効率化:森の木々、都市の建物、群衆の配置など、手作業では膨大な時間がかかる大量かつ規則的なオブジェクトの配置を自動化し、生産性を高める」 に当てはまる作業を今から進めていきます。

上の画像がBlenderを立ち上げて「ジオメトリノード」画面に移行した状態です。

左上が「スプレッドシート」と呼ぶ画面ですが、立方体を選択しているので、その立方体の各頂点の座標値が表示されています。

次に、立方体が選択された状態で、下のジオメトリノードエディター内の 「+ 新規」 をクリックすると、下の動画と同じ状態になります。

次に、「追加」の「ジオメトリ」の「処理」の中にある「ジオメトリトランスフォーム」ノードを追加し、グループ入力ノードとグループ出力ノードの間に入れます。自動で接続されるので、動画のように「位置 X」などの値を動かすと、スプレッドシートの値も変化する様子を確認してみてください。

【ジオメトリトランスフォーム】ノードって何?

「ジオメトリトランスフォーム(Transform Geometry)」 ノードは、一言で言うと「メッシュやポイントなどの位置・回転・拡大縮小(スケール)を、まとめて変更するためのノード」です。

3Dビューポートの右側(Nキーのサイドバー)にある「トランスフォーム」パネル(位置・回転・スケールの数値)と全く同じ操作を、ノードの中でジオメトリに対して直接実行する役割を持っています。

【ポイントにインスタンス作成】ノードって何?

「ポイントにインスタンス作成(Instance on Points)」 ノードは、一言で言うと「点(ポイント)がある場所に、別のオブジェクトを大量に複製して配置する」 ためのノードです。

Blenderのジオメトリノードの中でもトップクラスに多用される、超重要ノードの一つです。

上の動画では、まず「ピン留め」をクリックして、ジオメトリ編集画面が切り替わらないようにロックしています。こうしておかないと、作成時の立方体の選択から離れた場合に下のジオメトリノードが消えてしまいます。

続いて、オブジェクトの追加からメッシュの「モンキー(スザンヌ)」を追加しています。そのモンキーをジオメトリノード画面にドラッグ&ドロップして「オブジェクト情報」ノードとして読み込み、「ポイントにインスタンス作成」ノードの「インスタンス」ソケットに接続しています。

【オブジェクト情報】ノードって何?

「オブジェクト情報(Object Info)」ノードは、一言で言うと「ノードツリーの外にある別のオブジェクトを、ジオメトリノードの中に読み込むためのノード」です。

Blenderでシーン内にある「立方体」「球体」「カメラ」「ライト」などのデータを、ノード処理の素材として引っ張ってくるときに使えますし、自作のオブジェクトも使えます。

今回はスザンヌを読み込みましたので、立方体の4つの頂点(ポイント)に配置されています。また、左上のスプレッドシートの「position」の座標値も変わっています。

頂点数が507個でモンキー(スザンヌ)が構成されているため、メッシュ欄の頂点には「507」と表示されています。

ジオメトリトランスフォームとポイントにインスタンス作成を使ってアニメーション作成

次は、「ジオメトリトランスフォーム」と「ポイントにインスタンス作成」の2つのノード操作だけでアニメーションが作成できる説明動画を下に配置しています。見て同じような操作を試してみてください。

ここで疑問になるのが「インスタンス」だと思います。「オブジェクト情報」ノードの「ジオメトリ」ソケットから、「ポイントにインスタンス作成」ノードの「インスタンス」ソケットに接続しています。

インスタンス作成のインスタンスとは何?

「インスタンス(Instance)」を一言で言うと、「本体のデータをコピーせず、位置と向きの情報だけを記録した『分身(ホログラム)』」です。

「通常の複製」と「インスタンス」の違い

項目通常のメッシュ複製(Shift + D)インスタンス(分身)
データの持ち方頂点や面のデータを1個ずつ完全に新しく作る「本体の見た目をここに表示する」という参照指示(位置・回転・倍率)だけを持つ
パソコンへの負荷増やせば増やすほど非常に重くなる何万個増やしても驚くほど軽い
本体を編集した時複製した側には何も変化がない本体の形を変えると、すべての分身が一斉に変形する

なぜ「インスタンス」という仕組みが必要なのか?

例えば、10万枚の葉っぱがある「大きな木」を作りたいとします。

  • 通常のメッシュで作る場合10万枚分の頂点データ(数百万ポリゴン)をPCのメモリにすべて読み込むため、画面がガタガタになり、最悪の場合Blenderが強制終了します。
  • インスタンスで作る場合PCが記憶するのは「葉っぱ1枚分のデータ(本体)」+「10万箇所の置く場所の座標データ」だけで済みます。そのため、メモリをほとんど消費せずに超軽量で動作します。

3D空間での振る舞い(注意点)

インスタンスは「実体(頂点データ)」を持たないホログラムのような状態です。

  • 実体がないためそのままでは頂点を1つずつ手動で変形させたり、頂点ごとに個別の色を塗ったりすることができません。
  • 実体にしたい場合もし「分身」の状態をやめて本物の独立したメッシュに変換したい場合は、「インスタンス実体化(Realize Instances)」ノードを通すことで、通常の頂点データに変換することができます。

まとめ

ジオメトリノードで「森」「群衆」「街並み」「散布された石や草」など、大量のものを描画するときに絶対に欠かせない技術がこの「インスタンス」です。

真面目に説明すると以上のような事となりますが、今までの作業を実演してもらってBlenderを操作することで、「ジオメトリ」「ポイント」「インスタンス」の3つの単語の意味を体験から理解することが大事です。

言葉で巧みに上手く説明しても伝えることは難しいので、体に刷り込むのが一番と感じています。

本質の意味からは多少ズレがありますが、最初は、

インスタンス:軽量なコピー体

ジオメトリ:使うオブジェクト

ポイント:使うオブジェクトの頂点と捉えて操作していけば良いと思います。

Blenderのジオメトリ参考サイト紹介

下に、参考になるサイトを紹介しています。

Blenderのジオメトリ専門用語を理解することは、本質の理解となり「上級者」を目指すとなれば自ずと必要になりますので覗いてみるのも良いと思います。