Back to Node List

Path Array

path_array

Place objects along a bezier path with various distribution modes

Reviewed
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
パス
path
Path
Required
オブジェクトを配置するベジェパス
スタンプ
stamp
Image
各点に配置する画像(未接続時は1pxドット)

Output Ports

NameTypeDescription
画像
output
Image
生成された配列画像

Parameters

NameTypeDefaultRangeDescription / Options
width
Int
641–1024

キャンバスの幅(ピクセル)

高さ
height
Int
641–1024

キャンバスの高さ(ピクセル)

対象サブパス
sub_path_scope
Enum
All

すべてのサブパスに適用するか、1 本だけに適用するかを選びます

  • すべてAll
    すべてのサブパスに同じ設定で適用します
  • 個別Single
    選んだ 1 本のサブパスだけに適用します
使うサブパス
sub_path_index
Int
00–255

個別モード時に使うサブパスを選びます

count
Int
50–128

各サブパスに配置するオブジェクトの数。0なら何も配置しません

配置モード
mode
Enum
Equal

オブジェクト配置の分布モード

  • 等間隔Equal
    パスに沿って等間隔で配置
  • 順次配置Fill
    始点から順次配置(ラインを描くように)
  • ランダムRandom
    パス上のランダムな位置に配置
  • 分散Scatter
    パスライン周辺にランダムに分散配置
  • 実距離間隔Distance
    パスに沿って、指定したピクセル間隔で繰り返し配置
配置間隔
spacing
Float
80.5–4096 / step 0.5

中心どうしの間隔(px)。まず鎖1コマや柵1区画の幅に合わせると自然につながります

開始位置
start_offset
Float
00–4096 / step 0.5

始点から最初の配置までの距離(px)。動かすと足跡や流れる光を前進させられます

末端の余り
remainder
Enum
Trim

使い切れない長さの置き場所。柵柱やリベットを左右対称に見せたい時は「両端へ分ける」が便利です

  • 末端に残すTrim
    指定間隔を守り、余った長さは終端側に残します
  • 両端へ分けるCenter
    指定間隔を守り、余った長さを始端と終端へ半分ずつ分けます
スタンプの向き
orientation
Enum
None

スタンプをパスへ沿わせます。小さいドット絵が自由回転で崩れる時は90度刻みを使います

  • 固定None
    すべて元画像の向きのまま配置します
  • パスに沿うFree
    パスの進行方向へ自由角度で回転します
  • 45度刻みSnap45
    進行方向に近い45度刻みへそろえます
  • 90度刻みSnap90
    進行方向に近い90度刻みへそろえ、ドットの崩れを抑えます
向きの補正
orientation_offset
Float
0-180–180 / step 1

追加する角度(度)。元画像が右向きでなく上向きなら、まず90前後で合わせます

シード
seed
Int
00–99999

ランダム/分散モード用の乱数シード

分散幅
spread
Int
40–64

パスからの最大分散距離(分散モードのみ)

分散側
scatter_side
Enum
Both

分散モードでどちら側に散らすか

  • 両側Both
    パスの両側に分散配置
  • 内側Inside
    閉じたサブパスの内側にだけ分散配置
  • 外側Outside
    閉じたサブパスの外側にだけ分散配置
順次方向
fill_direction
Enum
Forward

順次配置モードで使う配置方向

  • 順方向Forward
    始点から終点へ向かって配置
  • 逆方向Reverse
    終点から始点へ向かって逆順配置
順次ステップ
fill_step
Int
11–64

順次配置モードで何ピクセルおきに配置するか

color
Color
[1,1,1,1]

ドットの色(スタンプ未接続時に使用)

ピクセルパーフェクト
pixel_perfect
Bool
false

ベジェサンプリングの代わりにラスタライズ済みピクセル位置を使用

PP モード
pp_mode
Enum
RemoveCorner

