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

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

Torus POP のドーナツ形点群生成を示す図

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

概要 📖 – ドーナツ形の点群を生成

Torus POPは、半径と分割数からドーナツ (円環) 形状の点群とプリミティブを生成する POPです。Connectivity で点をどのプリミティブで繋ぐかを選び、Radius でリング半径と断面円の半径を、Rows / Columns で分割密度を、Anchor / Translate / Rotate / Uniform Scale で配置を制御します。Detail Page の Angle U / Angle V で部分角度を指定すれば、欠けた円弧やパイプ片も作れます。

主な用途 🎯

  • ドーナツ (円環) 形ジオメトリのプリミティブ生成 (装飾・モチーフ・参照)
  • リング状パーティクル発生源の作成 (発生点ソースとして後段に供給)
  • 行・列の分割数を指定したワイヤートーラスの生成 (格子可視化)
  • 部分角度指定による円弧・パイプ片など欠けたトーラスの生成
  • 後段の Copy POP / Particle POP に渡す円環状の配置テンプレート作成

データフロー 🔄

入力: (任意の bounds 用 POP)

Torus POP(Connectivity で接続形状を選び、Radius / Rows / Columns で密度を制御)

出力: 点群+指定プリミティブを持つ POP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Torus Page 📋

Connectivity .surftype 🔗

点をどのプリミティブで接続するかを決定する基本メニュー

項目 内部名 説明
None .none 接続を行わず点のみを出力
Point Primitives .points 各点を独立した Point プリミティブとして出力
Rows .rows 行方向のラインだけで接続
Columns .cols 列方向のラインだけで接続
Rows and Columns .rowcol 行と列の両方をラインで接続 (ワイヤートーラス)
Triangles .triangles セルを 2 つの三角形に分割して出力
Alternating Triangles .alttriangles セルごとに対角線方向を交互に切替えて偏りを軽減
Quadrilaterals .quads セルを 4 頂点の四辺形プリミティブとして出力

Line Type .linetype 📏

Rows / Columns 接続時のライン形式

項目 内部名 説明
Lines .lines 隣接 2 点ごとの独立 Line プリミティブとして出力

Orientation .orient 🧭

トーラスの中心軸を X / Y / Z のどれに揃えるか

項目 内部名 説明
X Axis .x 中心軸を X 軸 (左右方向) に揃える
Y Axis .y 中心軸を Y 軸 (上下方向) に揃える
Z Axis .z 中心軸を Z 軸 (奥行き方向) に揃える

サイズと入力 bounds 📐

Modify Bounds .modifybounds 🧭
Modify Bounds (バウンディング上書き) — 入力 POP が接続されている場合にのみ有効
– オン時は入力 POP のバウンディングボックスを基準として、下記の Radius / Translate / Rotate / Scale で更にトーラスの形状を変形させる

Radius .rad 📏
Radius (半径) — リング全体の半径と、断面 (掃引される円) の半径
– 内部名 radx (リング半径) / rady (断面円の半径) の 2 成分で太さの異なるドーナツを作れる

分割数 🔢

Columns .cols 📊
Columns (列数) — リングの周回方向に並べる点の列数
– 値を増やすほどリングが滑らかな円になる

Rows .rows 📊
Rows (行数) — 断面円の周回方向に並べる点の行数
– 値を増やすほどパイプの断面が滑らかな円になる

アンカー位置 📍

Anchor U .anchoru ↔️
Anchor U (U 方向アンカー) — 左端・中央・右端のいずれを原点 0 に揃えるかを指定
– トーラスを原点基準で配置する際の整列基準として使用

Anchor V .anchorv ↕️
Anchor V (V 方向アンカー) — 下端・中央・上端のいずれを原点 0 に揃えるかを指定

Anchor W .anchorw 🔃
Anchor W (W 方向アンカー) — 後ろ端・中央・前端のいずれを原点 0 に揃えるかを指定 (奥行き方向)

トランスフォーム 🧮

Translate .t ➡️
Translate (平行移動) — 生成された点群を XYZ 軸方向に平行移動
– 内部名 tx / ty / tz の 3 成分

Rotate .r 🔄
Rotate (回転) — 各点を XYZ 軸まわりに回転 (角度は度数法)
– 内部名 rx / ry / rz の 3 成分

Uniform Scale .scale 🔍
Uniform Scale (一様スケール) — 全軸に均等に作用するスケール係数
– 1.0 が等倍、0.5 で半分、2.0 で 2 倍

Normal .normal 🧭

法線属性 (Normal) を生成するかと、属性クラスの選択

項目 内部名 説明
None .none 法線属性は生成しない

Texture Coordinates .texture 🗺️

UV テクスチャ座標属性の生成設定

項目 内部名 説明
None .none UV 座標属性は生成しない

Detail Page 📑

U 方向の閉じ・範囲 🌐

U Closed .closedu 🔒
U Closed (U 方向を閉じる) — U 方向のジオメトリを閉じるトグル
– オンにすると U 方向をぐるりと閉じた形状、オフにするとスリットの入った開いた形状になる

Angle U .angleu 📐
Angle U (U 方向の角度範囲) — トーラスが U 方向にカバーする開始角と終了角
– 内部名 beginangleu / endangleu の 2 成分で欠けた円弧 (C 字状のリング) を作れる

V 方向の閉じ・範囲 🌐

V Closed .closedv 🔒
V Closed (V 方向を閉じる) — V 方向 (断面円) のジオメトリを閉じるトグル
– オフにすると断面が閉じず、樋 (とい) のような開いたパイプ片になる

