
概要 📖 – 2点を結ぶ直線を生成
Line SOPは、始点 Point A と終点 Point B の 2 点を結び、指定した数の頂点を持つ直線プリミティブを生成する基礎ジオメトリ SOPです。Number of Points で線上の頂点密度を制御でき、Sweep SOP のパスや Skin SOP の入力プロファイル、ラインアートのベースとして汎用的に活用されます。
主な用途 🎯
- Sweep SOP の経路 (Path) としての利用で、断面プロファイルを線に沿って押し出して柱・パイプ・チューブ形状を 1 ノードから生成
- Skin SOP の入力プロファイルとして、複数の線分をスタックして補間サーフェスを生成し、リボン・帯状ジオメトリを構築
- パーティクル軌跡・トレイルの元データとして、線上の頂点を時間経過に沿って動かして軌跡を可視化
- ガイドライン・補助線・座標軸表示として、シーン内の参照線・寸法線・チャートの軸を生成
- 頂点を細分化してラインアートの素材として活用し、Number of Points で増やした頂点を Transform SOP で変位させて手書き風の曲線・有機的なラインに変換
- Wireframe / 折れ線グラフのベース形状として、線分を複数組み合わせてチャート要素・配線図・回路図的な表現を構築
データフロー 🔄
入力: なし (source SOP)
↓
Point A / Point B で始点と終点の座標を指定 + Number of Points で線上の頂点数を決定
↓
Texture Coordinates で UV 生成を切替
↓
出力: 2 点以上の頂点を持つ線分プリミティブ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
始点と終点の座標 .endpoints 📍
線分の両端を 3 次元空間内のどこに置くかを X / Y / Z 座標で指定するパラメータ群
Point A .pa 🅰️
– Point A (始点) — 線分の始まりの位置を X / Y / Z (pax / pay / paz) のワールド座標で指定
– デフォルトは原点 (0, 0, 0)
Point B .pb 🅱️
– Point B (終点) — 線分の終わりの位置を X / Y / Z (pbx / pby / pbz) のワールド座標で指定
– Point A と同じ位置に設定すると長さ 0 の線になり、ビューポートに何も表示されなくなる点に注意
頂点数の設定 .points_count 🔢
線分を構成する頂点 (Point) の数を制御するパラメータ。後段で頂点を変位させる場合の解像度を決める
Number of Points .points 🔢
– Number of Points (頂点数) — 線分を構成する頂点の総数
– 最小値は 2 (始点と終点のみ)、3 以上に設定すると始点と終点の間に等間隔で中間頂点が追加される
– Sweep SOP のパスや Transform SOP での頂点変位を行う場合は、16 ~ 64 程度に増やしておくと曲げ・歪み表現が滑らかになる
テクスチャ座標 .texture 🖼️
線分の頂点に UV テクスチャ座標を付加するかを指定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
テクスチャ座標を生成しない。UV 属性なしの線分を出力する |
| Unit | .unit |
(0, 1) のテクスチャ座標を各頂点に付加。テクスチャ貼付や Sweep SOP の UV 連動に必要 |
実践アイデア 💡
Example 1: Sweep のパスにする 🏛️
Circle SOP (断面プロファイル) → Sweep SOP ← Line SOP (パス) → Material SOP → Geometry COMP → Render TOP
Line SOP を Sweep SOP のパス入力として使う基本パターンです。Circle SOP で小さな断面プロファイルを作り、Line SOP の Point A → Point B を押し出し方向に設定すると、円形断面が直線に沿って押し出されて柱・パイプ・棒状ジオメトリが 1 パスで生成できます。Number of Points を増やしておけば後段で頂点を変位させて曲がったパイプにも変形できる、汎用性の高い構築フローです。
- Circle SOP を作成し、
Radiusを小さな値 (例0.1) に設定して断面プロファイルにする - Line SOP を作成し、
Point Aを(0, 0, 0)、Point Bを(0, 2, 0)に設定して縦方向の押し出しパスにする Number of Pointsを16に設定して、後段での曲げ変位に備える- Sweep SOP を作成し、Circle SOP を 1 番入力 (Cross Section)、Line SOP を 2 番入力 (Backbone) に接続
- Material SOP / Geometry COMP / Render TOP に流して可視化
Example 2: 手書き風ラインアート ✍️
Line SOP (Number of Points=64) + Noise CHOP → Transform SOP (頂点変位) → Material SOP → Geometry COMP
Line SOP の Number of Points を 64 に増やし、Noise CHOP の出力を Transform SOP の頂点位置オフセットに流し込むと、まっすぐな直線が手書き風・有機的なラインアートに変形できます。Noise の周波数とアンプリチュードを調整することで、ふわふわしたカーブから稲妻のようなギザギザの線まで自在に作れる、ジェネレーティブグラフィックス頻出パターンです。
- Line SOP を作成し、
Number of Pointsを64に設定して頂点を増やす - Noise CHOP を作成し、64 サンプル分のノイズチャンネルを生成 (Translate の x / y / z 用に 3 チャンネル)
- Transform SOP の Point Transformations から Noise CHOP の出力を頂点座標オフセットに接続
Texture CoordinatesをUnitにしてテクスチャ貼付に対応- Material SOP でラインの太さ・色を整え、Render TOP に流す
Example 3: Skin で帯状に補間 🎗️
Line SOP × 4 (Z 位置をずらす) → Merge SOP → Skin SOP → Material SOP → Geometry COMP
複数の Line SOP を異なる Z 位置で並べて Merge SOP でまとめ、Skin SOP に渡すと隣接する線分を補間したリボン状・帯状のサーフェスが生成されます。Z 方向に少しずつずらした線分を 4 本並べれば、流れるリボン・棚板・階段状のジオメトリが 1 パスで構築できる、サーフェス生成系の頻出パターンです。
- Line SOP を 4 本作成し、各
Point A/Point Bの Z 座標を0/0.5/1.0/1.5のように少しずつずらす - Merge SOP で 4 本の Line SOP をまとめる
- Skin SOP に接続し、線分間を補間してサーフェスを生成
- Material SOP で見た目を整え、Geometry COMP に組込んで Render TOP に流す
関連オペレータ 🔗
類似機能OP 🔍
- Circle SOP — 2D 円・楕円・円弧プロファイル生成 (Line が直線、Circle が曲線)
- Rectangle SOP — 矩形プロファイル生成 (Line が 1 本の線、Rectangle が 4 辺で囲まれた矩形)
- Grid SOP — 格子状の線・面プロファイル生成 (Line が単一線、Grid が複数線を格子状に配置)
- Add SOP — 個別頂点指定によるポリゴン・線生成 (Line が 2 点指定の直線、Add がより自由な多点指定)
- Polyspline SOP — スプライン曲線プロファイル生成 (Line が直線専用、Polyspline が曲線専用)
組み合わせ推奨OP 🔄
- Sweep SOP — Line をパス入力として断面プロファイルを線に沿って押し出し
- Skin SOP — 複数 Line をスタックして補間サーフェスを生成
- Transform SOP — Line 出力後の頂点位置変位 (Noise CHOP と組合せて有機的なラインに変形)
- Resample SOP — Line の頂点を等間隔リサンプリングして分割数を後調整
- Copy SOP — Line を多数コピー・分散配置して放射状・パターン状のラインアートを生成
- Carve SOP — Line の一部区間を切り出し、Sweep のパスの一部分のみ使う用途
- Trail SOP — Line の頂点位置の時間履歴を可視化して軌跡サーフェスに変換
前処理・後処理SOP 🎯
- 前処理: Circle SOP、Rectangle SOP、Grid SOP
- 後処理: Transform SOP、Sweep SOP、Skin SOP、Resample SOP、Copy SOP、Convert SOP
Info CHOP情報 📊
Line SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 線が表示されない
✅ Solution:
Point AとPoint Bが同じ位置に設定されていないか確認 (両者が一致すると長さ 0 の線になり描画されない)- 出力を Geometry COMP に接続して Render TOP でレンダリングしているか確認
- ビューポートのワイヤーフレーム / ライン表示が有効か確認 (線分プリミティブはワイヤーフレーム表示でのみ視認できることが多い)
❌ Problem: テクスチャを貼っても UV が反映されない
✅ Solution:
Texture CoordinatesがOffになっていないか確認 (Off だと UV が生成されない)Unitに設定すると(0, 1)の UV が頂点に付加され、テクスチャを線方向にマッピングできる- より複雑な UV マッピングが必要な場合は後段に Texture SOP を入れて UV を再生成
❌ Problem: Sweep SOP のパスとして使うと結果が階段状になる
✅ Solution:
Number of Pointsが2のままだと中間頂点がなく、パスを曲げても直線のままになるNumber of Pointsを16~64程度に増やして頂点密度を上げる- 後段に Resample SOP を入れて等間隔リサンプリングし、Sweep の品質を整える
❌ Problem: Number of Points を増やしても見た目が変わらない
✅ Solution:
- Line SOP 単体では中間頂点を追加しても見た目は同じ直線のため、変化を確認するには後段で頂点を変位させる処理が必要
- Transform SOP / Noise CHOP / POP 系で頂点座標にオフセットをかけると、追加された中間頂点が個別に動いて曲線・有機的な形状に変化
- Info CHOP を Line SOP に接続して
num_pointsの値が変わっていることを確認 (値が反映されない場合はパラメータ更新が伝播していない)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

