
概要 📖 – 断面をつないで面を張る
Polyloft SOPは、複数の断面となる面や点群を縫い合わせて、一枚のポリゴン面を張る SOPです。輪切り状の曲線を並べて筒や帯のような形状を作る、ロフト(lofting)と呼ばれる手法を担当します。
主な用途 🎯
- 複数の断面となる曲線をつないで一枚のポリゴン面を生成
- 点群の集合を断面ごとに縫い合わせて立体形状を構築
- 輪切り形状からトンネル・パイプ・筒状ジオメトリを作成
- 向きや開始点がバラついた断面でも近接点から自動でつなぐ
- 頂点アニメーションの土台となる中間メッシュの生成
データフロー 🔄
入力: 複数の断面(面または点グループ)
↓
縫い合わせ処理(隣り合う断面の頂点を三角形で接続)
↓
出力: つながった一枚のポリゴンメッシュ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Polyloft Page 📋
縫い合わせ設定 🧵
Connect Closest Ends .proximity 🔗
– Connect Closest Ends (近い端点から接続) — 最も近い 2 点から縫い始め、断面の向きや開始頂点がバラバラでも自動でそろえて接続します。
– 断面の並び順を手で整えなくても、きれいにつながりやすくなります。
Consolidate Points .consolidate 🔧
– Consolidate Points (点の統合) — 縫い合わせる前に、近すぎる点同士をひとつにまとめます。
– 断面の境目で点が重なってできる不要な三角形を減らせます。
Distance .dist 📏
– Distance (許容距離) — 点を統合するかどうかを判定するしきい値の距離です。
– この距離より近い点同士が、ひとつの点にまとめられます。
Minimize .minimize 📐
Minimize (距離の最小化方式) — どの距離を最小にするように頂点をつなぐかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| 2-Point Distance | .point2 |
2 点間の距離を基準につなぐ標準の方式 (デフォルト) |
| 3-Point Distance | .point3 |
3 点間の距離を基準につなぐ方式。面の交差を避けやすくなります |
U Wrap .closeu 🔄
U Wrap (U方向で閉じる) — 各断面そのものを輪のように閉じるかどうかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .nonewu |
断面を閉じない (帯状のまま) |
| On | .wu |
各断面の最後と最初をつないで輪状に閉じる |
V Wrap .closev 🔁
V Wrap (V方向で閉じる) — 最初の断面と最後の断面をつなぐかどうかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .nonewv |
両端の断面をつながない (筒の口が開いたまま) |
| On | .wv |
最初と最後の断面をつないでループ状にする |
Method .method 🎛️
Method (縫い合わせ方式) — どの単位で断面を縫い合わせるかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Faces | .faces |
面 (face) の集合を、それぞれの制御頂点でつないで縫い合わせる |
| Points | .points |
点の集合を断面とみなして縫い合わせる |
グループ設定 🏷️
Create Polygon Group .creategroup ✅
– Create Polygon Group (ポリゴングループを作成) — 生成された三角形をひとつのグループにまとめます。
– 後段で生成面だけを選んで処理したいときに役立ちます。
Name .polygroup 🔤
– Name (グループ名) — 上の Create Polygon Group を On にしたとき、作成するグループの名前を指定します。
入力と保持 📥
Group .group 🎯
– Group (対象グループ) — ロフトの対象とする面の一部だけを絞り込みます。
– 空欄のときは入力されたすべての面が対象になります。
Keep Primitives .prim 📦
– Keep Primitives (断面を保持) — 縫い合わせた後も、元の断面形状を残します。
– 生成面と元の断面を同時に表示したいときに使います。
点グループ指定 🔢
Method を Points にしたとき、断面となる点グループの並びを指定します:
- Point Group:
point— 縫い合わせる点グループの並びを指定します - Point Group:
point0group— 各断面となる点グループそのものを指定します
実践アイデア 💡
Example 1: 輪切り曲線から筒を作る 🛢️
Circle SOP → Transform SOP (複製で高さ違い) → Merge SOP → Polyloft SOP (V Wrap On)
高さ違いに並べた複数の円を Polyloft SOP で縫い合わせ、パイプや筒のような立体を作る基本フロー。V Wrap を On にすると上下の断面もつながり閉じた形状になります。
- Circle SOP で断面となる円を作成し、高さを変えて複数並べる
- Merge SOP で断面をひとつにまとめる
- Polyloft SOP に通して断面同士を縫い合わせる
- V Wrap を On にして両端をつなぎ、閉じた筒形状にする
Example 2: 点群を断面として縫う 🧵
Add SOP (点群) → Polyloft SOP (Method=Points) → Facet SOP
面ではなく点の集合を断面として扱い、Method を Points に設定して縫い合わせる例。スキャンデータやセンサー由来の点列から面を起こす用途に向いています。
- 断面ごとの点グループを用意し Method を Points に設定
- Point Group の並びで縫い合わせる順序を指定して面を生成
Example 3: 向きがバラついた断面の接続 🔗
Line SOP (複数) → Merge SOP → Polyloft SOP (Connect Closest Ends On)
開始点や向きがそろっていない複数の曲線を Connect Closest Ends で自動的に近い端点から接続し、ねじれを抑えて面を張る例。手作業で断面をそろえる手間を減らせます。
- 向きの異なる複数の Line SOP を Merge SOP でまとめる
- Connect Closest Ends を On にして近い点から縫い始める
Example 4: 重なり点をまとめて軽量化 🔧
Polyloft SOP (Consolidate Points On) → Polyreduce SOP
断面の境目で点が密集してしまう場合に Consolidate Points と Distance を使って近接点を統合し、無駄な三角形を減らして軽い面を生成する例。
- Consolidate Points を On にし Distance で統合範囲を調整
- 後段でさらにポリゴン数を削減したいときは Polyreduce SOP を組み合わせる
関連オペレータ 🔗
類似機能OP 🔍
- Skin SOP — 断面となる曲線群に曲面 (skin) を張る SOP。Polyloft がポリゴン面で縫うのに対し、Skin は滑らかなサーフェスを生成
- Bridge SOP — 2 つの面の境界をつないで橋渡しする SOP。穴あき形状の縁同士を接続する用途で近い役割
- Polystitch SOP — 隣り合うサーフェスの境界を縫い合わせて隙間を埋める SOP。継ぎ目処理という点で機能が近い
組み合わせ推奨OP 🔄
- Line SOP — 断面となる直線・曲線を前段で生成して Polyloft に渡す
- Circle SOP — 輪切り状の円を断面として並べ、筒やパイプを作る土台にする
- Convert SOP — 曲線の種類をそろえ、Polyloft が扱える形式に整える前処理
- Facet SOP — 縫い合わせた面の法線や頂点を整え、表示や陰影を整える後処理
前処理・後処理SOP 🎯
- 前処理: Line SOP、Circle SOP、Grid SOP、Convert SOP、Merge SOP
- 後処理: Facet SOP、Polyreduce SOP、Subdivide SOP、Convert SOP
Info情報 📊
Polyloft SOP は SOP 共通の情報チャンネルを通じて、ジオメトリの統計や状態を取得できます。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数num_vertices: 出力ジオメトリの総頂点数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
cook_time: 直近のクックに要した時間 (ミリ秒)total_cooks: このオペレータがクックされた累計回数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 断面がねじれてつながる
✅ Solution:
Connect Closest Endsを On にして近い端点から縫い始める- 前段で各断面の開始点と向きを Sort SOP 等でそろえる
Minimizeを3-Point Distanceにして交差を避ける
❌ Problem: 面が張られない・隙間ができる
✅ Solution:
Methodが入力 (面か点か) と合っているか確認- 断面の数が 2 つ以上あり、順番どおりに並んでいるか確認
- 点を断面に使う場合は
Point Groupの並びが正しいか確認
❌ Problem: 境目に余分な三角形ができる
✅ Solution:
Consolidate Pointsを On にして近接点を統合Distanceを上げて統合範囲を広げる- 後段で Facet SOP を使い重複点を整理
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