Angle V .anglev 📐
Angle V (V 方向の角度範囲) — トーラスが V 方向 (断面円) にカバーする開始角と終了角
– 内部名 beginanglev / endanglev の 2 成分で断面が部分円のパイプ片を作れる


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: リング状パーティクル発生源 ✨

Torus POP (Connectivity=None) → Particle POP → Render TOP

Connectivity を None に設定してドーナツ表面の点群だけを取り出す基本フロー。円環状に均等配置された発生点を Particle POP に渡すことで、リングを描くように放出されるパーティクル表現を作れる。Radius でリングの大きさと太さを、Rows / Columns で発生点の密度を制御する。

  1. Torus POP の ConnectivityNone に設定して点群だけを取り出す
  2. Radiusradx / rady でリング半径と断面半径を指定
  3. Rows / Columns で発生点の密度を調整
  4. Particle POP の発生点入力に接続
  5. Render TOP で可視化

Example 2: ワイヤートーラスの可視化 🔵

Torus POP (Connectivity=Rows and Columns) → Render TOP

Connectivity を Rows and Columns に設定すると、リング方向と断面方向の両方にラインが張られたワイヤーフレームのドーナツが得られる。格子状のラインで構造が一目で分かるため、デザインモチーフや背景の幾何学アニメーションに向く。Columns を増やすとリングが滑らかに、Rows を増やすと断面の円が滑らかになる。

  1. Torus POP の ConnectivityRows and Columns に設定
  2. Line TypeLines に設定
  3. Columns でリングの滑らかさ、Rows で断面の滑らかさを調整
  4. Orientation で中心軸の向きを決める
  5. Render TOP でワイヤー表示にして出力

Example 3: 部分角度で円弧パイプ生成 🌙

Torus POP (Connectivity=Quadrilaterals, Angle U=0〜180) → Transform POP → Render TOP

Detail Page の Angle U の開始角・終了角でリング方向の範囲を絞ると、欠けた C 字状の円弧パイプが得られる。0〜180 度にすれば半周のアーチ、Angle V を併せて絞れば断面も部分円の樋 (とい) 状にできる。橋・アーチ・パイプ片など「ドーナツの一部だけ」が欲しい場面でフル形状より頂点数を抑えられる。

  1. Torus POP の ConnectivityQuadrilaterals に設定
  2. Detail Page の Angle Ubeginangleu / endangleu で 0〜180 度に絞る
  3. 必要に応じ Angle V で断面の角度範囲も絞る
  4. Columns / Rows で円弧の滑らかさを調整
  5. Transform POP で配置を整え、Render TOP で陰影付け

関連オペレータ 🔗

類似機能OP 🔍

  • Sphere POP — 球面の点群を生成 (トーラスと同じ回転体系プリミティブ)
  • Tube POP — 円筒・円錐形状の点群を生成 (断面円を直線方向に掃引)
  • Circle POP — 2D 円・楕円の点群を生成 (トーラスのリング 1 本に相当)
  • Box POP — 立方体形状の点群を生成 (基本プリミティブの 1 つ)
  • Grid POP — 平面・立体格子点群を生成 (直交格子の基本形)

組み合わせ推奨OP 🔄

  • Transform POP — 生成したトーラスを後段で平行移動・回転・スケールするための定番後処理
  • Math POPP 等の属性を算術変換してトーラスを歪ませる・正規化する
  • Noise POP — トーラス表面の点に Perlin / Simplex 等のノイズで変位を加える
  • Particle POP — Torus の点群を発生源として時間発展させる
  • Copy POP — トーラス各点をテンプレートにして別ジオメトリをインスタンス配置
  • Twist POP — トーラスをねじって螺旋状のリングなどに変形

前処理・後処理POP 🎯


Info POP情報 📊

Torus POP は Info CHOP / Info DAT による詳細情報取得に対応しています。

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

出力ポイント・属性情報 🧬

  • num_points: 生成された出力ポイント数 (Rows / Columns に依存)
  • num_point_attribs: 出力 POP の point 属性数 (Normal / Texture Coordinates の有無で増減)
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_prims: 生成プリミティブ数 (Connectivity の選択により決定)

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

よくある問題と解決策 🔧

❌ Problem: トーラスがカクカクで滑らかにならない
✅ Solution:

  • リング方向を滑らかにしたい場合は Columns を増やして周回方向の分割数を上げる
  • 断面の円を滑らかにしたい場合は Rows を増やして断面方向の分割数を上げる
  • 後段に Convert POP を入れて細分化・スムージングを行う

❌ Problem: 半周や円弧にしたいのにフルのドーナツが出る
✅ Solution:

  • Detail Page の Angle Ubeginangleu / endangleu でリング方向の範囲を絞る (半周なら 0〜180)
  • Angle Vbeginanglev / endanglev で断面の角度範囲を絞り、樋 (とい) 状のパイプ片にする
  • 閉じた形状が不要なら U Closed / V Closed をオフにして開いた形状にする

❌ Problem: リングが細すぎる / 太すぎる
✅ Solution:

  • Radiusradx (リング半径) と rady (断面円の半径) のバランスを調整する
  • 断面を太くしたい場合は rady を大きくし、リング全体を広げたい場合は radx を大きくする
  • 全体サイズだけ変えたい場合は Uniform Scale で一様にスケールする

❌ Problem: VRAM 使用量が増えてパフォーマンスが落ちる
✅ Solution:

  • Rows / Columns で点数が過剰になっていないか確認し、必要十分な分割数まで下げる
  • Common Page の Delete Input Attributes で下流に不要な属性を残さず、必要なものだけ通す
  • Common Page の Free Extra GPU Memory パルスで未使用 VRAM を返却

参考資料 📚

その他 🔗

公式リソース 📖

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