ピクセルパーフェクト補正でどちらの冗長ピクセルを削除するか

  • 対角優先Diagonal
    水平ステップを削除してより対角的なラインに
  • 直線優先Cardinal
    垂直ステップを削除してより水平/垂直的なラインに
  • 角削除RemoveCorner
    L字の角ピクセルを優先して削除
  • 角保持KeepCorner
    L字の角ピクセルを優先して保持
閉パス外積モード
pp_closed_cross
Bool
false

閉じたサブパスに外積ベースの内/外エッジ削除を適用

閉パス削除側
pp_closed_side
Enum
Outer

閉パスのどちら側のエッジを削除するか

  • 内側Inner
    内側のエッジを削除
  • 外側Outer
    外側のエッジを削除

Overview

Places images (stamps) or dots along a path. Chains, button rows, street lamps, or clumps of grass—anything repeated along a line can be built in four modes: evenly spaced, sequential, random, or scattered.

  • Version: 2
  • Generator: yes (is_generator: true)

Usage tips

  • Its main strength is a small image connected to stamp, such as a rivet, grass clump, or stone. With no connection, it places 1px dots.
  • Choose by use: chain or decoration → Equal; line-drawing effect → Fill; natural distribution such as grass or stones → Scatter, with variants from seed.
  • Scatter + a closed path + scatter_side: Inside scatters within a shape, such as flowers inside a grass patch.
  • For stamp variation, layer several PathArray nodes with different seed values using blend.

Common pitfalls

  • Stamps are clipped: placement points lie on the path, but the canvas still needs room for stamp dimensions. Check the rasterization canvas and padding-like margins.
  • Start and end overlap on a closed path: Equal avoids this automatically. If they still appear to overlap, count is too high and spacing is too tight.
  • Inside/Outside has no effect: an open subpath intentionally behaves like Both. Close the path.
  • Temporarily place nothing: count = 0 is a valid empty result and can be used as a procedural on/off switch.
  • No valid Inside/Outside candidate exists: that placement is skipped instead of silently returning to the path, and scatter_side reports a warning.

Placement modes

Mode Description
Equal Divide the path evenly. Automatically avoids duplicate start/end points on a closed path
Fill Use rasterized pixels in order. Set direction with fill_direction and skipping interval with fill_step
Random Place at random path positions, reproducible by seed
Scatter Distribute randomly around the path. Control deviation with spread and side with scatter_side: both / inside / outside. On open subpaths, Inside / Outside behave as Both

Pixel-perfect mode

  • On: place relative to the pixel-coordinate sequence rasterized by rasterize_subpath. The same PP correction options as Path Stroke are available: diagonal/cardinal priority, corner removal/preservation, closed-path cross product, and removal side.
  • Off: adaptively flatten the mathematical Bézier curve and place by total arc length. Equal uses visually equal distances and only the final placement is rounded to pixels.
  • Random samples uniformly along arc length. Scatter uses a disk whose radius is spread, so actual displacement never exceeds the configured distance.

Handling subpaths

  • Sub-path Scope = All
    • Place count items on each subpath using the same rule.
  • Sub-path Scope = Single
    • Place items only on the specified subpath.
  • The upper limit of sub_path_index updates in the UI to match the number of input subpaths.

Examples

Even placement

[BezierPath] → path → [PathArray(mode:Equal, count:10)] → [Preview]

Random scattering

[MultiPath] → path → [PathArray(mode:Scatter, count:20, spread:8, seed:42)] → [Preview]

Pixel-perfect placement

[BezierPath] → path → [PathArray(pixel_perfect:ON, pp_mode:RemoveCorner)] → [Preview]

Placing on only one path

[MultiPath] → path → [PathArray(sub_path_scope:Single, sub_path_index:1)] → [Preview]

Related nodes

  • mask_scatter — scatter in a mask area rather than along a path
  • path_sample — extract numeric coordinates on a path instead of placing objects
  • region_scatter — scatter with the region system
  • path_transform — adjust a path before placement
Back to Node List