概要
パスを「手打ちのようなドット線」に変換するラスタライザです。ベジェパスに沿って 線を引き、既定でL字の余分なドットを除去したピクセルパーフェクトな1px線を出します。 PixPipeline のパス→ドット絵変換のいちばん基本の出口です。
- バージョン: 2
- ジェネレーター: はい(
is_generator: true— キャンバスサイズ自動バインド対象)
使い方のポイント
- 基本形は
bezier_path → path_stroke → (blend等)。まず既定(太さ1・ ピクセルパーフェクトON)で引き、線の性格はpp_modeで微調整する (対角的な線にしたい→Diagonal、水平垂直寄り→Cardinal。迷ったら既定のRemoveCorner) - 閉じた形の中も塗りたい場合は
fill_closedをON。線と塗りを別の色にできる (輪郭色+中身色のドット絵イディオムがこれ1つで完成) - 線の色は
color入力ポートにつなぐとパレット・変数管理に乗せられる - テーパー(先細り): 「終端の太さ」を1以上にすると、始端の「太さ」から 終端へ線幅が滑らかに変わる。太さ3→終端1で草・毛・尻尾・炎の定番の線になる (0のままなら従来どおり均一)
- キャンバスサイズはパス側(
bezier_path)と揃える。両方ともキャンバスバインドが 既定なので、通常は何もしなくても揃っている
よくある失敗
- 太さを2以上にすると線の性格が変わる:
pixel_perfectは 太さ1のときだけ 効きます。太線は同じ中心線へ円形ブラシを適用し、偶数幅では右・下へ半ピクセル 寄せて指定どおりの太さにします - 塗りが効かない: パスが閉じていない。
bezier_pathのエディタでパスを閉じる (fill_closedは閉じたサブパスにしか作用しない) - 何も出ない: パス未接続時は透明画像を出力する仕様。パス入力の接続を確認する
- マルチパスの一部だけ描きたいのに全部出る:
sub_path_scope = Singleにしてsub_path_indexで対象を選ぶ
描画アルゴリズム
thickness = 1(ピクセルパーフェクトモード)
- 各セグメントを
rasterize_bezier_segment()でサンプリング → ピクセル座標列に変換.5境界上の端点はround()突き出し防止のためスキップ
- 全セグメントの座標を統合(接合点の重複除去)
- 接合点角ピクセル復元:
.5,.5アンカーで対角ギャップが検出された場合、角ピクセルを挿入して正方形等の角欠けを防止(三角形等の非直角頂点では挿入しない) - 閉パス: 終端→始点をブレゼンハムで接続
ensure_8connected()で8方向接続を保証pixel_perfectが有効なら PP 補正で L字ダブリを除去- 閉パス: ラップアラウンド L字補正
- 結果のピクセル座標を画像に描画
thickness ≥ 2
曲線を適応分割して 8 方向接続の中心線へ変換し、その各点へ円形ブラシを描画します。
偶数幅は右・下へ半ピクセル寄せるため、水平・垂直断面が指定した thickness と一致します。
pixel_line には太さに関係なく、この描画元の中心線が出力されます。
fill_closed = true
閉じサブパスの内部をスキャンラインで塗りつぶし(ストロークの下に塗る)。thickness=1 時は PP 補正済み座標列をポリゴンとして使用。
使用例
基本的なパス描画
[BezierPath] → path → [PathStroke] → output → [Preview]
色付きパス
[ColorRGB] → color → [PathStroke] → output → [Blend] → [Preview]
↑
[BezierPath]
multipath の 1 本だけ描く
[MultiPath] → path → [PathStroke(sub_path_scope:Single, sub_path_index:1)] → [Preview]
ピクセル座標列の下流処理
[BezierPath] → path → [PathStroke] → pixel_line → [PixelLineNode]
サーフェースとして使う
[BezierPath] → path → [PathStroke] → surface → [Surface Light Preview]
fill_closed をオンにすると、線だけでなく閉じた形の中も同じサーフェースとして扱えます。
注意事項
pixel_perfect補正は thickness = 1 のときのみ 適用されますpp_mode/pp_closed_cross/pp_closed_sideも太さ1の時だけ表示されますpixel_lineは太さに関係なく、ブラシを載せる前のラスタライズ済み中心線です- パス未接続時は空の透明画像を出力します
- パス未接続時も空画像と空サーフェースを返します
- サーフェース関連のパラメータはインスペクターの「サーフェース関連」に折りたたまれます
is_generator: trueのため、キャンバスサイズバインドの対象になります.5,.5アンカーポイントの角ピクセル復元はrasterize_subpath内部で自動的に処理されますsub_path_scope = Singleの時だけsub_path_indexが表示されますsub_path_indexの上限は、入力パスのサブパス数に合わせて UI が更新します
関連ノード
bezier_path/multi_path_editor— 描く元になるパスを作るpath_fill— 線ではなく塗りだけが欲しい場合pixel_line— ピクセル座標列を直接指定して線を引く場合outline— 出来上がった絵に後から輪郭を付ける場合