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

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

Tube POP の円筒点群生成を示す図

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

概要 📖 – 円筒の点群を生成

Tube POPは、円筒・円錐・パイプ形状の点群とプリミティブを GPU 上で生成する POPです。上下の半径を別々に指定すれば円錐やテーパー筒も作れます。Columns / Rows で点の密度を、Anchor / Translate / Rotate / Uniform Scale で配置を、Connectivity で点の接続形状を、Normal / Texture Coordinates で属性出力を細かく制御します。

主な用途 🎯

  • 円筒・パイプ・柱状ジオメトリのプリミティブ生成 (装飾・構造物・参照)
  • 上下の半径を変えた円錐・テーパー形状の作成
  • 後段の Copy POP / Particle POP に渡す筒状の発生点ソースの作成
  • UV を貼ったワイヤーフレーム円筒・チューブの生成
  • Noise POP / Math POP と組み合わせた変形ベースとしての筒形状

データフロー 🔄

入力: (任意の bounds 用 POP)

Tube POP(Orientation で軸を選び、Radius / Height / Columns / Rows で形状と密度を制御)

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

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Tube 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 / Rows and 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 / Height / Translate / Rotate / Scale で更に筒の形状を変形させる

Radius .rad 📏
Radius (円柱半径) — 筒の円形断面の半径
– 内部名 radx / rady の 2 成分で上下の半径を別々に指定でき、円錐やテーパー筒も生成できる

Height .height 📐
Height (高さ) — 筒の中心軸方向の長さ
– Orientation で選んだ軸に沿って伸びる

分割数 🔢

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) のジオメトリを閉じるトグル
– オンにすると 360 度をぐるりと閉じた円筒、オフにすると周回方向にスリットの入った開いた樋 (とい) 状の形状になる

Angle U .angleu 📐
Angle U (U 方向の角度範囲) — 筒が U 方向 (周回) にカバーする開始角と終了角
– 内部名 beginangleu / endangleu の 2 成分で円弧状・半割りの部分筒を作れる

End Caps .endcaps 🧢

筒の両端への端面 (蓋) の付加設定:

  • オン: 筒の上下の開口部に端面 (蓋) のプリミティブを追加し、閉じた円柱にする
  • 用途: 中身の見えない柱状ジオメトリや、流体を入れる容器のような閉じた筒が必要なときに使用

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: 柱状パーティクル発生源 ✨

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

Connectivity を None に設定して、筒の表面に並んだ点群だけを取り出す基本フロー。柱状・パイプ状に分布した発生点ソースとして使えるため、噴水のように立ち上るパーティクルや、円柱面から外向きに飛ぶエフェクトの起点に向いている。Columns / Rows で点の密度を、Radius / Height で発生範囲のサイズを制御する。

  1. Tube POP の ConnectivityNone に設定して点群だけを取り出す
  2. Columns / Rows で点数 (密度) を調整
  3. Radius / Height で発生範囲のサイズを指定
  4. Particle POP の発生点入力に接続
  5. Render TOP で可視化

Example 2: 円錐・テーパー柱の生成 🔺

Tube POP (radx≠rady, End Caps=On) → Transform POP → Render TOP

Radius の radxrady に別々の値を入れると、上下で太さの異なる円錐・テーパー筒が得られる。一方の半径を 0 に近づければ尖った円錐、両方同じにすればまっすぐな円柱になる。End Caps をオンにして両端を蓋で閉じれば、ソリッドな柱・パイロン・スピーカーコーンのような形状のベースとして使える。

  1. Tube POP の Radiusradx / rady に異なる値を設定
  2. 片側を細くしてテーパー (円錐) の度合いを調整
  3. End Caps をオンにして両端を蓋で閉じる
  4. Columns で円形断面の滑らかさを確保
  5. Transform POP で配置を整え、Render TOP でマテリアル付きでレンダリング

Example 3: ノイズで歪ませる有機チューブ 🌊

Tube POP (Connectivity=Quadrilaterals) → Noise POP → Math POP → Render TOP

Connectivity を Quadrilaterals に設定して面を持つ円筒を作り、後段の Noise POP で各点の位置にノイズ変位を加えると、うねった有機的なチューブやホース、木の幹のような形状になる。Rows / Columns を十分に増やしておくとノイズが滑らかに乗り、Math POP で変位量を正規化・スケールして暴れ過ぎを抑える。VJ 表現や抽象モーショングラフィックスで頻用される。

  1. Tube POP の ConnectivityQuadrilaterals に設定
  2. Rows / Columns を増やして変形の解像度を確保
  3. Noise POP を後段に接続し点位置 P にノイズ変位を加える
  4. Math POP で変位量を正規化・スケールして暴れを抑える
  5. Render TOP で可視化

関連オペレータ 🔗

類似機能OP 🔍

  • Sphere POP — 球面の点群を生成 (筒と並ぶ基本回転体プリミティブ)
  • Torus POP — ドーナツ形状の点群を生成 (筒を環状に閉じた回転体)
  • Box POP — 立方体形状の点群を生成 (角柱系の基本プリミティブ)
  • Circle POP — 2D 円・楕円の点群を生成 (筒の 1 断面に相当)
  • Grid POP — 平面・立体格子点群を生成 (筒を展開した平面格子)

組み合わせ推奨OP 🔄

  • Transform POP — 生成した筒を後段で平行移動・回転・スケールするための定番後処理
  • Noise POP — 筒面の点に Perlin / Simplex 等のノイズで変位を加える (有機チューブ表現等)
  • Math POPP 等の属性を算術変換して筒を歪ませる・正規化する
  • Copy POP — 筒面各点をテンプレートにして別ジオメトリをインスタンス配置
  • Merge POP — 複数の筒や他プリミティブを 1 つの POP に結合

前処理・後処理POP 🎯


Info POP情報 📊

Tube 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: 生成された出力ポイント数 (Columns / Rows / End Caps の有無に依存)
  • 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 も併せて増やす
  • ライン表示でカクつく場合は ConnectivityTriangles / Quadrilaterals に切替えて面で表示する

❌ Problem: 筒の端が開いていて中身が見える
✅ Solution:

  • Detail Page の End Caps をオンにして両端に蓋を追加する
  • U Closed がオフになっていないか確認 (オフだと周回方向も開く)
  • 閉じた完全な円筒にしたい場合は Angle Ubeginangleu / endangleu が 0〜360 になっているか確認

❌ Problem: 円錐・テーパーにしたいのにまっすぐな円柱になる
✅ Solution:

  • Radiusradxrady に異なる値を設定する (上下で半径を変える)
  • 尖った円錐にしたい場合は片側の半径を 0 に近づける
  • テーパーの向きが逆なら Orientation または Anchor の設定を見直す

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

  • Columns / Rows で点数が過剰になっていないか確認し、必要十分な分割数まで下げる
  • 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をコピーしました