Inhibition マスクからマスク書き出しまで
本記事では、Gaea に搭載されている Trees ノード について、仕組みと実践的な使い方をまとめて解説します。
Trees ノードはとてもパワフルですが、初めて開くとパラメータの数が多く、戸惑う方も多いと思います。そこでまずは各パラメータの役割を整理し、そのうえで実際の地形を例に、
- どのように Inhibition マスクを作るか
- どのようにツリー分布マスクを整えて書き出すか
という、実制作に直結するワークフローまでを一通り見ていきます。
1. 最重要入力「Inhibition」について
Trees ノードの入力は大きく 2 つあります。
Input:高さマップなどの地形入力
Inhibition:樹木を「生やしたくない領域」を指定するマスク入力
このうち Inhibition 入力が非常に重要です。ここにマスクを与えることで、任意の領域から樹木を高精度に排除できます。
例えば、急峻な斜面をもとにした単純なマスクを作って Inhibition に接続すると、その斜面上から樹木がきれいに取り除かれます。Flow マスクを用いれば、
フローライン周辺には樹木を生やしつつ
実際の沢筋や岩屑の流れのための「余白」を残す
といったコントロールも可能です。
内部の Aspect Inhibition だけでは得にくい、細かい「抜き」の調整を行う際に、Inhibition マスクは非常に有効です。
例えば、急峻な斜面をもとにした単純なマスクを作って Inhibition に接続すると、その斜面上から樹木がきれいに取り除かれます。Flow マスクを用いれば、
フローライン周辺には樹木を生やしつつ
実際の沢筋や岩屑の流れのための「余白」を残す
といったコントロールも可能です。
内部の Aspect Inhibition だけでは得にくい、細かい「抜き」の調整を行う際に、Inhibition マスクは非常に有効です。
2. Trees ノードの出力:Instances と Area Mask
Gaea 2.2.6 の Trees ノードには、現状 2 種類の出力があります。
Instances
Area Mask(実験的機能)
Instances 出力
通常はこちらを使用します。シミュレーション結果としてのツリーインスタンスからマスクを得るモードで、安定して動作します。
Area Mask 出力(Experimental)
Area Mask は、シミュレーションの「裏側のデータ」に直接アクセスするような実験的機能です。
基本的には動作しますが、
挙動が分かりにくい点がある
出力の安定性・信頼性の面で、Instances に劣る
といった注意点があります。
そのため、確実に使いたい場合は Instances モードを選ぶことを推奨します。Area Mask は、挙動を理解したうえで試す実験的オプションと考えるのがよいでしょう。
通常はこちらを使用します。シミュレーション結果としてのツリーインスタンスからマスクを得るモードで、安定して動作します。
Area Mask 出力(Experimental)
Area Mask は、シミュレーションの「裏側のデータ」に直接アクセスするような実験的機能です。
基本的には動作しますが、
挙動が分かりにくい点がある
出力の安定性・信頼性の面で、Instances に劣る
といった注意点があります。
そのため、確実に使いたい場合は Instances モードを選ぶことを推奨します。Area Mask は、挙動を理解したうえで試す実験的オプションと考えるのがよいでしょう。
3. Instances モードの主なパラメータ
ここからは、通常使用する Instances 出力 に関するパラメータを整理していきます。
Count in Thousands
ツリーシミュレーションの密度を制御します(単位は千本)。
値を上げるほど、マスクとして見たときの解像感が増しますが、その分重くなります。
値を上げるほど、マスクとして見たときの解像感が増しますが、その分重くなります。
- 講師の例では 500,000(= 500k) をよく使用
-
高解像度(例:16K)では RAM 消費が急増するため、
- 値を下げる
-
もしくは Is Relative をオフにする
などで調整します。
Is Relative
解像度に応じて Count をスケールさせるかどうかを制御します。
高解像度へ切り替えても結果を予測しやすくするため、基本的には オン推奨 ですが、メモリに余裕がない場合はオフにする選択肢もあります。
高解像度へ切り替えても結果を予測しやすくするため、基本的には オン推奨 ですが、メモリに余裕がない場合はオフにする選択肢もあります。
Tree Size
各インスタンスの高さを指定します(幅ではない)。
マスクそのものには直接関係しませんが、Gaea からツリー形状をそのまま使う場合の見え方に影響します。
マスクそのものには直接関係しませんが、Gaea からツリー形状をそのまま使う場合の見え方に影響します。
Trim Under
指定したサイズ未満のツリーを除外することで、ツリー分布の「先細り」部分をカットするパラメータです。
Trees ノードではツリーのサイズが徐々に小さくなっていく傾向があるため、この値で下限を決めるイメージです。
Trees ノードではツリーのサイズが徐々に小さくなっていく傾向があるため、この値で下限を決めるイメージです。
Shape
ツリーインスタンスの描画形状です。
Point:1ピクセルの点
Big / Big Only:より大きなブロック形状
Gaea 内での可視化は Point が見やすいこともありますが、マスクを書き出す用途では Big が推奨です。
Big にすると、後段でコントラスト調整した際にも、ツリーエリアがはっきりとした形になります。
Point:1ピクセルの点
Big / Big Only:より大きなブロック形状
Gaea 内での可視化は Point が見やすいこともありますが、マスクを書き出す用途では Big が推奨です。
Big にすると、後段でコントラスト調整した際にも、ツリーエリアがはっきりとした形になります。
Seed
乱数シードです。Trees はシミュレーションベースなので、Seed を変えることでツリー配置パターンが変わります。
4. Growth 設定
Seek Water
水流に対して、樹木をどのように生やすかを制御します。
水流の近くに寄せる
逆に水流を避ける
といった振る舞いを切り替えられます。
水流の近くに寄せる
逆に水流を避ける
といった振る舞いを切り替えられます。
Avoid Trees
Trees ノードを複数段重ねる場合に使用します。
異なる樹種やバイオームごとに別の Trees ノードを使い、それぞれのマスクが互いに貫通しないようにしたい場合に、前段のツリーを避けるように成長させることができます。
異なる樹種やバイオームごとに別の Trees ノードを使い、それぞれのマスクが互いに貫通しないようにしたい場合に、前段のツリーを避けるように成長させることができます。
Health
シミュレーションの「寿命」「期間」に近い概念で、以下に影響します。
- インスタンス密度
- インスタンスサイズ
- ツリーがどこまで上流/細い谷へ伸びていくか
- 谷底付近に生える樹木マスク:低めの Health(例:0.3 前後)
- 急斜面や細い水脈まで攻めていく危うい立地の樹木:高めの Health
Patches
ツリーを個々ではなく、ある程度の「塊」として成長させる設定です。
値を上げるほど、集合した林や森のような見え方になります。
値を上げるほど、集合した林や森のような見え方になります。
Spread
名前から「単にツリーを広げる」ように聞こえますが、実際には 樹木が生育可能な領域をぼかす 作用があります。
細いフローラインに沿って「細い森の筋」が多数できるような、いかにも CG 的な見え方をある程度まとめて、より自然なまとまりを持った森林エリアに変えてくれます。
Spread と Patches を併用することで、「水の流れに忠実すぎるツリー分布」を崩し、自然な塊感のある森を表現しやすくなります。
細いフローラインに沿って「細い森の筋」が多数できるような、いかにも CG 的な見え方をある程度まとめて、より自然なまとまりを持った森林エリアに変えてくれます。
Spread と Patches を併用することで、「水の流れに忠実すぎるツリー分布」を崩し、自然な塊感のある森を表現しやすくなります。
Random
樹木マスク全体にランダムなノイズを追加します。
ただし、このノイズは Aspect Inhibition や Inhibition マスクを無視してツリーを散らしてしまうため、解説では ほぼ使用していない とのことです。
ただし、このノイズは Aspect Inhibition や Inhibition マスクを無視してツリーを散らしてしまうため、解説では ほぼ使用していない とのことです。
5. Aspect / Snow / Artistic Control
Aspect Inhibition
地形から自動的にツリーの生育条件を制限する機能です。
- Slope:傾斜マスク。Falloff(減衰)を 持ちます。
- Altitude:標高マスク。Falloff を 1 のままにすると、ほぼ全域に樹木が生えてしまうので注意が必要です。
- Peaks:山頂部のような「もっとも露出した箇所」からツリーを取り除きます(標高だけでなく、露出度に基づいたイメージ)。
- Strict:抑制をより厳密にするオプションです。Falloff が鋭くなり、外れ値の少ない、やや人工的な境界になります。
Snow Inhibition
雪のフローをもとに、樹木の生育を制限するための設定です。
- Dead Flow:雪の質量がどれだけ山を下っていくか
- Consolidate Flows:フロー同士をどれだけまとめて、大きな塊にするか
- 値が高いほど、大きな雪塊となって遠くまで流れます。
- 低いと、小さな雪塊が多数、短い距離を流れます。
- Bias:フローがどの程度下方へ流れていくかの傾向
- Snow Line:雪のフローが始まる標高
Artistic Control
- Chaos:ツリーの位置をわずかにワープさせ、フローラインに対してまっすぐ並びすぎないようにするためのオフセットです。
- Blur Edges:ツリー分布のエッジをなめらかにします。Trim 設定と併用すると、エッジ部分の樹木がより多く削られます。
- Visualize Data:フロー、ツリー成長、雪の流れなどを可視化する補助機能です。
6. Area Mask モードの挙動
次に、Experimental な Area Mask 出力 についてです。
これは講師自身がテスト用に実装を依頼した機能で、内部データに直接アクセスしてマスクを取り出す仕組みになっています。その性質上、やや独特な挙動をとります。
Health の意味の違い
Instances モードでは、Health は「シミュレーション時間の長さ」のように働き、時間が進むほどツリーインスタンスが増え、結果が積み上がっていきます。
一方、Area Mask モードでは、Health は「ある時点の状態のみ」を表します。
Health の値を変えると、マスク上から消えてしまう
という現象が起こります。累積して残らない点が、Instances との大きな違いです。
一方、Area Mask モードでは、Health は「ある時点の状態のみ」を表します。
- 低い Health:水が豊富なメインのフローエリア付近がよく見える
- Health を上げる:時間経過とともに、メインエリアのツリーは消え、ツリーがより細い谷や高い位置へ移動した状態だけが可視化される
Health の値を変えると、マスク上から消えてしまう
という現象が起こります。累積して残らない点が、Instances との大きな違いです。
Spread / Aspect / Inhibition との関係
Area Mask では、以下のような注意点があります。
- Spread を 0 にすると、見える情報がほとんどなくなることが多く、ある程度値を上げた方がマスクとして有用な結果が得られます。
- Aspect Inhibition(特に Slope) は期待どおりに動作しません。
- Altitude は機能しますが、Slope は Area Mask ではうまく働かないため、代わりに 外部で作った Inhibition マスク を使った方が確実です。
実務上のまとめ
Area Mask をまとまったマスクとして使いたい場合は、
RAM 消費が少ないという利点はありますが、安定性や扱いやすさの点では、現状は Instances モードの方が優先される、という位置づけです。
Health の値を変えた複数の Trees ノードを用意し、
各時点の Area Mask を合成して 1 枚のマスクにまとめる
といった手順が必要になります。各時点の Area Mask を合成して 1 枚のマスクにまとめる
RAM 消費が少ないという利点はありますが、安定性や扱いやすさの点では、現状は Instances モードの方が優先される、という位置づけです。
7. 地形セットアップの例
次に、実際の地形に Trees ノードを適用するまでの一連の流れを見ていきます。
Gabor プリミティブからの地形生成
例では、まず Gabor(動画内では Gabbor と呼称) という波打つパターンを生成するプリミティブを使用しています。
- Gabor を少し Height Remap し、スケールを調整して丘陵状のフィールドを作成
- これを Rivers ノード に通して、谷の位置をロックし、後続の侵食処理の下地を整える
- その後、強めの侵食やカットを加えるためのノード(ヘッドウォーター的な設定)で大きく削り込み
-
Crumble ノード を通して、谷筋に沿った深い溝を作る
- Rivers と似た「谷を狙う」性質を持ちつつ、より深いトレンチを形成する
-
さらに Warp で細部を加え、Erosion 2 をスケール 100 で適用
大規模な侵食パターンを形作る
主に Shape 設定を調整し、鋭さを高める
8. Inhibition マスクの構築
地形が整ったら、次は Trees ノードに渡す Inhibition マスク を準備します。ここでは、ツリーを「生やさない領域」を論理的に定義していきます。
Flow / Flow Length / Flow Volume
まず Flow 情報から、重要な流路を抽出します。
- 通常の Flow を取り出し、Curve で大きな流路を強調
-
Flow Length を高め、Flow Volume を下げることで、
- 少ない堆積量で
-
長く伸びる細いフロー
を作り出す
Slope / Height / Snow
次に、Slope や Height 選択を組み合わせます。
- 急斜面マスク
- ある程度以上・以下の高さを選択したマスク
- 必要に応じて Distort を加えて、自然な揺らぎを付与
Color Erosion で Rock Flow を作る
ここで重要なのが Color Erosion ノード の活用です。
現実の山岳地帯では、
- Flow や Slope などから得られたマスクを Color Erosion に入力
- Blend モードを Max に設定し、明るい値を保持
- ブレンドを 100% にし、必要に応じてパラメータを微調整
- 斜面の形状に応じた、リアルな「岩屑流(scree / debris)」マスク、
岩が溜まりやすい位置や流れが止まりやすい位置
現実の山岳地帯では、
- 崖のすぐ下には土がたまり、樹木が育つこともある
- しかし、その下方へ流れ落ちた大量の岩屑が堆積している帯には、樹木がほとんど生えない
マスクのコントラスト調整と統合
最後に、Curves でコントラストを強め、細かなノイズ的なフローを抑えつつ、大きな岩屑流だけを強調します。
白 = 樹木が生えない(Inhibition)
黒 = 樹木が生える余地がある
という 1 枚の Inhibition マスクにまとめます。
- 小さな流れ:あまり重要でないので抑える
- 大きな流れ:はっきりと残す
白 = 樹木が生えない(Inhibition)
黒 = 樹木が生える余地がある
という 1 枚の Inhibition マスクにまとめます。
9. Trees ノードへの適用
準備したマスクを使い、実際に Trees ノードでツリー分布を生成します。
基本設定
- Input:地形(例では Choke Point からの出力を Portal 経由で接続)
- Inhibition:先ほど作成したマスク
- Count in Thousands:500
- Tree Size:0.1
- Trim Under:0.15(弱いツリーをカットして形を整理)
- Seek Water / Avoid Trees:今回は stacking していないので Avoid Trees は None
- Health:75
- Patches:小さめ
- Spread:0 → 必要に応じて 0.25 程度まで上げる
得られたグレースケールマスクは、他の DCC(例:Blender)でのスキャッタリングにおける
- Density(密度)
- Scale(スケール)
Aspect Inhibition 側では、Slope と Altitude を控えめに使用しているものの、メインのコントロールは外部で作った Inhibition マスクが担っているため、あくまで補助的な扱いです。
Snow Dead Flow も少しだけ使っており、
- Consolidation(まとまり)は低め
- Bias も低め
Chaos はこの例では調整していません。
10. マスクとしての書き出し
最後に、このツリー分布を外部ソフトで使えるマスクとして書き出します。
Shape を Big に切り替える
Point 形状のままだと、ピクセルが細かすぎてマスクとして読みづらいので、Shape を Big に変更します。
これにより、1 ピクセルではなく、より大きなブロックとしてツリーが描かれ、マスクを視覚的に把握しやすくなります。
これにより、1 ピクセルではなく、より大きなブロックとしてツリーが描かれ、マスクを視覚的に把握しやすくなります。
Shaper / Curve での調整
Shaper を使って全体を明るくし、その後 Curve でコントラストを調整します。
- 暗い部分:散発的なツリーや密度の低い領域
- 明るい部分:ツリー密度の高い主要な森林帯
Export ノード
最終的なマスクは Export ノード から画像として書き出します。
- フォーマット:JPEG
- ビット深度:8bit で十分(16bit までは不要)
追加の Blur / Warp
必要に応じて、わずかな Blur(例:0.1 前後)をかけて、エッジのピクセル感を和らげたり、Warp で微細なゆらぎを加えることもできます。
特にテクスチャリング用途でマスクを利用する場合、軽い Blur を入れておくと自然な結果になりやすいです。
特にテクスチャリング用途でマスクを利用する場合、軽い Blur を入れておくと自然な結果になりやすいです。
まとめ
本記事では、Gaea の Trees ノードについて、
特に、
- Inhibition 入力の役割と重要性
- Instances / Area Mask それぞれの挙動と注意点
- 地形生成〜Inhibition マスク構築〜Trees 適用〜マスク書き出しまでの一連の流れ
特に、
- 質の高い Inhibition マスクを外部ノードで構築すること
- Spread / Patches を活用して、フローに忠実すぎる「筋状の森」を自然な塊にすること
- Color Erosion を用いて、岩屑流などの「樹木が生えないエリア」を現実的に再現すること
このワークフローをベースに、目的の地形やバイオームに合わせてパラメータやマスク構成を調整してみてください。
