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

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

Convert SOP のジオメトリ型変換機能を示す図

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

概要 📖 – ジオメトリ型変換と再構成

Convert SOPは、入力ジオメトリを Polygon / NURBS / Bezier / Particles 等の別の型へ変換し、メッシュ密度・接続性・パーティクル描画形状も再構成する SOPです。From Type と Convert to で変換元・変換先を指定し、Level of Detail / Divisions per Span でスプライン → メッシュの密度を、Connectivity でメッシュ接続パターンを、Particle Type でパーティクル描画形状をそれぞれ制御できます。

主な用途 🎯

  • プリミティブ (Sphere / Tube / Circle 等) のポリゴン化で、編集不可な原始プリミティブを Polygon Mesh に展開し、頂点・法線・UV を後段で自由に編集可能にする
  • NURBS / Bezier ⇆ Polygon の相互変換で、滑らかなスプライン曲面とポリゴンメッシュを Level of Detail 設定で密度調整しながら相互に変換する
  • パーティクルの描画形状化で、Particle SOP の出力を Render as Lines または Render as Point Sprites モードでレンダリング可能なジオメトリに変換する
  • From Type / Convert to の型フィルタ変換で、混在ジオメトリ入力から特定の型 (例: Mesh のみ) を抽出して別の型 (Polygon / NURBS Surface 等) に揃え、後段処理を均質化する
  • Trimmed Surface の生成で、平面 NURBS / Bezier カーブを Trimmed NURBS Surface / Trimmed Bezier Surface に変換し、視覚的に綺麗な切り抜き曲面を作成する
  • Connectivity による接続パターンの再構成で、Rows / Columns / Triangles / Quadrilaterals / Alternating Triangles 等から接続規則を選んでメッシュトポロジを再構築する

データフロー 🔄

入力: 任意 SOP のジオメトリ (Polygon / NURBS / Bezier / Particles / Sphere / Tube / Circle 等の混在可)

From Type で対象タイプを絞り込み、Convert to で目標タイプを指定、Connectivity / Level of Detail / Divisions per Span / Particle Type で再構成パラメータを設定

出力: 変換後のジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

対象グループの絞り込み 🎯

Group .group 🎯
– 入力ジオメトリに Group が定義されている場合、ここで指定したグループ名のプリミティブのみを変換対象にする
– パターンマッチング (*[1-10] 等) が使用可能
– 空欄なら全プリミティブが変換対象になる

変換元タイプ (From Type) .fromtype 🔽

変換の対象とする入力ジオメトリの型を選択するメニューパラメータ。デフォルトは All Types。

項目 内部名 説明
All Types .all 入力ジオメトリ内のすべての型を変換対象にする (デフォルト)
Sphere .sphere Sphere プリミティブのみを変換対象
Tube .tube Tube プリミティブのみを変換対象
Particles .part Particle プリミティブのみを変換対象
Meta-ball .metaball Meta-ball プリミティブのみを変換対象
Mesh .mesh Mesh プリミティブのみを変換対象
Bezier Curve .bezcurve Bezier カーブのみを変換対象
Bezier Surface .bezsurf Bezier サーフェスのみを変換対象
NURBS Curve .nurbcurve NURBS カーブのみを変換対象
NURBS Surface .nurbsurf NURBS サーフェスのみを変換対象
Circle .circle プリミティブ Circle のみを変換対象
Triangle Strip .tristrip Triangle Strip プリミティブのみを変換対象
Triangle Fan .trifan Triangle Fan プリミティブのみを変換対象

変換先タイプ (Convert to) .totype 🔼

From Type で選択されたジオメトリを変換する目標タイプを選択するメニューパラメータ。デフォルトは Polygons。

項目 内部名 説明
Mesh .mesh Mesh プリミティブに変換
Bezier Curve .bezcurve Bezier カーブに変換
Bezier Surface .bezsurf Bezier サーフェスに変換
NURBS Curve .nurbcurve NURBS カーブに変換
NURBS Surface .nurbsurf NURBS サーフェスに変換
Circle .circle プリミティブ Circle に変換 (Skeleton / Arm / Limb SOP との連携で利用)
Trimmed Bezier Surface .trimbezsurf Trimmed Bezier サーフェスに変換 (平面カーブ入力時に綺麗な切り抜き曲面を生成)
Trimmed NURBS Surface .trimnurbsurf Trimmed NURBS サーフェスに変換 (平面カーブ入力時に綺麗な切り抜き曲面を生成)
Particles .part Particle プリミティブに変換

※ 注意: すべてのジオメトリが任意の型に変換できるわけではありません。例えば三角化された Polygon サーフェスから単一の NURBS サーフェスへの変換、または Mesh の球からプリミティブ Sphere への変換は行えません。Bezier カーブから NURBS カーブのように形状が保存される変換もあれば、平面でない NURBS / Bezier カーブを Trimmed Surface に変換すると非トリム曲面に置き換わるなど、入力形状によって挙動が変化します。

引用元: 公式 docs

接続パターン (Connectivity) .surftype 🔗

生成されたサーフェスのポイント接続方法を選択するメニューパラメータ

