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

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

Profile SOP の曲面プロファイル曲線抽出機能を示す図

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

概要 📖 – 曲面の輪郭曲線を抽出

Profile SOPは、NURBS スプライン曲面上のプロファイル曲線を、独立した 3D 曲線または XY 平面ファセットとして抽出する SOPです。抽出方法は Extract(位置と形状を保ったまま 3D 曲線として取り出す)と Remap(XY 平面のパラメトリック平面ファセットとして展開する)の 2 種類から選択でき、Divisions per SpanTolerance 等のフィッティングパラメータで抽出曲線の精度を調整します。

主な用途 🎯

  • NURBS スプライン曲面上のプロファイル曲線を独立した 3D 曲線として取り出す用途で、曲面に貼り付いた輪郭ラインを単体ジオメトリとして扱えるようにする
  • Surfsect SOP のブール演算結果として得られたプロファイルの抽出に使い、曲面同士の交差線をスタンドアロン曲線として後段に流す
  • プロファイルを XY 平面の平面ファセットとして展開(Remap モード)することで、パラメトリック空間での形状解析や 2D 加工データとして扱えるようにする
  • Divisions per Span / Tolerance / Order によるフィッティング精度の調整で、抽出曲線のポイント密度と平滑性を曲面の複雑さに合わせて制御する
  • U Range / V Range によるマッピング領域の指定で、曲面パラメトリック空間の特定範囲だけを対象にプロファイルを再配置する
  • 抽出後の親曲面と元プロファイルの保持・削除制御で、抽出した曲線だけを残すか元の曲面と一緒に下流に渡すかを使い分ける

データフロー 🔄

入力: プロファイル曲線を持つ NURBS スプライン曲面

Method(Extract で 3D 曲線化 / Remap で XY 平面ファセット化)を選択

Mapping Type(Uniform / Chord Length)と U/V Range で領域決定

Smooth Curve / Tolerance / Order でフィッティング精度を調整

出力: 独立した 3D 曲線または XY 平面ファセット

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

対象プロファイルの選択 🎯

Group .group 🎯
– 抽出対象とするプロファイル曲線を、曲面プリミティブの中から指定するためのパターン入力
– プリミティブグループ名や、*.3(全スプライン曲面の 4 番目のプロファイル)のようなプロファイルパターンを記述可能
Pattern Matching 記法に従ったパターンを受け付け、空欄時は対象プロファイルが処理されない

抽出方法 .method 🧭

プロファイルを 3D 曲線として取り出すか、XY 平面のパラメトリック表現として展開するかを選択するメニューパラメータ

項目 内部名 説明
Extract .extract 曲面上のプロファイルを、位置と形状をそのまま保った独立 3D 曲線として取り出す(下記の抽出パラメータでフィッティング精度を制御)
Remap .remap プロファイルを XY 平面上のパラメトリックファセット(平面顔)として展開する(U Range / V Range と Mapping Type で領域を再配置)

抽出精度の設定 🎚️

Parametrically to X Y .parametric 🗺️
– オフ(Fitted): プロファイルは位置と形状が曲面上の元曲線と同一の 3D NURBS 曲線として抽出される(非平面になることもある)
– オン(Extracted Parametrically): プロファイルのパラメトリック画像が XY 平面上の 3D ファセットとして抽出され、ファセットの型(polygon / Bezier / NURBS)と頂点はプロファイルの制御点と一致する
パラメトリック抽出はあくまで解析用途で、空間的な一致は保証されない(再投影には Project SOP を Parametric オプションで併用)

Smooth Curve .smooth 🪶
– 有効時、抽出ポイントを通るようスプラインをフィットして滑らかな曲線にする
パラメトリック抽出(Parametrically to X Y がオン)時は無効化される
– Surfsect SOP のブール演算で生成されたプロファイルなど、フィッティングが重く不要な場合はオフにして処理を高速化

Divisions per Span .sdivs 🔢
– プロファイル上で計算する 1 スパンあたりのポイント数を指定する
– スパンは、ポリゴンでは隣接 CV 間のライン、スプラインでは隣接ブレークポイント間の弧
– 値が大きいほど抽出精度が高くなる(その分計算コストも増加)

Tolerance .tolerance 📐
– 抽出した 3D データに対するフィッティング処理の許容誤差(精度)を指定する
通常は 0.01 未満の値を使用
– 値を小さくするほど元プロファイルへの忠実度が上がるが、計算負荷も上昇

Order .order 🎚️
– 抽出後の 3D 曲線のスプライン次数を指定する
– 曲線の型(Bezier / NURBS)は元の空間曲線から継承されるが、次数はフィット品質を制御するために独立指定
– 元プロファイルがポリゴンの場合、抽出曲線は NURBS 曲線として生成される

Preserve Sharp Corners .csharp 📍
– プロファイル曲線中の鋭角コーナーが補間されるときの精度を制御する
曲率が急変する領域があるプロファイルではオンにする
– コーナー位置で曲線の特徴が丸まらないよう、ブレークポイントとして扱う

曲面と元曲線の保持 💾

Keep Surface .keepsurf 💾
– 抽出後に親曲面(プロファイルを乗せていた NURBS スプライン曲面)を出力に残すかどうかを指定する
– オフ: 抽出曲線のみを出力(親曲面は破棄される)
– オン: 親曲面も出力に残り、抽出曲線と一緒に下流へ流せる

Delete Original Profile .delprof 🗑️
Keep Surface がオンのときに有効
– オン: 親曲面に貼り付いていた元のプロファイルを削除する
– オフ: 親曲面上のプロファイルもそのまま保持され、抽出した独立曲線と元曲面プロファイルが並存する

マッピング方式 .maptype 🗺️

既存のプロファイルを指定領域に再配置・スケーリングする方法を選択するメニューパラメータ(Remap 抽出時に主に効く)

項目 内部名 説明
Uniform .unif 曲面のパラメータ化を考慮せず、プロファイルの空間座標を (U,V) 領域上の点へ一様に変換する(実装が単純で軽量)
Chord Length .chordlen 曲面のパラメータ化を考慮し、空間的特徴とパラメトリック特徴の両方に整合したプロファイルを再計算する(モデル形状を尊重した高品質マッピング)

UV 範囲指定 📏

U Range .urange 📏
– 曲面の U パラメトリック方向のうち、マッピング対象とする領域をパーセンテージで指定する
0-1 のフルレンジ指定で U 方向全域にマッピング
0-1 の範囲に制限されず、外側の値も指定可能(曲面ドメイン外に出たプロファイルは不可視になるが破棄はされない)

V Range .vrange 📏
– 曲面の V パラメトリック方向のうち、マッピング対象とする領域をパーセンテージで指定する
0-1 のフルレンジ指定で V 方向全域にマッピング
– U Range と同様、0-1 範囲外も指定可(範囲外プロファイルは表示されないが、Primitive SOP で再調整可能)


実践アイデア 💡

Example 1: ブール演算結果を曲線化 ✂️

Sphere SOP(NURBS)→ Surfsect SOP(ブール演算でプロファイル生成)→ Profile SOP(Method=Extract, Smooth Curve=OFF)→ Sweep SOP → Material SOP → Geometry COMP

Surfsect SOP の曲面同士のブール演算結果として、交差曲面のプロファイル曲線が親曲面に貼り付いた状態で出力されるパターンです。そのままでは独立した曲線として下流に流せないため、Profile SOP の Extract モードで取り出して 3D 曲線化し、Sweep SOP のバックボーンや Material SOP の輪郭表示に使います。Surfsect は既にきれいなプロファイルを生成しているため Smooth Curve をオフにして再フィッティングを省略します。

  1. 2 つの Sphere SOP / Polypatch SOP 等の曲面を準備し、Surfsect SOP に入力してブール演算結果のプロファイル曲線を生成
  2. Profile SOP に接続し、MethodExtractGroup を空欄または抽出対象プロファイルパターンに設定
  3. Smooth Curve をオフにして Surfsect 生成プロファイルをそのまま取り出す(重いフィッティングを省略)
  4. Keep Surface をオフにして親曲面を破棄、抽出曲線のみを出力
  5. Sweep SOP のバックボーン入力に流して断面プロファイルを押し出し、Material SOP で外観を整える

Example 2: 曲面の文字をXY平面展開 🗺️

Profile-bearing NURBS Surface → Profile SOP(Method=Remap, Mapping Type=Chord Length, U Range=0-1, V Range=0-1)→ Convert SOP → Material SOP → Geometry COMP

曲面に貼り付いたロゴや文字プロファイルを、パラメトリック空間(XY 平面)に展開して 2D の加工データとして扱うパターンです。Profile SOP の Remap モードで Mapping Type に Chord Length を指定すると、曲面のパラメータ化を考慮した整合性の高い 2D 展開ファセットが得られます。レーザー加工データやテクスチャ転写のソースとして後段で使えます。

  1. プロファイル曲線が貼り付いた NURBS スプライン曲面を準備(Trim SOP や Surfsect SOP の結果でも可)
  2. Profile SOP に接続し、MethodRemapParametrically to X Y をオンに設定
  3. Mapping TypeChord Length に設定して曲面パラメータ化を尊重したマッピングに切り替え
  4. U Range / V Range0-1 のフルレンジに指定して曲面全域からプロファイルを抽出
  5. 出力された XY 平面ファセットを Convert SOP でポリゴン化し、2D 加工データ用途のジオメトリとして下流に流す

Example 3: 抽出曲線を別曲面に再投影 🔄

Original NURBS Surface → Profile SOP(Method=Extract, Parametrically to X Y=ON)→ Edit / Transform → Project SOP(Parametric option)→ Target NURBS Surface

プロファイルをパラメトリック展開で取り出し、XY 平面で頂点編集や Transform SOP による位置調整をかけた後、Project SOP の Parametric オプションで元の曲面上の同じ位置に再投影するワークフローです。曲面に貼り付いたままでは編集しづらいプロファイルを、いったん 2D で編集してから元の場所に正確に戻したい場合に使います。

  1. プロファイル付きの NURBS 曲面を Profile SOP に入力
  2. MethodExtractParametrically to X Y をオンに設定して XY 平面のパラメトリック表現として抽出
  3. 得られた 2D ファセットの頂点を直接編集、または Transform SOP で位置・回転・スケーリングを調整
  4. 編集後のファセットを Project SOP に流し、Parametric オプションをオン、Mapping to Range をオフに設定
  5. 元の NURBS 曲面に投影することで、編集結果が元プロファイルと同じ位置・パラメトリック関係で曲面に再貼付される

関連オペレータ 🔗

類似機能OP 🔍

  • Project SOP — Profile SOP の逆方向操作: 独立した 3D 曲線を NURBS 曲面に貼り付けてプロファイル化する

組み合わせ推奨OP 🔄

  • Surfsect SOP — 曲面同士のブール演算でプロファイル曲線を生成 — Profile SOP の前段として組み合わせるとブール結果を独立曲線化できる
  • Project SOP — Profile SOP(Remap + Parametric)で取り出した 2D ファセットを編集してから元の曲面に同位置で再投影する用途
  • Primitive SOP — 曲面上に存在するプロファイルの位置・スケール等を変更してから Profile SOP で抽出
  • Convert SOP — 抽出した NURBS / Bezier 曲線をポリゴン化して下流のポリゴンベース処理に渡す
  • Sweep SOP — 抽出した 3D 曲線をバックボーンとして、断面プロファイルを押し出して立体形状を生成

前処理・後処理SOP 🎯


Info CHOP情報 📊

Profile 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 — 直近のクック所要時間(ミリ秒)。フィッティング処理が走る Extract モードでは値が大きくなりやすい
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号
  • cooked_this_frame: cooked_this_frame — 当該フレームでクックされた場合は 1

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 抽出した 3D 曲線が元プロファイルと位置や形状でズレる
✅ Solution:

  • Tolerance を小さくして(0.001 等)フィッティング精度を上げ、元プロファイルへの忠実度を高める
  • Divisions per Span を大きくしてスパンあたりのサンプリング数を増やし、形状の細部を取りこぼさないようにする
  • Smooth Curve がオンの場合、スプラインフィッティングで形状が均されている可能性 — オフにして抽出ポイント列を直接使う

❌ Problem: Remap モードの XY 平面展開が期待した形状にならない
✅ Solution:

  • Mapping TypeUniform から Chord Length に変更し、曲面パラメータ化を考慮したマッピングに切り替え
  • Parametrically to X Y をオンにしてパラメトリック抽出を有効化し、ファセット型を元プロファイルと一致させる
  • U Range / V Range がプロファイル位置を含む領域に設定されているか確認 — 範囲外指定だと結果が不可視になる

❌ Problem: 鋭角コーナーが丸まって特徴が失われる
✅ Solution:

  • Preserve Sharp Corners をオンにして、曲率変化が大きい部分をブレークポイントとして扱わせる
  • Order を下げて低次スプラインで抽出し、コーナー位置でのスムージングを抑える
  • Smooth Curve をオフにしてフィッティング自体をバイパスし、コーナー位置を抽出ポイントとして直接保持

❌ Problem: 抽出処理が重くフレームレートが落ちる
✅ Solution:

  • Smooth Curve をオフにしてスプラインフィッティング処理を省略(特に Surfsect SOP 生成のクリーンなプロファイル相手では不要)
  • Divisions per Span を下げてスパンあたりのサンプリング数を減らす(精度とのトレードオフ)
  • Tolerance を緩めて(0.01 程度)フィッティング許容誤差を拡大、収束計算を早める

参考資料 📚

その他 🔗

公式リソース 📖

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