概要
2点間にピクセルパーフェクトな直線を引く単機能ノードです(Bresenham)。 レーザー・ロープ・ゲージ・レティクルなど、「座標で決まる直線」を数値駆動で 描きたい時に使います。
使い方のポイント
- 端点を📌入力ピン化して波形・
path_sampleの座標をつなぐと、 動く線(ビーム・つながるロープ)になる - 曲線・複雑な形は
bezier_path+path_strokeの領分。 こちらは「数値2組で引ける」手軽さが取り柄 - 2px以上は円ブラシによる太らせ。水平・垂直線の断面は指定した
thicknessと同じピクセル数になる
関連ノード
path_stroke— 曲線・スタイル付きの線shape_generate— 他の基本図形expression_vec2— 端点座標の計算blend— 背景への重ね
キャンバスサイズ連動
ジェネレータノードとして、新規作成時に width / height がプロジェクトのキャンバスサイズ(_canvasWidth / _canvasHeight)に自動バインドされます。
また、新規作成時の終点は現在の右下ピクセル、つまり
x2 = width - 1 / y2 = height - 1 で初期化されます。終点はバインドされず、以後は自由に編集できます。
| 状態 | width/height の値 |
|---|---|
| デフォルト(新規作成時) | プロジェクトキャンバスサイズにバインド(自動追従) |
| ユーザーが手入力 or バインド解除 | ローカル値(キャンバスサイズと独立) |
インスペクターの 🔗 ボタンからバインドの解除・再登録ができます。
アルゴリズム
- 1px 太さ: Bresenham のラインアルゴリズム(正確なピクセルライン)
- 2px 以上: Bresenham の各点に円形ブラシを適用
- 奇数幅のブラシはライン座標を中心に対称に配置される
- 偶数幅は整数ピクセル上で完全対称にできないため、ブラシ中心をライン座標から
右下へ 0.5px ずらす。例えば 2px は座標
0, +1、4px は-1, 0, +1, +2の配分になる - キャンバス外に出たブラシ部分はクリップされる
使用例
- LineGenerate → Blend → Preview — 直線の描画
- TimeSource → SineWave → Remap → LineGenerate(x2) → AnimationRender — 線の端点アニメーション
- ColorPicker → LineGenerate(color) — 任意色でライン描画