項目 内部名 説明
Rows .rows 水平方向のラインのみを生成
Columns .cols 垂直方向のラインのみを生成
Rows and Columns .rowcol 行・列の両方を生成 (ワイヤフレーム表示では四角形に見えるが、プリミティブ型がポリゴンの場合は全ポリゴンが開いた状態)
Triangles .triangles 三角形でメッシュを構築
Quadrilaterals .quads 四角形 (Quadrilaterals) でメッシュを構築 (デフォルト)
Alternating Triangles .alttriangles 向きが交互に変わる三角形を生成 (Triangles オプションに類似だが向きが対向)

Level of Detail Page 📐

U / V 方向の密度 📐

U .lodu ↔️
– 生成されるジオメトリの U 方向ポイント / CV 数を制御するレベル指定
– NURBS サーフェスをポリゴンメッシュに変換する場合、1 なら NURBS の近似、2 なら非常に密なポリゴンメッシュになる
primdist() 式を使って Level of Detail をカメラとの距離で動的に変化させると、近づくと密に・離れると粗くなる LOD 制御が可能

V .lodv ↕️
– 生成されるジオメトリの V 方向ポイント / CV 数を制御するレベル指定
– U と同様に 1 で近似・2 以上で高密度になる
– U と V を分けて指定することで U 方向だけ細かく V 方向は粗くするといった非対称メッシュも作成可能

Trim-Curve .lodtrim ✂️
– サーフェスのトリム部分を変換する際の Level of Detail
– 暗黙の定数 1 ではなく、ここで指定した値が Trim 曲線部分に適用される


Divisions per Span Page 🧱

スパンあたりの分割数 🧱

U .divu ↔️
– Divisions per Span モード時、U 方向の 1 スパンあたりの分割数を指定
– Level of Detail とは異なり、スプラインの 1 スパン区間を何分割するかで密度を制御する

V .divv ↕️
– Divisions per Span モード時、V 方向の 1 スパンあたりの分割数を指定
– U と同様にスパン単位で分割数を制御

Trim-Curve .divtrim ✂️
– Divisions per Span モード時、Trim 曲線部分の 1 スパンあたりの分割数を指定
– 暗黙の 1 ではなくここで指定した分割数が Trim 部分に適用される

U Order .orderu 🔢
– スプライン型に変換する際の U 方向の基底関数の次数 + 1 を指定
– NURBS / Bezier への変換時に補間の滑らかさを制御するパラメータ

V Order .orderv 🔢
– スプライン型に変換する際の V 方向の基底関数の次数 + 1 を指定
– U Order と組み合わせて変換後のスプラインサーフェスの滑らかさを決める

Preserve Original .new 🧷
– オンにすると変換後ジオメトリと一緒に元のジオメトリも保持される
– 元データと変換結果を同時に下流へ流したい場合 (比較・参照用) に有効

Interpolate Through Hulls .interphull 🌀
– ポリゴンの面 / グリッドを NURBS / Bezier のサーフェスやカーブに変換する際に適用されるオプション
– オンにすると生成されるカーブは元のポリゴンと同じトポロジを保つ
– オフにするとポリゴンのポイントは新しいカーブ / サーフェスを定義するためのハル (制御点群) として使用される

Particle Type .prtype
– 変換先が Particles のときにパーティクルがどのように描画されるかを選択
– 詳細は下記表を参照

Particle Type の選択肢 .prtype

Particle Type メニューパラメータの描画方式を選択

項目 内部名 説明
Render as Lines .lines 各パーティクルを 2 点ラインとして描画し、長さはパーティクルの速度から決定される。速度が無い場合は 1 ピクセル分の点として描画
Render as Point Sprites .pointprites 各パーティクルをカメラに正対する正方形ピクセル群として描画 (Point Sprite MAT と併用)。サイズは Point Sprite MAT のパラメータと pscale 属性で決定され、テクスチャ座標 (0,0)(1,1) が自動生成される

実践アイデア 💡

Example 1: Sphereをメッシュ化し頂点編集 🌐

Sphere SOP (Primitive type) → Convert SOP (From Type=Sphere, Convert to=Polygons, Level of Detail で U/V を調整) → Point SOP / Transform SOP で頂点編集 → Material SOP → Render TOP

TouchDesigner の Sphere SOP はデフォルトでプリミティブ Sphere を生成しますが、このままでは個別の頂点を編集できません。Convert SOP を挟んで From TypeSphereConvert toPolygons (デフォルト) に設定し、Level of Detail PageU / V でメッシュ密度を調整することで、ポリゴンメッシュ化された Sphere の各頂点を後段の Point SOPTransform SOP で自由に編集できるようになります。

  1. Sphere SOP を配置し、Primitive Type をデフォルトの Primitive のまま使用
  2. 下流に Convert SOP を接続し、From TypeSphereConvert toPolygons に設定
  3. Level of Detail PageU / V12 程度で調整 (大きいほど密なメッシュ)
  4. ConnectivityQuadrilaterals (デフォルト) または Triangles から目的に応じて選択
  5. 出力を Point SOPTransform SOP に接続し、頂点単位の変形が反映されることを確認

