Polypatch SOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Polypatch SOP のポリゴン面生成機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 曲線からポリゴン面を張る

Polypatch SOPは、格子状に並んだ制御点を補間して、なめらかなポリゴン面を張る SOPです。スプラインの基底に沿って制御点の間を埋め、分割数や端の閉じ方を指定して面の形を整えます。

主な用途 🎯

  • 格子状に並んだ制御点からポリゴンメッシュを生成
  • 曲線や輪郭を補間してなめらかな面を作成
  • U方向・V方向で面を筒状・球状に閉じて立体化
  • 面の細かさを分割数で調整して軽い面と滑らかな面を切替
  • 頂点アニメーションや変形の土台となる中間メッシュの生成

データフロー 🔄

入力: 格子状の制御点や曲線

補間処理(スプライン基底に沿ってポリゴンを生成)

出力: なめらかなポリゴンメッシュ

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Polypatch Page 📋

入力の絞り込み 🎯

Group .group 🎯
Group (対象グループ) — 入力のうち面を張る対象を一部だけに絞り込みます。
– 空欄のときは入力されたすべての形状が対象になります。

Basis .basis 📐

Basis (スプラインの種類) — 制御点の間を補間するときの曲線のタイプを選びます。

項目 内部名 説明
Cardinal .cardinal 制御点そのものを通る曲線で補間するタイプ
BSpline .bspline 制御点に引き寄せられるなめらかな曲線で補間するタイプ

Connectivity .connecttype 🔗

Connectivity (接続方法) — 生成した面の点をどうつなぐかを選びます。

項目 内部名 説明
Rows .rows 横方向の線を作る。開いたポリゴンになります
Columns .cols 縦方向の線を作る。開いたポリゴンになります
Rows and Columns .rowcol 縦横の両方の線を作る。すべて開いたポリゴン
Triangles .triangles 三角形で面を構成する
Quadrilaterals .quads 四角形で面を構成する標準の接続 (デフォルト)
Alternating Triangles .alttriangles 向きが交互になる三角形を生成。Triangles に近い接続
Inherit from Source .inheritconnect 入力した形状と同じつなぎ方を出力面に引き継ぐ

U Wrap .closeu 🔄

U Wrap (U方向で閉じる) — U方向の端と端をつないで輪のように閉じるかどうかを選びます。

項目 内部名 説明
Off .nonewu U方向で閉じない (開いたまま)
On .wu U方向の端どうしをつないで輪状に閉じる

V Wrap .closev 🔁

V Wrap (V方向で閉じる) — V方向の端と端をつないで輪のように閉じるかどうかを選びます。

項目 内部名 説明
Off .nonewv V方向で閉じない (開いたまま)
On .wv V方向の端どうしをつないで輪状に閉じる

U端の固定(始) .firstuclamp 📌

U Clamp (First) (U方向の始端を固定) — U方向の最初の端を制御点に合わせて固定するかを選びます。

項目 内部名 説明
Off .firstuclampoff U方向の始端を固定しない
On .firstuclampon U方向の始端を固定する
If primitive does .firstuclampifprim 入力の形状が固定している場合だけ始端を固定する

U端の固定(終) .lastuclamp 📌

U Clamp (Last) (U方向の終端を固定) — U方向の最後の端を制御点に合わせて固定するかを選びます。

項目 内部名 説明
Off .lastuclampoff U方向の終端を固定しない
On .lastuclampon U方向の終端を固定する
If primitive does .lastuclampifprim 入力の形状が固定している場合だけ終端を固定する

V端の固定(始) .firstvclamp 📌

V Clamp (First) (V方向の始端を固定) — V方向の最初の端を制御点に合わせて固定するかを選びます。

項目 内部名 説明
Off .firstvclampoff V方向の始端を固定しない
On .firstvclampon V方向の始端を固定する
If primitive does .firstvclampifprim 入力の形状が固定している場合だけ始端を固定する

V端の固定(終) .lastvclamp 📌

V Clamp (Last) (V方向の終端を固定) — V方向の最後の端を制御点に合わせて固定するかを選びます。

項目 内部名 説明
Off .lastvclampoff V方向の終端を固定しない
On .lastvclampon V方向の終端を固定する
If primitive does .lastvclampifprim 入力の形状が固定している場合だけ終端を固定する

