
概要 📖 – プロファイルカーブの回転体サーフェス生成
Revolve SOPは、入力プロファイルカーブを回転軸 (Origin と Direction) のまわりに回転させて回転体サーフェスを生成する SOPです。Start End Angles で回転範囲を、Divisions で円周方向のメッシュ解像度を指定でき、Revolve Type と End Caps で開閉・側面処理を選択できます。
主な用途 🎯
- プロファイルカーブから回転体サーフェスを生成 (花瓶・ボトル・ランプシェード・トーラスなどの軸対称形状)
- Origin と Direction で任意の回転軸を指定し、Y 軸以外の方向にも回転体を生成
- Start End Angles による部分回転で扇形・半円柱などの開いた回転ジオメトリを生成
- Divisions で円周方向のメッシュ解像度を制御し、滑らかさとクックコストのバランスを調整
- NURBS / Bezier プロファイルの精密な回転サーフェス化 (Imperfect オフで完全有理曲面、Order でスプライン次数を指定)
- End Caps による部分回転時の側面を自動閉口し、レンダリング時の穴を防ぐ
データフロー 🔄
入力: プロファイルカーブ SOP (Line / Curve / NURBS / Bezier 等)
↓
Origin と Direction で回転軸を設定
↓
Start End Angles と Divisions で回転範囲と円周分割を指定
↓
Revolve Type と Connectivity でメッシュ生成方式を選択
↓
出力: 回転体サーフェス SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
対象グループの選択 🎯
Group .group 🎯
– 入力にグループが存在する場合、ここでグループ名を指定するとそのグループに対してのみ Revolve を適用
– パターンマッチング (* や [1-10] 等) が利用可能
– 空のままにすると入力全体に対して Revolve を実行
Revolve Page 🔄
Connectivity .surftype 🔗
Mesh プリミティブで生成する際の頂点接続方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rows | .rows |
横方向 (行) のラインのみで構成 |
| Columns | .cols |
縦方向 (列) のラインのみで構成 |
| Rows and Columns | .rowcol |
行と列の両方のラインで構成 (ワイヤフレーム表示では Quads に見えるが、ポリゴンは open) |
| Triangles | .triangles |
三角形ポリゴンで回転体メッシュを構成 |
| Quadrilaterals | .quads |
四角形ポリゴンで回転体メッシュを構成 (デフォルト) |
| Alternating Triangles | .alttriangles |
対角を交互に反転させた三角形で回転体メッシュを構成 |
※ 注意: Connectivity は Mesh プリミティブを使用する場合にのみ適用されます。
回転軸の原点 📍
Origin .origin 📍
– 回転軸の原点座標を X / Y / Z で指定
– originx / originy / originz の 3 軸
– デフォルトは原点 (0, 0, 0)。プロファイルカーブとの相対位置で回転半径が決まる
回転軸の方向ベクトル 🧭
Direction .dir 🧭
– 回転軸の方向ベクトルを X / Y / Z で指定
– dirx / diry / dirz の 3 軸
– デフォルトは Y 軸 (0, 1, 0)。任意方向の軸を作るには非正規化ベクトルでも可
ポリゴン変換と精度 🧱
Convert Mesh to Polygons .polys 🧱
– オンにすると出力 Mesh を個別ポリゴンの集合に変換
– 下流で Polygon ベース処理 (Facet SOP / Group SOP のプリミティブ操作等) を行う場合に有効
Imperfect .imperfect ✨
– スプライン (NURBS / Bezier) プロファイルを回転させる場合にのみ適用
– オンにすると結果は近似的な非有理曲面、オフにすると完全な有理曲面として生成
– 厳密な数学的形状が必要な場合はオフ、軽量化を優先する場合はオン
Detail Page ⚙️
Revolve Type .type 🌀
回転体の生成方式 (閉曲面か開曲面か)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Closed | .closed |
閉じた回転体カーブとして生成 (完全な回転体サーフェス) |
| Open Arc | .openarc |
開いた円弧セグメントとして生成 (部分回転で開放面を残す) |
| Closed Arc | .closedarc |
中心へ向かう連結エッジを持つ開円弧 (パイ状の扇形ジオメトリ) |
回転範囲と分割 📐
Start End Angles .angle 📐
– 回転の開始角度と終了角度を指定 (単位は度)
– 開始 = 0 かつ終了 = 360 で完全な 1 周の回転体になる
– 360 を超える値も有効 (重なった回転体が生成される)
Divisions .divs 🔢
– 円周方向のメッシュサーフェスの密度 (分割数) を指定
– 値が大きいほど滑らかな曲面になるが、ポイント数とクックコストも増加
スプライン次数 📈
Order .order 📈
– スプライン (NURBS / Bezier) タイプを選択した場合に使用される基底の次数
– プロファイルがポリゴンの場合は無効
End Caps 🔒
End Caps .cap 🔒
– オンにするとファセット化された端部キャップを追加
– 部分回転 (Open Arc / Closed Arc) で側面に穴が残るのを防ぐ用途で使用
実践アイデア 💡
Example 1: プロファイルカーブから花瓶を生成 🏺
Line SOP (プロファイル) → Revolve SOP (Revolve Type=Closed, Angle=0-360, Divisions=32) → Geometry COMP → Render TOP
Line SOP または Line SOP で花瓶の側面プロファイルカーブを作成し、Revolve SOP で Y 軸まわりに 360° 回転させて花瓶形状を生成する基本パターン。Divisions で円周方向の滑らかさを調整できる。
- Line SOP / Line SOP で花瓶の側面プロファイル (X 座標が回転半径、Y 座標が高さ) を作成
- Revolve SOP を接続し、
Originを 0, 0, 0、Directionを 0, 1, 0 (Y 軸) に設定 Revolve TypeをClosed、Start End Anglesを 0, 360 にして完全な 1 周回転Divisionsを 32 程度に設定して円周方向の滑らかさを確保- Geometry COMP に接続し、Camera COMP / Light COMP / Render TOP で結果を確認
Example 2: 部分回転で扇形ジオメトリを生成 🍕
Line SOP → Revolve SOP (Revolve Type=Closed Arc, Angle=0-90, End Caps=On) → Geometry COMP
プロファイルカーブを 90° だけ部分回転させてパイのスライス状の扇形ジオメトリを生成する例。Closed Arc を選ぶと中心軸へ向かう連結エッジが追加され、End Caps で側面を閉じて閉じた立体形状にできる。
- Line SOP でプロファイルカーブを作成
- Revolve SOP を接続し、
Revolve TypeをClosed Arcに設定 Start End Anglesを 0, 90 にして 90° の部分回転を指定End Capsをオンにして側面の開口部を自動的に閉じる- Geometry COMP に接続して扇形のレンダリングを確認
Example 3: NURBS プロファイルから滑らかなランプシェードを生成 💡
Bezier Curve (NURBS) → Revolve SOP (Imperfect=Off, Order=4) → Convert SOP → Geometry COMP
Bezier / NURBS カーブを Revolve SOP で回転させて滑らかなランプシェード形状を生成し、後段の Convert SOP でポリゴン化してレンダリングに渡す例。Imperfect をオフにすることで数学的に厳密な有理曲面として生成できる。
- Bezier / NURBS カーブでランプシェードのプロファイルを作成
- Revolve SOP を接続し、
Imperfectをオフにして完全な有理曲面で生成 Orderを 4 に設定してスムーズな曲面次数を指定Divisionsを 48 程度に設定して円周方向の解像度を確保- 後段に Convert SOP を接続して NURBS をポリゴンに変換し、Geometry COMP でレンダリング
関連オペレータ 🔗
類似機能OP 🔍
- Sweep SOP — プロファイルカーブをパスカーブに沿って掃引するサーフェス生成 SOP
- Extrude SOP — プロファイルカーブを直線方向に押し出すサーフェス生成 SOP
- Skin SOP — 複数のプロファイルカーブをロフト (スキニング) してサーフェスを生成
組み合わせ推奨OP 🔄
- Circle SOP — 回転前のプロファイルとして円弧カーブを生成
- Line SOP — 回転前のプロファイルとして直線カーブを生成
- Convert SOP — NURBS / Bezier の回転体をポリゴンに変換してレンダリング互換性を確保
- Transform SOP — 回転体に追加で移動・回転・スケールを適用
- Geometry COMP — 回転体サーフェスをレンダリングパイプラインに投入
前処理・後処理SOP 🎯
- 前処理: Circle SOP、Line SOP、Add SOP、Transform SOP
- 後処理: Convert SOP、Transform SOP、Noise SOP、Material SOP、Out SOP
Info CHOP情報 📊
Revolve 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— このオペレータが最後にクックされたフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 回転体が真円にならない / 想定した軸方向に回転しない
✅ Solution:
OriginとDirectionの値を確認 — Origin はプロファイルカーブからの相対位置、Direction は軸ベクトル方向を表す- プロファイルカーブが軸 (Direction) 上に配置されているとゼロ半径で潰れて見える — プロファイルを軸から離して配置
- Direction ベクトルが (0, 0, 0) になっていないか確認 — ベクトル長 0 では回転軸が定義できない
❌ Problem: メッシュがガタついている / 滑らかでない
✅ Solution:
Divisionsを増やして円周方向のメッシュ密度を上げる (32 → 64 → 128 等)- プロファイルカーブのポイント数が少なすぎる場合は前段の Line / Line SOP で頂点数を増やす
- NURBS / Bezier プロファイルでは
Imperfectをオフにして完全有理曲面として回転させる
❌ Problem: 部分回転 (Open Arc) で側面に穴が残る
✅ Solution:
End Capsをオンにして端部に自動的にキャップを追加Revolve TypeをClosed Arcに変更すると、中心軸方向への連結エッジが自動的に追加されて閉じた扇形ジオメトリになる- 後段で Cap SOP / Bound SOP を接続して別途キャップを生成することも可能
❌ Problem: NURBS / Bezier プロファイルが期待通りに回転しない
✅ Solution:
Orderがプロファイルカーブの頂点数より大きい場合エラーになるため、頂点数を Order 以上にするか Order を下げるImperfectの設定を確認 — 厳密な有理曲面が必要ならオフ、軽量近似でよければオン- 後段に Convert SOP を接続して NURBS / Bezier をポリゴンに変換すると、下流の SOP との互換性が確保される
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Revolve SOP
- TouchDesigner公式ドキュメント – Sweep SOP
- TouchDesigner公式ドキュメント – Extrude SOP
- TouchDesigner公式ドキュメント – Convert SOP

