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

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

Revolve SOP の回転体サーフェス生成機能を示す図

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

概要 📖 – プロファイルカーブの回転体サーフェス生成

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

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 プリミティブを使用する場合にのみ適用されます。

引用元: 公式 docs

回転軸の原点 📍

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 で円周方向の滑らかさを調整できる。

  1. Line SOP / Line SOP で花瓶の側面プロファイル (X 座標が回転半径、Y 座標が高さ) を作成
  2. Revolve SOP を接続し、Origin を 0, 0, 0、Direction を 0, 1, 0 (Y 軸) に設定
  3. Revolve TypeClosedStart End Angles を 0, 360 にして完全な 1 周回転
  4. Divisions を 32 程度に設定して円周方向の滑らかさを確保
  5. 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 で側面を閉じて閉じた立体形状にできる。

  1. Line SOP でプロファイルカーブを作成
  2. Revolve SOP を接続し、Revolve TypeClosed Arc に設定
  3. Start End Angles を 0, 90 にして 90° の部分回転を指定
  4. End Caps をオンにして側面の開口部を自動的に閉じる
  5. 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 をオフにすることで数学的に厳密な有理曲面として生成できる。

  1. Bezier / NURBS カーブでランプシェードのプロファイルを作成
  2. Revolve SOP を接続し、Imperfect をオフにして完全な有理曲面で生成
  3. Order を 4 に設定してスムーズな曲面次数を指定
  4. Divisions を 48 程度に設定して円周方向の解像度を確保
  5. 後段に 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 🎯


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:

  • OriginDirection の値を確認 — 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 TypeClosed Arc に変更すると、中心軸方向への連結エッジが自動的に追加されて閉じた扇形ジオメトリになる
  • 後段で Cap SOP / Bound SOP を接続して別途キャップを生成することも可能

❌ Problem: NURBS / Bezier プロファイルが期待通りに回転しない
✅ Solution:

  • Order がプロファイルカーブの頂点数より大きい場合エラーになるため、頂点数を Order 以上にするか Order を下げる
  • Imperfect の設定を確認 — 厳密な有理曲面が必要ならオフ、軽量近似でよければオン
  • 後段に Convert SOP を接続して NURBS / Bezier をポリゴンに変換すると、下流の SOP との互換性が確保される

参考資料 📚

その他 🔗

公式リソース 📖

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