Output Divisions .divisions 📏

Output Divisions (出力の分割数) — 出力する面の細かさを決めます。分割数を増やすほどなめらかな面になります。

項目 内部名 説明
X .divisionsx 横 (X) 方向の分割数
Y .divisionsy 縦 (Y) 方向の分割数

出力形式 📤

Output Polygons .polys 📦
Output Polygons (ポリゴンで出力) — メッシュではなく、ポリゴンの集合として強制的に出力します。
– 後段でポリゴンを前提に処理したいときに使います。


実践アイデア 💡

Example 1: 格子から曲面を作る 🌐

Grid SOP → Transform SOP (一部の点を移動) → Polypatch SOP (BSpline)

格子状に並んだ制御点を Polypatch SOP に通し、BSpline 基底でなめらかに補間して曲面を作る基本フロー。分割数を増やすほど滑らかな面になります。

  1. Grid SOP で格子状の制御点を用意する
  2. 一部の点を動かして起伏をつける
  3. Polypatch SOP に通し Basis を BSpline にしてなめらかに補間する
  4. Output Divisions を上げて面の細かさを調整する

Example 2: 筒状の面を閉じる 🛢️

Grid SOP → Polypatch SOP (U Wrap On)

U Wrap を On にして U方向の端どうしをつなぎ、開いた面を筒状に閉じる例。さらに V Wrap も On にすればドーナツ状のループ形状になります。

  • 格子状の制御点を Polypatch SOP に入力する
  • U Wrap を On にして U方向を輪状に閉じ筒形状にする

Example 3: 入力形状の接続を継承 🔗

Convert SOP → Polypatch SOP (Inherit from Source)

Connectivity を Inherit from Source にして、入力した形状のつなぎ方をそのまま出力面に引き継ぐ例。元のメッシュ構造を保ったまま面を張り直したいときに向いています。

  • 前段で Convert SOP を使い形式をそろえる
  • Connectivity を Inherit from Source にして元の接続を継承する

Example 4: 三角形で軽い面を出す 🔺

Grid SOP → Polypatch SOP (Connectivity=Triangles) → Facet SOP

Connectivity を Triangles にして三角形のみで面を構成し、後段の Facet SOP で法線を整えて表示や陰影をきれいにする例。レンダリングで扱いやすい軽量な面が得られます。

  • Connectivity を Triangles にして三角形で面を構成する
  • 後段で Facet SOP を使い法線をそろえる

関連オペレータ 🔗

類似機能OP 🔍

  • Polyloft SOP — 複数の断面を縫い合わせて一枚のポリゴン面を張る SOP。面を補間して生成する点で役割が近い
  • Skin SOP — 断面となる曲線群に滑らかな曲面 (skin) を張る SOP。Polypatch がポリゴンで張るのに対し曲面を生成
  • Polyspline SOP — ポリゴンをスプライン曲線で補間してなめらかにする SOP。補間で形を整える点で機能が近い

組み合わせ推奨OP 🔄

  • Grid SOP — 格子状の制御点を前段で生成し Polypatch に渡す土台にする
  • Convert SOP — 入力の種類をそろえ、Polypatch が扱える形式に整える前処理
  • Facet SOP — 生成した面の法線や頂点を整え、表示や陰影を整える後処理
  • Subdivide SOP — 張った面をさらに細分化してなめらかさを高める後処理

前処理・後処理SOP 🎯


Info情報 📊

Polypatch 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:

  • Output Divisions の X・Y を上げて分割数を増やす
  • BasisBSpline にしてなめらかに補間する
  • 後段で Subdivide SOP を使いさらに細分化する

❌ Problem: 面が閉じず端が開いてしまう
✅ Solution:

  • U Wrap を On にして U方向の端をつなぐ
  • V Wrap を On にして V方向の端をつなぐ
  • 端を制御点に合わせたいときは U Clamp / V Clamp を On にする

❌ Problem: 面の向き・陰影がおかしい
✅ Solution:

  • Connectivity が用途 (三角形か四角形か) に合っているか確認
  • 後段で Facet SOP を使い法線をそろえる
  • 入力の接続を保ちたいときは Inherit from Source を選ぶ

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました