
概要 📖 – 筒・円錐形状を生成
Tube SOPは、中心軸まわりに上下の半径と高さを指定して円柱・円錐状のジオメトリを生成する SOPです。上下の半径を別々に設定できるため、円柱だけでなく円錐やじょうご形状も作成します。
主な用途 🎯
- 円柱・パイプ形状のジオメトリ生成
- 上下の半径を変えた円錐・じょうご形状の作成
- 建築・プロダクトのモデリング用ベース形状
- パーティクルやインスタンスの元になる単純形状の供給
- 上下に穴の空いた中空シリンダーの作成
データフロー 🔄
入力: 任意の境界 SOP(省略可)
↓
筒生成処理(半径・高さ・分割数の設定)
↓
出力: 円柱・円錐ジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Tube Page 📋
Primitive Type .type 🎛️
生成する形状の種類を選ぶメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Mesh | .mesh |
ポリゴンメッシュとして生成 |
| NURBS | .nurbs |
NURBS スプラインサーフェスとして生成 |
| Bezier | .bezier |
Bezier スプラインサーフェスとして生成 |
Connectivity .surftype 🧩
Connectivity (面の張り方) — Mesh 種類のときに、面をどう構成するかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rows | .rows |
水平方向の線を生成 |
| Columns | .cols |
垂直方向の線を生成 |
| Rows and Columns | .rowcol |
行と列の両方。ワイヤーフレーム表示では四角形に見えるが各ポリゴンは開いた状態 |
| Triangles | .triangles |
三角形で面を構成 |
| Quadrilaterals | .quads |
四角形で側面を構成 (デフォルト) |
| Alternating Triangles | .alttriangles |
向きを互い違いにした三角形で構成 |
Orientation .orient 🧭
Orientation (向き) — 筒の長軸 (主軸) をどの座標軸に合わせるかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| X Axis | .x |
X 軸を長軸にする |
| Y Axis | .y |
Y 軸を長軸にする |
| Z Axis | .z |
Z 軸を長軸にする |
Rotate Order .rord 🔁
Rotate Order (回転順序) — X・Y・Z の回転を適用する順番を選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rx Ry Rz | .xyz |
X→Y→Z の順で回転 |
| Rx Rz Ry | .xzy |
X→Z→Y の順で回転 |
| Ry Rx Rz | .yxz |
Y→X→Z の順で回転 |
| Ry Rz Rx | .yzx |
Y→Z→X の順で回転 |
| Rz Rx Ry | .zxy |
Z→X→Y の順で回転 |
| Rz Ry Rx | .zyx |
Z→Y→X の順で回転 |
形状の調整 📐
Orient Bounds .orientbounds 🧭
– Orient Bounds (境界に向きを合わせる) — 境界用の入力 SOP が接続されているときのみ有効
– オンにすると、境界に使った入力 SOP の向きに合わせて筒を回転
Modify Bounds .modifybounds 📐
– Modify Bounds (境界を調整) — 境界用の入力 SOP が接続されているときのみ有効
– オンにすると下のトランスフォーム項目で境界の位置・スケール・半径・高さをさらに調整可能
Center .t 📍
– Center (中心位置) — オブジェクト原点からの筒の中心位置
– X・Y・Z (tx / ty / tz) の 3 つの値で指定
Rotate .r 🔄
– Rotate (回転) — 筒を X・Y・Z 軸まわりに回転させる 3 つの値 (rx / ry / rz)
Radius .rad ⭕
– Radius (半径) — 1 つ目の値が筒の上端の半径、2 つ目の値が下端の半径
– 上下で異なる半径にすると円錐・じょうご形状になります
Height .height 📏
– Height (高さ) — 筒の高さ
Reverse Anchors .reverseanchors ↔️
– Reverse Anchors (アンカー反転) — アンカーの方向を反転
Anchor U .anchoru ⚓
– Anchor U (X 方向アンカー) — ジオメトリの位置・スケール・回転の基準となる X 方向の点を設定
Anchor V .anchorv ⚓
– Anchor V (Y 方向アンカー) — ジオメトリの位置・スケール・回転の基準となる Y 方向の点を設定
Anchor W .anchorw ⚓
– Anchor W (Z 方向アンカー) — ジオメトリの位置・スケール・回転の基準となる Z 方向の点を設定
Imperfect .imperfect 〰️
– Imperfect (近似曲線) — Bezier と NURBS 種類のときのみ適用
– オンにすると近似的な非有理曲線、オフにすると正確な有理曲線になります
Detail Page 🔧
分割数と精度 🔢
Rows .rows 📊
– Rows (行数) — 筒の行の数
Columns .cols 📊
– Columns (列数) — 筒の列の数。多いほど円が滑らかになります
U Order .orderu 〰️
– U Order (U 方向の次数) — スプラインサーフェス選択時に U 方向をこの次数で構築
V Order .orderv 〰️
– V Order (V 方向の次数) — スプラインサーフェス選択時に V 方向をこの次数で構築
End Caps .cap 🧢
– End Caps (端のフタ) — オンにすると筒の両端にフタ (面) を追加
Compute Normals .normals 🧮
– Compute Normals (法線を計算) — オンにすると表面の法線を計算
Texture Coordinates .texture 🗺️
Texture Coordinates (UV 座標) — 表面に UV テクスチャ座標を追加するかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
UV 座標を追加しない |
| Row & Columns | .rowcol |
頂点ごとに UV 座標を追加 |
実践アイデア 💡
Example 1: パイプ・円柱モデルの作成 🛢️
Tube SOP → Transform SOP → Geometry COMP
Tube SOP の上下半径を同じ値にして円柱を作り、Transform SOP で配置を整えてシーンに並べる、パイプや柱などの基本モデリングフロー。
- Tube SOP を配置し Radius の上下を同じ値に設定
- Height で柱の長さを決定
- Columns を増やして円を滑らかに調整
- Transform SOP で位置と向きを整える
Example 2: 円錐・じょうご形状の生成 🔻
Tube SOP (上下で半径を変更) → Material SOP
Tube SOP の上端半径を 0 に近づけ下端半径を大きく取ることで円錐を作り、Material SOP でマテリアルを割り当てて表示する形状作成の例。
- Tube SOP の Radius 上端を 0、下端を任意の値に設定
- End Caps をオンにして底面を閉じる
- Compute Normals をオンにして陰影を正しく表示
Example 3: インスタンスの元形状供給 ✨
Tube SOP → Copy SOP → 多数配置
Tube SOP で軽量な単純筒を作り、Copy SOP で多数のコピーを配置することでインスタンス表現の元形状として活用するフロー。
- Tube SOP で低ポリゴンの筒を生成
- Copy SOP で複数配置して繰り返し構造を作る
関連オペレータ 🔗
類似機能OP 🔍
- Sphere SOP — 球形のプリミティブ形状を生成
- Box SOP — 直方体のプリミティブ形状を生成
- Torus SOP — ドーナツ形のプリミティブ形状を生成
組み合わせ推奨OP 🔄
- Transform SOP — 生成した筒を移動・回転・スケール
- Copy SOP — 筒を多数複製して配置
- Material SOP — 筒にマテリアルを割り当て
前処理・後処理SOP 🎯
Info情報 📊
Tube SOP のジオメトリ情報は Info CHOP / Info DAT で取得します。
ジオメトリ統計 📐
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: このオペレータのエラー数
クック統計 ⏱️
cook_time: 1 回のクックにかかった時間total_cooks: 累計クック回数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 円柱の側面がカクカクして見える
✅ Solution:
- Detail Page の Columns の値を増やして円周の分割数を上げる
- Compute Normals をオンにして表面の陰影を正しく計算
❌ Problem: 筒の両端が開いて中が見える
✅ Solution:
- Detail Page の End Caps をオンにして両端にフタを追加
- 前段で Circle SOP を使い別途フタを作る方法もあります
❌ Problem: 円錐にしたいのに円柱になる
✅ Solution:
- Radius は上端・下端の 2 つの値を持つので、片方を 0 に近づける
- 上下を入れ替えたい場合は Reverse Anchors や Orientation を見直す
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

