ノード一覧に戻る

レギオン散布

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_yKeepApartを併用すると、反対端にある中心同士も近接扱いになります。 そのため、並べた時に境界だけ斑点が密集するタイル継ぎ目を避けられます。

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

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

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

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

関連ノード

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