
概要 📖 – 円筒の点群を生成
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
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 で発生範囲のサイズを制御する。
- Tube POP の
ConnectivityをNoneに設定して点群だけを取り出す Columns/Rowsで点数 (密度) を調整Radius/Heightで発生範囲のサイズを指定- Particle POP の発生点入力に接続
- Render TOP で可視化
Example 2: 円錐・テーパー柱の生成 🔺
Tube POP (radx≠rady, End Caps=On) → Transform POP → Render TOP
Radius の radx と rady に別々の値を入れると、上下で太さの異なる円錐・テーパー筒が得られる。一方の半径を 0 に近づければ尖った円錐、両方同じにすればまっすぐな円柱になる。End Caps をオンにして両端を蓋で閉じれば、ソリッドな柱・パイロン・スピーカーコーンのような形状のベースとして使える。
- Tube POP の
Radiusのradx/radyに異なる値を設定 - 片側を細くしてテーパー (円錐) の度合いを調整
End Capsをオンにして両端を蓋で閉じるColumnsで円形断面の滑らかさを確保- 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 表現や抽象モーショングラフィックスで頻用される。
- Tube POP の
ConnectivityをQuadrilateralsに設定 Rows/Columnsを増やして変形の解像度を確保- Noise POP を後段に接続し点位置
Pにノイズ変位を加える - Math POP で変位量を正規化・スケールして暴れを抑える
- Render TOP で可視化
関連オペレータ 🔗
類似機能OP 🔍
- Sphere POP — 球面の点群を生成 (筒と並ぶ基本回転体プリミティブ)
- Torus POP — ドーナツ形状の点群を生成 (筒を環状に閉じた回転体)
- Box POP — 立方体形状の点群を生成 (角柱系の基本プリミティブ)
- Circle POP — 2D 円・楕円の点群を生成 (筒の 1 断面に相当)
- Grid POP — 平面・立体格子点群を生成 (筒を展開した平面格子)
組み合わせ推奨OP 🔄
- Transform POP — 生成した筒を後段で平行移動・回転・スケールするための定番後処理
- Noise POP — 筒面の点に Perlin / Simplex 等のノイズで変位を加える (有機チューブ表現等)
- Math POP —
P等の属性を算術変換して筒を歪ませる・正規化する - 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も併せて増やす - ライン表示でカクつく場合は
ConnectivityをTriangles/Quadrilateralsに切替えて面で表示する
❌ Problem: 筒の端が開いていて中身が見える
✅ Solution:
- Detail Page の
End Capsをオンにして両端に蓋を追加する U Closedがオフになっていないか確認 (オフだと周回方向も開く)- 閉じた完全な円筒にしたい場合は
Angle Uのbeginangleu/endangleuが 0〜360 になっているか確認
❌ Problem: 円錐・テーパーにしたいのにまっすぐな円柱になる
✅ Solution:
Radiusのradxとradyに異なる値を設定する (上下で半径を変える)- 尖った円錐にしたい場合は片側の半径を 0 に近づける
- テーパーの向きが逆なら
Orientationまたは Anchor の設定を見直す
❌ Problem: VRAM 使用量が増えてパフォーマンスが落ちる
✅ Solution:
Columns/Rowsで点数が過剰になっていないか確認し、必要十分な分割数まで下げる- Common Page の
Delete Input Attributesで下流に不要な属性を残さず、必要なものだけ通す - Common Page の Free Extra GPU Memory パルスで未使用 VRAM を返却
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Tube POP
- Attribute – TouchDesigner 属性概念ページ
- Transform POP – 筒の後段で移動・回転・スケールに使用
- Noise POP – 筒面に変位を加える定番後処理

