ノード一覧に戻る

レギオン散布

region_scatter

小さなレギオンを、完全ランダムまたは中心の最小間隔を保証して散らします。鉱石・汚れ・泡・小石など、表面に点在するアクセント向けです

確認済み
解説あり

入力ポート

名前型説明
マスク
mask
Image
領域を生成する範囲を制限する任意の画像マスクです。マスクは 明度 * アルファ >= 0.5 のピクセルを有効範囲として扱います。マスク外は OUTSIDE_ID になります。

出力ポート

名前型説明
領域
regions
RegionMap
生成された RegionMap データです
プレビュー
preview
Image
生成した領域を色分けした確認用画像です
ラベル
labels
Map
Inspector に重ねるIDラベル位置です

パラメータ

名前型既定値範囲説明・選択肢
幅
width
Int
641–2048

RegionMap のピクセル幅です

高さ
height
Int
641–2048

RegionMap のピクセル高さです

個数
count
Int
321–2048

散布する小領域の数です

最小半径
min_radius
Float
20.5–128 / step 0.5

小領域の最小半径です

最大半径
max_radius
Float
50.5–128 / step 0.5

小領域の最大半径です

シード
seed
Int
10–99999

散布を再現するためのシードです

配置
placement
Enum
Random—

密集も起こるランダム配置か、中心間隔を保証する配置かを選びます

  • ランダムRandom
    従来どおり完全ランダムに置きます。小領域が密集・重複する場合があります
  • 間隔を空けるKeepApart
    近すぎる中心を除外します。鉱石・小石・泡・表面の斑点を自然に散らす時に向きます
中心の最小間隔
min_distance
Float
81–512 / step 0.5

中心同士を何px以上離すかです。重なりを減らすなら最大半径の約2倍から始め、個数が置けない時は下げます

形
shape
Enum
Circle—

散布する小領域の形です

  • 丸Circle
    丸い小領域です
  • ひし形Diamond
    ひし形の小領域です
  • 四角Square
    四角い小領域です
背景領域
background
Bool
true—

空き部分を外側ではなく領域0にします

左右ループ
wrap_x
Bool
false—

小領域を左右端でまたがらせます。間隔を空ける配置では左右端をつないで中心間隔も測ります

上下ループ
wrap_y
Bool
false—

小領域を上下端でまたがらせます。間隔を空ける配置では上下端をつないで中心間隔も測ります

ID順
id_order
Enum
SeedOrder—

生成した領域IDの並べ替え方法です

  • 生成順SeedOrder
    生成時のID順を使います
  • 左上からTopLeft
    外接矩形の上端、次に左端の昇順で小さいIDを割り当てます
  • 右下からBottomRight
    外接矩形の下端、次に右端の降順で小さいIDを割り当てます
  • 面積昇順AreaAsc
    面積が小さい領域から小さいIDを割り当てます
  • 面積降順AreaDesc
    面積が大きい領域から小さいIDを割り当てます
ID表示
show_ids
Bool
false—

Inspector のプレビュー上に領域IDラベルを表示します

概要

小さな斑点状の領域をばらまいて RegionMap を作るノードです。 小石・泡・葉・鉱石・汚れなど、「地面のアクセント」の配置決めを担当します。 配置を領域として持つため、後から個別に塗り替えたりマスク化したりできます。

  • type_id: region_scatter
  • category: Generate/Region/Create

小さな点在領域を RegionMap として直接生成します。小石、泡、葉、汚れ、鉱石の斑点などのアクセント領域に向きます。

使い方のポイント

  • 定番の使われ方は region_compose とのセット(地層に斑点を重ねる)。単独でも region_mask → mask_scatter で「斑点の位置にスタンプを置く」使い方ができる
  • 偶然の塊も欲しい時はplacement=Random、鉱石・泡・小石を互いに離したい時は KeepApartを使う。既定はRandomなので、旧プロジェクトの配置は変わらない
  • min_distanceは小領域の中心間隔。重なりを減らす目安はmax_radiusの約2倍。 指定個数が収まらない警告が出たら、間隔かcountを下げる
  • seed を変えるだけで配置バリエーションが量産できる(batch_render と好相性)
  • mask 入力で散布範囲を制限できる(「地面の領域にだけ小石を撒く」)。 範囲は region_mask から持ってくると領域連携が完結する

主なパラメータ

ID 内容
width / height RegionMap のピクセルサイズ
count 散布する小領域の数
min_radius / max_radius 小領域の半径範囲
placement 完全ランダム / 中心の間隔を空ける
min_distance KeepApart時の中心間隔(px)。最大半径の約2倍が重なり防止の出発点
shape 丸 / ひし形 / 四角
background 空き部分を領域0にするか、外側として扱うか
wrap_x / wrap_y 端をまたぐ散布を許可する

既存RegionMapへ混ぜる合成ノードと組み合わせると、素材アクセントとして使いやすくなります。

wrap_x / wrap_yとKeepApartを併用すると、反対端にある中心同士も近接扱いになります。 そのため、並べた時に境界だけ斑点が密集するタイル継ぎ目を避けられます。

mask を接続すると、マスクの有効範囲内だけに散布し、外側は OUTSIDE として扱います。background がオンの場合も、背景領域0はマスク内だけに作られます。マスクは 明度 * アルファ >= 0.5 のピクセルを有効範囲として扱います。マスク接続時は任意形状を優先し、wrap_x / wrap_y は描画と間隔判定の両方で無効になります。

KeepApartでcount個を置けない場合は、配置できた分だけを出力し、min_distanceへ 警告を表示します。結果を空にしたり、指定間隔を黙って縮めたりはしません。

max_radius を min_radius より小さくした場合は、評価時だけ大小を入れ替えて 有効な範囲として使い、ノードに警告を表示します。保存された入力値自体は書き換えません。

土台の領域に鉱石、汚れ、泡、小石などを後から載せる場合は、Region Scatter -> Region Compose の順に使います。散布領域だけを画像処理へ渡したい場合は、後段に Region Mask を接続します。

関連ノード

  • region_compose — 土台領域への重ね合わせ
  • region_mask — 散布領域のマスク化
  • mask_scatter — 領域ではなく画像スタンプを直接散布したい場合
  • path_array — パス沿い・パス内への散布(Scatterモード)
ノード一覧に戻る
レギオン散布 — PixPipeline ノード解説