Example 2: Particleを点スプライトで描画 ✨

Particle SOP → Convert SOP (From Type=Particles, Convert to=Particles, Particle Type=Render as Point Sprites) → Geometry COMP → Point Sprite MAT → Render TOP

Particle SOP が出力する Particle プリミティブをそのまま Geometry COMP に渡しても描画はできますが、Point Sprite として点ごとにテクスチャを貼ったり半透明合成したい場合は Convert SOPParticle TypeRender as Point Sprites に設定し、Point Sprite MAT と組み合わせて描画します。Render as Lines モードを選ぶと、各パーティクルが速度ベクトルに沿った 2 点ラインとして描画されるため、軌跡風の表現が手軽に得られます。

  1. Particle SOP を配置し、ソース・フォース・寿命などの基本設定を済ませる
  2. 下流に Convert SOP を接続、From TypeParticlesConvert toParticles に設定
  3. Divisions per Span PageParticle TypeRender as Point Sprites に切替
  4. Geometry COMP に出力を渡し、Material として Point Sprite MAT をアサイン
  5. Render TOP でカメラに正対する Sprite として描画されることを確認 (軌跡演出にしたい場合は Render as Lines に切替)

Example 3: NURBS面を低密度確認→高密度書出 🧊

NURBS Surface 入力 → Convert SOP (From Type=NURBS Surface, Convert to=Polygons, U/V=可変) → 編集用途は U=V=1、書き出し時は U=V=2 → Material SOP

滑らかな NURBS Surface 入力をリアルタイム編集用にはポリゴン密度を低く抑え、最終書き出しのみ高密度メッシュ化したい用途のパターンです。Convert SOPLevel of Detail PageU / V をプロジェクト中で式駆動 (例: Constant CHOP12 切替) すると、編集時は軽量・出力時のみ重い変換に切り替えられます。

  1. NURBS サーフェスを生成する入力 (例: Sphere SOPPrimitive TypeNURBS に設定) を用意
  2. Convert SOP を接続し、From TypeNURBS SurfaceConvert toPolygons に設定
  3. 編集中は Level of Detail PageU / V1 に設定して軽量プレビュー
  4. 最終出力時のみ U / V2 以上に上げて高密度メッシュを生成
  5. 値を Constant CHOP / Custom Parameter から駆動して編集モードと出力モードを 1 クリック切替できるようにする

関連オペレータ 🔗

類似機能OP 🔍

  • Basis SOP — NURBS / Bezier の基底関数 (knot vector / order) を再構築する SOP (Convert は型自体を変えるのに対し、Basis は同じ型のままパラメータ化を変更)

組み合わせ推奨OP 🔄

  • Sphere SOP — Primitive Sphere を生成、Convert で Polygons / Mesh / NURBS Surface 等に変換する起点
  • Particle SOP — Particle プリミティブを Convert で Render as Lines / Point Sprites に変換して描画
  • Material SOP — Convert で生成されたポリゴンメッシュにマテリアルをアサインしてレンダリング
  • Point SOP — ポリゴン化後の頂点位置 / 法線 / カラーを編集

前処理・後処理SOP 🎯


Info CHOP情報 📊

Convert 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: Convert SOP に入れても出力が変わらない / 想定の型にならない
✅ Solution:

  • From Type が入力の実際のプリミティブ型と一致しているか確認 (混在入力なら All Types が安全)
  • 公式 docs の注記どおり、すべての型変換が可能なわけではない (例: 三角化された Polygon 面 → 単一 NURBS サーフェスは不可)。型の組み合わせが対応外の場合は出力されない
  • Group パラメータに余分なパターンが残っていないか確認 — Group 指定が一致しないと変換対象がゼロになる

❌ Problem: NURBS / Bezier → Polygons 変換でメッシュが粗い / 密すぎる
✅ Solution:

  • Level of Detail PageU / V を上げてメッシュ密度を増やす (1 は近似、2 以上で高密度)
  • スパン単位で細かく制御したい場合は Divisions per Span PageU / V を使う
  • Trim 曲線部分の密度は Trim-Curve パラメータで別途調整する

❌ Problem: Convert to=Trimmed NURBS / Bezier Surface で期待した切り抜き曲面にならない
✅ Solution:

  • 入力カーブが平面 (planar) かどうか確認 — 平面でないカーブの場合は Trimmed Surface ではなく非トリム曲面が生成される
  • 平面性が崩れている場合は前段で Transform SOP 等で揃える
  • Trim 曲線の Level of Detail (lodtrim) を上げて Trim エッジの解像度を上げる

❌ Problem: Particle Type=Point Sprites にしても何も描画されない / 期待のサイズにならない
✅ Solution:

  • Convert toParticles になっているか確認 (Particle Type は Particles 変換時のみ有効)
  • Geometry COMP にアサインしたマテリアルが Point Sprite MAT になっているか確認
  • サイズは Point Sprite MAT のパラメータと点属性 pscale で決まるため、点に pscale を持たせるか MAT 側のサイズパラメータを調整する

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました