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

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

Torus SOP のドーナツ形状生成機能を示す図

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

概要 📖 – ドーナツ形状の生成

Torus SOPは、外周と断面の 2 つの半径からドーナツ形状を生成する SOPです。Primitive Type でメッシュ・NURBS・Bezier を選び、Rows / Columns で分割密度を、U Wrap / V Wrap と角度設定で開いた弧やパイプ状の部分トーラスまで制御できます。

主な用途 🎯

  • ドーナツ形状プリミティブの生成(Radius で外周半径と内輪半径を指定)
  • サーフェスタイプの選択(メッシュ / NURBS / Bezier の 3 種から生成方式を切替)
  • Rows と Columns による分割密度の制御で後段の変形・レンダリング解像度を確保
  • U Wrap / V Wrap と角度設定で開いた弧やパイプ状の部分トーラスを作成
  • テクスチャ座標と法線の生成でレンダリング用の UV とライティング情報を付与

データフロー 🔄

入力 (オプション): バウンディング元 SOP

Primitive Type / Orientation / Radius / Center で形状と配置を決定

Rows / Columns で分割密度、U/V Wrap と角度で開閉と弧を制御

出力: ドーナツ形状のジオメトリ SOP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Torus Page 📁

Primitive Type .type 🔷

Primitive Type (形状の種類) — トーラスをどの種類のジオメトリとして生成するかを選びます。詳細はジオメトリ系の公式記事を参照してください。

項目 内部名 説明
Mesh .mesh ポリゴンメッシュとして生成 (汎用)
NURBS .nurbs NURBS スプラインサーフェスとして生成 (滑らかな曲面)
Bezier .bezier Bezier スプラインサーフェスとして生成 (制御点による曲面)

Connectivity .surftype 🧩

Connectivity (面のつなぎ方) — メッシュ形状のときに、サーフェスをどのように構成するかを選びます。

項目 内部名 説明
Rows .rows 横方向のラインを生成
Columns .cols 縦方向のラインを生成
Rows and Columns .rowcol 縦横両方のライン。ワイヤーフレーム表示では四角形に見えるが、ポリゴンは開いた状態
Triangles .triangles 三角形でサーフェスを構成
Quadrilaterals .quads 四角形で各面を構成 (デフォルト)
Alternating Triangles .alttriangles 向きを交互にした三角形で構成 (Triangles に近い)

Orientation .orient 🧭

Orientation (軸の向き) — トーラスを生成する基準軸を選びます。

項目 内部名 説明
X Axis .x X 軸まわりにトーラスを構成
Y Axis .y Y 軸まわりにトーラスを構成
Z Axis .z Z 軸まわりにトーラスを構成

形状とサイズの関連パラメータ 📐

Modify Bounds .modifybounds 🔧
Modify Bounds (境界の修正) — 入力 SOP が接続されているときのみ有効
– オンにすると下記の Transform 系パラメータでトーラスの位置と半径をさらに修正できる

Radius .rad
Radius (半径) — 1 つ目の値 (radx) が外周半径、2 つ目の値 (rady) が内輪 (断面) の半径
– 外周と断面の比率でドーナツの太さが決まる

Center .t 📍
Center (中心位置) — オブジェクト原点からのトーラス中心のオフセットを X / Y / Z で指定

Anchor 関連パラメータ ⚓

Reverse Anchors .reverseanchors ↔️
Reverse Anchors (アンカー反転) — Anchor U / V / W の方向を反転させる

Anchor U .anchoru 📍
Anchor U — X 方向で位置・スケール・回転の基準となるアンカー位置を指定

Anchor V .anchorv 📍
Anchor V — Y 方向で位置・スケール・回転の基準となるアンカー位置を指定

Anchor W .anchorw 📍
Anchor W — Z 方向で位置・スケール・回転の基準となるアンカー位置を指定

分割密度の関連パラメータ 🔢

Rows .rows ↔️
Rows (行数) — トーラスの外周に沿った分割数を決める

Columns .cols ↕️
Columns (列数) — トーラスの断面 (チューブの周) に沿った分割数を決める


Detail Page 📂

角度とスプラインの関連パラメータ 📐

Angle Offset .angleoffset 🔄
Angle Offset (角度オフセット) — 断面半径まわりにトーラスを回転させる
– 例えば 4 行のとき 45 を指定すると、上面と下面が平らな断面になる

Imperfect .imperfect 〰️
Imperfect (近似曲線) — Bezier / NURBS タイプのときのみ適用
– オンにするとチューブが近似的な非有理曲線になり、オフでは完全な有理曲線になる

U Order .orderu 🔢
U Order (U 次数) — スプライン曲線を選んだ場合、U 方向をこの次数で構築する

V Order .orderv 🔢
V Order (V 次数) — スプライン曲線を選んだ場合、V 方向をこの次数で構築する

U Angle .angleu 📐
U Angle (U 角度) — U Wrap が無効のときの、トーラスの開始角度と終了角度

V Angle .anglev 📐
V Angle (V 角度) — V Wrap が無効のときの、断面円の開始角度と終了角度

閉じ方と端面の関連パラメータ 🔁

U Wrap .closeu 🔄
U Wrap (U 方向の閉じ) — オンにすると 360 度の断面を作成する

V Wrap .closev 🔃
V Wrap (V 方向の閉じ) — オンにするとプリミティブを閉じて V 方向にトーラスを作成する

U End Caps .capu 🧢
U End Caps (U 端面のフタ) — トーラスが 360 度未満のとき、端に面状のフタを付ける
– さらに細かいフタ設定をしたい場合はオフにして後段に Cap SOP を追加する

V End Caps .capv 🧢
V End Caps (V 端面のフタ) — トーラスが開いているとき、上下の間に面を付ける
– さらに細かいフタ設定をしたい場合はオフにして後段に Cap SOP を追加する

Texture Coordinates .texture 🎨

Texture Coordinates (UV テクスチャ座標) — トーラスに UV 座標を付与する方式を選びます。

項目 内部名 説明
Off .off UV 座標を付与しない
Row & Columns .rowcol ジオメトリの Rows と Columns に基づいて UV 座標を付与

法線関連パラメータ 🧭

Compute Normals .normals 🧮
Compute Normals (法線の計算) — オンにするとサーフェス法線を計算する
– レンダリングでライティングを正しく評価するために必要


実践アイデア 💡

Example 1: 基本のドーナツ生成 🍩

Torus SOP (Primitive Type=Mesh, Radius=1.0/0.25, Texture Coordinates=Row & Columns) → Geometry COMP → Render TOP

Torus SOP 単体で外周半径 1.0 / 断面半径 0.25 のドーナツ形状を生成し、UV を付与してレンダリングする最小構成。プリミティブの動作確認やシーン構築の起点として頻繁に使うパターンです。

  1. Torus SOP を配置し Primitive TypeMesh に設定
  2. Radius を 1.0, 0.25 に設定して外周と断面の太さを決める
  3. Texture CoordinatesRow & Columns に変更して UV を生成
  4. Compute Normals をオンにしてライティング用法線を有効化
  5. Geometry COMP に接続し、Camera COMP / Light COMP / Render TOP でレンダリング結果を確認

Example 2: 開いた弧を作る 🌙

Torus SOP (U Wrap=OFF, U Angle=0/180, U End Caps=ON) → Transform SOP → Geometry COMP

U Wrap をオフにして U Angle で開始角度と終了角度を指定し、トーラスの一部だけを切り出した開いた弧 (パイプ状) を生成するパターン。端面に End Caps を付けて閉じた見た目にします。

  1. Torus SOP を配置し U Wrap をオフに切り替え
  2. U Angle を 0, 180 に設定して半周分の弧を生成
  3. U End Caps をオンにして弧の両端に面状のフタを付ける
  4. 後段に Transform SOP を接続して配置を調整
  5. Geometry COMP に接続して結果を確認

Example 3: 複製でパターン化 🔗

Torus SOP (Rows=40, Columns=20) → Copy SOP → Geometry COMP

Rows と Columns を増やして滑らかなトーラスを生成し、後段の Copy SOP で複数並べてリング状やチェーン状のパターンを作るプロシージャルなモデリングパターン。分割数が変形やレンダリングのディテール解像度を決めます。

  1. Torus SOP を配置し Rows を 40、Columns を 20 に設定して密度を上げる
  2. 後段に Copy SOP を接続
  3. Copy SOP の複製数と Transform で並べ方 (回転・移動) を指定
  4. Geometry COMP に接続してパターン全体を確認

関連オペレータ 🔗

類似機能OP 🔍

  • Sphere SOP — 球プリミティブを生成 (Torus SOP と並ぶ基礎形状 SOP)
  • Tube SOP — 円柱・円錐プリミティブを生成 (基礎形状 SOP)
  • Circle SOP — 円・楕円プリミティブを生成 (トーラスの断面に相当)
  • Grid SOP — 平面格子プリミティブを生成 (基礎形状 SOP)

組み合わせ推奨OP 🔄

  • Transform SOP — トーラスの出力にさらに移動・回転・スケールを掛ける
  • Copy SOP — トーラスを複製してリング状やチェーン状に並べる
  • Cap SOP — 開いたトーラスの端面に細かいフタを付ける
  • Carve SOP — スプラインタイプのトーラスを U/V でスライス・抽出

前処理・後処理SOP 🎯


Info CHOP情報 📊

Torus 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 — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: トーラスの表面がカクカクして見える
✅ Solution:

  • RowsColumns の値が小さいと分割が粗くなる — 滑らかにしたい場合は両方を増やす
  • Compute Normals がオフだとライティングが面ごとに平坦になる — オンに切り替えて法線を計算する
  • 曲面の滑らかさを優先する場合は Primitive TypeNURBS に変更する運用も可

❌ Problem: U Angle / V Angle を変えてもトーラスが閉じたまま変化しない
✅ Solution:

  • U AngleU Wrap が無効のときのみ効く仕様 — U Wrap をオフにしてから角度を指定する
  • V Angle は同様に V Wrap が無効のときのみ効く — V Wrap をオフにする
  • Wrap がオンのままだと 360 度の閉じた形状になり角度設定は無視される点に注意

❌ Problem: 開いたトーラスの端面に穴が空いている
✅ Solution:

  • U End Caps / V End Caps をオンにして端面に面状のフタを付ける
  • より細かいフタ設定が必要な場合は End Caps をオフにして後段に Cap SOP を接続する
  • 閉じたソリッドが欲しい場合は後段に Convert SOP を置いてポリゴンを閉じる運用も可

❌ Problem: テクスチャが正しく貼られない / UV が無い
✅ Solution:

  • Texture CoordinatesOff のままだと UV が生成されない — Row & Columns に切り替える
  • UV の解像度は Rows / Columns の分割数に依存するため、細かいテクスチャには分割数を増やす
  • 断面の向きを調整したい場合は Angle Offset でトーラスを回転させて UV の基準を合わせる

参考資料 📚

その他 🔗

公式リソース 📖

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