Path Mask(パスマスク)

閉じたベジェパス群を白+アルファのマスク画像に変換するノード。

中級
Since P00

入力ポート

Path(パス)

マスク化するベジェパス

Path

出力ポート

Image(画像)

白+アルファのマスク画像

Image

パラメータ

名前デフォルト説明
WidthInt64キャンバスの幅
Height高さInt64キャンバスの高さ
Overlap Mode重なり方EnumUnion重なった閉じパスをどう面として扱うか
Pixel PerfectピクセルパーフェクトBoolfalsePP 補正後の輪郭を基準にマスクを作る
PP ModePP モードEnumRemoveCornerPP 補正方式
Closed Path Cross閉パス外積モードBoolfalse閉パスの内外判定に外積ベース補正を使う
Closed Edge閉パス削除側EnumOuter閉パスで内側 / 外側のどちらを削るか

重なり方

モード説明
**Union / 全部塗る**どれか1つの閉じパスの中にあれば塗る。普通に図形を重ねたいときの基本モード
**EvenOdd / 中を穴にする**重なるたびに塗る/抜くが切り替わる。ドーナツや枠のように「中を抜きたい」とき向け
**NonZero / 向きで穴を決める**パスを描いた向きで塗るか穴にするかを決める。外周と穴を自分で描き分けたい上級者向け

ピクセルパーフェクト

  • オフ: 通常の輪郭を基準にマスクを作る
  • オン: PathStroke と同じ PP 補正後の輪郭を基準にマスクを作る

PathStroke の見た目と面のシルエットを揃えたいときはオンにします。

アルゴリズム

  1. 閉じたサブパスだけを対象に rasterize_subpath で輪郭ピクセル列を取得
  2. 複数サブパスを 1 つの面として扱い、各ピクセル中心に対して fill_rule で内外判定
  3. 塗り領域と輪郭に白 (1,1,1,1) を描き、それ以外は透明のまま出力

使用例

パスからマスクを作る

[MultiPathEditor] → path → [PathMask(fill_rule:Union)] → [Preview]

画像をパス形状で切り抜く

[PixelCanvas] → source → [Mask] → [Preview]
                         ↑
               [PathMask] → mask

将来の面散布の基盤

[MultiPathEditor] → [PathMask] → [MaskScatter]

注意事項

  • 開いたサブパスは無視されます
  • PathFill と違い、複数サブパスをまとめて面として扱います
  • Mask ノードで使う前提のため、出力は白+アルファの画像です
  • 図形が重なった部分もそのまま塗りたい場合は Union / 全部塗る を使います

💡 ヒント

  • 開いたサブパスは無視されます
  • `PathFill` と違い、複数サブパスをまとめて面として扱います
  • `Mask` ノードで使う前提のため、出力は白+アルファの画像です
  • 図形が重なった部分もそのまま塗りたい場合は `Union / 全部塗る` を使います

関連ノード

multipatheditor
preview
pixelcanvas
mask
pathmask
maskscatter
Path Mask (パスマスク) — PixPipeline ノード解説