Knowledge / Blenderジオメトリノード / 第6章:範囲を制御するデザインパターン • 4 min read
第6章:範囲を制御するデザインパターン
目次
第5章では、 どれくらい影響させるか、という 量の作り方を見てきました。
しかし、Geometry Nodesでは 量だけでは不十分です。
もう一つ、必ず必要になる問いがあります。
どこに影響させるのか
この章では、 影響を与える「範囲」を作るための デザインパターンを扱います。
1. 「範囲を制御する」とはどういうことか
範囲を制御する、というのは 座標を直接指定することではありません。
Geometry Nodesにおける範囲制御とは、
- 影響する
- 影響しない
を分けるための マスクを作ることです。
このマスクは、
- 0 なら影響しない
- 1 なら影響する
という量として表現されることがほとんどです。
つまり第6章でも、 最終的に扱っているのは 量 ですが、 その量の 由来が「位置関係」 になります。
2. 距離は「範囲」を作る最も基本的な情報
範囲制御で最もよく使われるのが 距離です。
距離は、
- どこに近いか
- どこから離れているか
を、数値として扱える情報です。
Geometry Nodesでは、
- Position
- Geometry Proximity
といったノードを使って、 距離を取得します。
重要なのは、 距離そのものではなく、
距離からマスクを作る
という考え方です。
3. Geometry Proximity:他の存在を基準にする
Geometry Proximityは、
- 自分から
- 別のGeometryまでの
- 最短距離
を返すノードです。
このノードを使うと、
- 別オブジェクトに近い部分
- 触れそうな場所
- 影響を受ける範囲
を、数値として取得できます。
そのままでは扱いづらいので、 第5章で学んだように、
- Map Range
- Power
- Color Ramp
などを使って、 影響マスクに変換します。
4. 距離マスクという基本パターン
範囲制御の基本形は、 次のような流れになります。
- 距離を取得する
- 距離を0〜1に変換する
- 必要に応じてカーブを調整する
この結果得られるのが、
- 近いほど 1
- 遠いほど 0
という 距離マスク です。
このマスクは、
- 変形量
- スケール
- 密度
- 表示・非表示
など、あらゆる用途に使い回せます。
5. Raycast:方向を持った範囲制御
距離は便利ですが、 方向の概念を持ちません。
そこで登場するのが Raycast です。
Raycastは、
- ある方向に
- 線を飛ばして
- 何に当たったか
を調べるノードです。
これを使うと、
- 上から見て接地しているか
- 前方に障害物があるか
- 下方向に床があるか
といった、 向きのある範囲制御ができます。
6. ヒット情報からマスクを作る
Raycastは、
- 当たったかどうか
- 当たった位置
- 距離
といった情報を返します。
特によく使われるのが、
- Hit
- Distance
です。
- Hit を使えば
- 当たっている範囲だけ 1
- Distance を使えば
- 近さに応じたマスク
が作れます。
ここでもやっていることは、
位置関係を、量に変換している
という点で、 距離フォールオフと同じです。
7. 範囲制御は「量を作る工程」である
ここまでをまとめると、
- Geometry Proximity
- Raycast
は、
- 直接何かを変形するノード ではなく
- 範囲を示す量を作るノード
だと言えます。
そしてその量は、
- 第5章で学んだ方法で整え
- 次の章以降で使われる
という位置づけになります。
8. 典型的な組み合わせ
範囲制御のデザインパターンは、 次のような組み合わせで使われることがほとんどです。
- Geometry Proximity
- Map Range
- Power / Color Ramp
- 変形 or 配置ノード
この構成を見たら、
「範囲マスクを作っている」
と読めるようになるのが、この章のゴールです。
flowchart LR
A[位置関係の取得
Geometry Proximity / Raycast] --> B[範囲を決める
Map Range]
B --> C[形を整える
Power / Color Ramp]
C --> D[範囲マスク 0〜1]
D --> E[変形に使用
Set Position / Scale]
D --> F[選別に使用
Selection / Delete Geometry]
D --> G[配置に使用
密度 / Instance]9. 次の章への接続
次の章では、
- 作ったマスクを
- どれに適用するか
を決めるデザインパターンを扱います。
次章予告
👉 第7章:対象を選ぶデザインパターン すべてに処理をかけないための考え方を解説します。