ノード一覧に戻る

ライン

line_generate

Bresenham アルゴリズムで2点間に直線を描画します

確認済み
解説あり

入力ポート

名前型説明
色
color
Color
線の色(接続時はパラメータより優先)

出力ポート

名前型説明
画像
output
Image
生成されたライン画像

パラメータ

名前型既定値範囲説明・選択肢
幅
width
Int
641–1024

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

高さ
height
Int
641–1024

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

始点X
x1
Int
00–1024

始点の X 座標

始点Y
y1
Int
00–1024

始点の Y 座標

終点X
x2
Int
630–1024

終点の X 座標

終点Y
y2
Int
630–1024

終点の Y 座標

太さ
thickness
Int
11–64

線の太さ(ピクセル)

色
color
Color
[1,1,1,1]—

線の色(入力ポート未接続時に使用)

概要

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 → ExpressionFloat(sin式) → Remap → LineGenerate(x2) → AnimationRender — 線の端点アニメーション
  • ColorPicker → LineGenerate(color) — 任意色でライン描画
ノード一覧に戻る