ノード一覧に戻る

領域境界トレース

region_boundary_trace

RegionMap の境界を PixelLine データとして抽出します

下書き
解説あり

入力ポート

名前説明
領域
regions
RegionMap
必須
境界をトレースする RegionMap です

出力ポート

名前説明
ピクセル線
pixel_line
PixelLine
接続成分ごとにまとめた境界ピクセル座標列です
プレビュー
preview
Image
抽出した境界ピクセルの確認用画像です
概要
summary
Map
トレース数とループ情報です

パラメータ

名前既定値範囲説明・選択肢
対象
target
Enum
All

どの領域境界を抽出するかです

  • すべてAll
    すべての領域境界を抽出します
  • 領域IDRegionId
    指定IDに接する境界だけを抽出します
  • ID範囲IdRange
    指定ID範囲に接する境界だけを抽出します
  • 領域ペアPair
    指定した2領域の間の境界だけを抽出します
領域ID
region_id
Int
00–99999

領域ID対象で使うIDです

最小ID
min_id
Int
00–99999

ID範囲対象で使う最小IDです

最大ID
max_id
Int
2550–99999

ID範囲対象で使う最大IDです

ID範囲条件
id_range_match
Enum
BothInside

ID範囲対象で境界ペアをどう判定するかです

  • 範囲内同士BothInside
    両方の領域IDが範囲内にある境界だけを抽出します
  • 範囲に接するTouching
    どちらか一方の領域IDが範囲内にある境界を抽出します
  • 範囲の外周Crossing
    範囲内と範囲外の間の境界だけを抽出します
ペアA
pair_a
Int
00–99999

領域ペア対象の1つ目のIDです

ペアB
pair_b
Int
10–99999

領域ペア対象の2つ目のIDです

近傍
connectivity
Enum
Four

境界判定に使う近傍ルールです

  • 4近傍Four
    上下左右の境界を抽出します
  • 8近傍Eight
    斜め接触も含めます
配置
placement
Enum
ForwardSide

境界のどちら側をピクセル線にするかです

  • 両側BothSides
    境界の両側を抽出します
  • 片側ForwardSide
    右・下方向を基準に片側だけ抽出します
  • 小さいID側LowerIdSide
    IDが小さい領域側だけ抽出します
  • 大きいID側HigherIdSide
    IDが大きい領域側だけ抽出します
最小長
min_length
Int
11–4096

この点数より短い線成分を除外します

角整理
cleanup_corners
Bool
false

太い線を削らず、短い突起やノイズを整理します

角整理方式
cleanup_mode
Enum
Safe

角整理をオンにした時の整理方式です

  • 安全Safe
    太い境界に付いた短い突起だけを控えめに整理します
  • 強めStrong
    塊や分岐を保護しつつ、少し長い突起まで整理します
  • 水平優先Horizontal
    Path Stroke の水平側除去に寄せます
  • 垂直優先Vertical
    Path Stroke の垂直側除去に寄せます
突起長
spur_length
Int
11–8

強め整理で消す短い突起の最大長です。安全では1ドットだけ整理します

color
Color
[1,1,1,1]

プレビュー色です

  • カテゴリ: Generate / Region / Render
  • 用途: 境界線を後段で加工する、特定領域ペアの境界だけを取り出す、ピクセル線として整理する

対象

説明
All すべての領域境界を抽出します。
RegionId 指定IDに接する境界だけを抽出します。
IdRange 指定ID範囲に接する境界だけを抽出します。
Pair 指定した2領域の間の境界だけを抽出します。

ID範囲条件

説明
BothInside 両方の領域IDが範囲内にある境界だけを抽出します。
Touching どちらか一方の領域IDが範囲内にある境界を抽出します。
Crossing 範囲内と範囲外の間の境界だけを抽出します。

配置

説明
BothSides 境界の両側を抽出します。
ForwardSide 右・下方向を基準に片側だけ抽出します。
LowerIdSide IDが小さい領域側だけを抽出します。
HigherIdSide IDが大きい領域側だけを抽出します。

角整理方式

説明
Safe 2x2以上の塊や分岐を保護し、太い境界に付いた短い突起だけを控えめに整理します。
Strong 突起長 を使って、少し長い短い突起まで整理します。塊・分岐・四方接続の中心は保護します。
Horizontal Path Stroke の RemoveHorizontal に寄せます。
Vertical Path Stroke の RemoveVertical に寄せます。

使い方

Region Cells.regions -> Region Boundary Trace.regions と接続します。

すぐ画像が欲しい場合は Region Border を使います。境界を線データとして後から加工したい場合、または特定の領域ペアだけを取り出したい場合は、このノードを使います。

入力 RegionMap左右ループ / 上下ループ を持っている場合、左右端・上下端の接触も境界として抽出します。タイル素材の継ぎ目にある境界も、同じ PixelLine として扱えます。

cleanup_corners は線幅2px以上の塊を無理に細くする機能ではありません。ドット絵で目立ちやすい短い突起や孤立気味のノイズを整理するための補助です。太い境界線を保ちたい場合はオフ、細かいヒゲだけ取りたい場合は Safe、より積極的に整理したい場合は Strong を使います。

ノード一覧に戻る