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

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

Sphere SOP の球体ジオメトリ生成機能を示す図

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

概要 📖 – 球体ジオメトリの生成

Sphere SOPは、プロシージャルに球体ジオメトリを生成し、Mesh / NURBS / Bezier / Polygon / Primitive など複数のサーフェスタイプで出力する SOPです。出力はインスタンシングのテンプレートや Bounding Sphere、Render TOP に渡す素材として広く利用されます。

主な用途 🎯

  • 球体ジオメトリのプロシージャル生成 (Mesh / NURBS / Bezier / Polygon / Primitive)
  • VJ・インスタレーションでの抽象オブジェクトの素材生成
  • Instancing のテンプレートジオメトリとして粒子・点群表現に転用
  • Bounding Sphere 計算による入力ジオメトリの境界球取得
  • UV テクスチャ座標付きのマッピング用素材として 3D シェーダに供給

データフロー 🔄

入力: 任意の SOP (Bounds 用、オプション)

処理: Primitive Type / Radius / Frequency / Texture Coordinates に従って球体を構築

出力: 球体ジオメトリ SOP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

Primitive Type .type 🎛️

球体を構成するサーフェスタイプを選択するメニューパラメータ

項目 内部名 説明
Mesh .mesh メッシュサーフェスとして生成 (Rows / Columns で密度を制御)
NURBS .nurbs NURBS サーフェスとして生成 (U Order / V Order を使用)
Bezier .bezier Bezier サーフェスとして生成 (U Order / V Order を使用)
Polygon .poly ポリゴンサーフェスとして生成 (Frequency で分割レベルを制御)
Primitive .prim Primitive (内部表現) として生成。インスタンシング時は非推奨

※ 注意: Primitive Type に Primitive を選択すると、インスタンシング使用時に推奨されない構造になります。インスタンシングが目的の場合は Mesh / Polygon を選択してください。

引用元: 公式 docs

Connectivity .surftype 🔗

Mesh Primitive Type のときに有効になるパラメータ:

  • Connectivity: surftype — Mesh Primitive Type のときに有効になるサーフェスタイプ

Bounds 関連パラメータ 📐

Orient Bounds .orientbounds 🔄
– 入力 SOP が接続されているときのみ有効
– オンにすると入力 SOP の向きに合わせて球体ジオメトリを回転

Modify Bounds .modifybounds 🎛️
– 入力 SOP が接続されているときのみ有効
– オンにすると下記の Transform パラメータで Bounds の位置・回転・半径をさらに変更

Accurate Bounds .accurate 📏
– 入力ジオメトリの Bounding Sphere を生成するときに使用
– オンにするとより正確な Bounding Sphere を計算 (処理コストは増加)

Transform 関連パラメータ 🎯

Rotate Order .rord 🔄
– 回転の適用順序を指定するメニューパラメータ
– X / Y / Z 軸の回転順序を 6 通りから選択 (XYZ / XZY / YXZ / YZX / ZXY / ZYX)

Radius .rad 📏
– 球体の半径を X / Y / Z 各軸で指定
– 軸ごとに異なる値を設定すると楕円体として出力

Center .t 🎯
– 球体中心のオブジェクト原点からのオフセット位置 (X / Y / Z)

Rotate .r 🔄
– 球体を X / Y / Z 軸で回転 (単位: 度)

Anchor 関連パラメータ 📌

Reverse Anchors .reverseanchors 🔁
– アンカー方向を反転

Anchor U .anchoru 📌
– X 軸方向のアンカー点 (回転・スケール・位置の基準点)

Anchor V .anchorv 📌
– Y 軸方向のアンカー点

Anchor W .anchorw 📌
– Z 軸方向のアンカー点

Orientation .orient 🧭

球体の極を揃える軸:

  • Orientation: orient — 球体の Pole (極) を整列させる軸を指定

Tessellation 関連パラメータ 🧱

Frequency .freq 📈
– Polygon Primitive Type 使用時のポリゴン分割レベル
– 値を上げるほど球体表面のポリゴン数が増加 (滑らかになるが負荷も上昇)

Rows .rows 📏
– Mesh / 不完全 NURBS / 不完全 Bezier 使用時の行数

Columns .cols 📏
– Mesh / 不完全 NURBS / 不完全 Bezier 使用時の列数

U Order .orderu 📐
– スプライン曲線使用時の U 方向のオーダー (NURBS / Bezier 用)

V Order .orderv 📐
– スプライン曲線使用時の V 方向のオーダー

サーフェス品質関連パラメータ ✨

Imperfect .imperfect 🔧
– Bezier / NURBS 球体専用
– オンで非有理近似曲線、オフで完全な有理曲線として出力

Unique Points per Pole .upole 📍
– Mesh / NURBS / Bezier サーフェス専用
– 極のポイントを各 Column で固有にするか共有するかを指定

Texture Coordinates .texture 🗺️
– 球体に UV テクスチャ座標を付加

Compute Normals .normals 🧭
– ジオメトリに法線を生成


実践アイデア 💡

Example 1: シンプルな球体オブジェクト生成 🟢

Sphere SOP → Geometry COMP → Render TOP

プロシージャルに生成した球体をレンダリングパイプラインに投入する基本パターン。Primitive Type を Polygon に切り替えるとポリゴンモデルとして扱えます。

  1. Sphere SOP を作成し Primitive Type を Polygon に設定
  2. Frequency を上げて表面のポリゴン分割数を調整
  3. Texture Coordinates をオンにして UV を生成
  4. Geometry COMP の SOP として参照し Render TOP でレンダリング

Example 2: インスタンシング用テンプレートジオメトリ ✨

Sphere SOP → Geometry COMP (Instancing) → Render TOP

小さな球体を粒子表現のテンプレートとして利用し、Instancing で大量に配置するパターン。Primitive Type は Mesh が推奨されます。

  1. Sphere SOP の Primitive Type を Mesh に設定 (Primitive はインスタンシング非推奨)
  2. Radius を 0.05 など小さい値にして粒子サイズの基準を作成
  3. Geometry COMP の Instancing にインスタンス座標 CHOP を接続
  4. Render TOP で大量の球体粒子を一括描画

Example 3: 入力ジオメトリの Bounding Sphere 取得 📐

Source Geometry SOP → Sphere SOP (Accurate Bounds) → Bounds 可視化

任意の入力ジオメトリに対し、それを内包する球体 (Bounding Sphere) を生成して衝突判定や視野チェックに転用するパターン。

  1. 対象のソースジオメトリ SOP を Sphere SOP の入力に接続
  2. Orient Bounds をオンにして入力 SOP の向きに揃える
  3. Accurate Bounds をオンにして精度を優先 (処理コストは増加)
  4. 出力された Bounding Sphere を衝突判定や Camera 視野算出に利用

関連オペレータ 🔗

類似機能OP 🔍

  • Box SOP — 直方体ジオメトリのプロシージャル生成
  • Circle SOP — 円・楕円ジオメトリのプロシージャル生成
  • Torus SOP — トーラス (ドーナツ形) ジオメトリのプロシージャル生成

組み合わせ推奨OP 🔄

  • Geometry COMP — SOP をレンダリングパイプラインに投入するコンテナ
  • Render TOP — Geometry COMP を 3D レンダリングして TOP に出力
  • Phong MAT — 球体表面のマテリアル (シェーダ) を割り当て
  • Geometry COMP — 球体をテンプレートとして大量配置するインスタンシング機構

前処理・後処理SOP 🎯


Info CHOP情報 📊

Sphere SOP は Info CHOP による詳細情報取得に対応しています。

ジオメトリ統計 📐

  • num_points: num_points — 生成された球体に含まれるポイント数
  • num_prims: num_prims — 生成された球体に含まれるプリミティブ数
  • num_particles: num_particles — 含まれるパーティクル数 (Sphere の場合は通常 0)

GPU 転送タイミング 🎮

  • last_vbo_update_time: last_vbo_update_time — 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間
  • last_meta_vbo_update_time: last_meta_vbo_update_time — メタサーフェスジオメトリデータを GPU に更新するのにかかった時間

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 球体表面がカクカクして滑らかでない
✅ Solution:

  • Frequency (Polygon) または Rows / Columns (Mesh) の値を上げる
  • Compute Normals をオンにして法線を生成しシェーディングを改善
  • Primitive Type を Polygon から NURBS / Bezier に切り替えて滑らかな曲面で出力

❌ Problem: Instancing で球体テンプレートが正しく配置されない
✅ Solution:

  • Primitive Type を Primitive から Mesh または Polygon に変更 (Primitive はインスタンシング非推奨)
  • Texture Coordinates をオンにしてシェーダ側で UV を参照できるようにする
  • Geometry COMP の Instancing パラメータでインスタンス座標 CHOP のパスを再確認

❌ Problem: Bounds 入力を接続したが球体の向き・サイズが反映されない
✅ Solution:

  • Orient Bounds をオンにして入力 SOP の向きに球体を合わせる
  • Modify Bounds をオンにすると Transform パラメータでさらに微調整が可能
  • Accurate Bounds をオンにして精度の高い Bounding Sphere を計算

参考資料 📚

公式リソース 📖

コミュニティ 💬

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