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

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

Circle SOP の円・楕円・円弧プロファイル生成機能を示す図

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

概要 📖 – 円・楕円・円弧プロファイル生成

Circle SOPは、Polygon / Mesh / NURBS / Bezier / Primitive の 5 種類のプリミティブタイプから選択して円・楕円・円弧プロファイルを生成する基礎ジオメトリ SOPです。Radius X / Y を独立指定して楕円を作り、Arc Type と Arc Angles で完全円・開いた弧・パイ型・スライス型を切替えて部分円弧も生成できます。

主な用途 🎯

  • 基礎ジオメトリとしての円・楕円プロファイル生成で、Radius X / Y を独立指定することで真円から扁平な楕円まで 1 ノードで構築
  • Primitive Type 切替による多様な円表現で、Polygon / Mesh / NURBS Curve / Bezier Curve / Primitive の 5 種から用途に応じた幾何タイプを選択
  • Arc Type による開閉・パイ形状切替で、Closed / Open Arc / Closed Arc / Sliced Arc の 4 モードを切替えて完全円・開いた弧・パイ型・スライス型を生成
  • Arc Angles による部分円弧の生成で、開始角・終了角を指定して扇形・パックマン形状や角度の異なる弧プロファイルを 1 ノードで構築
  • Divisions 制御による多角形近似で、Polygon / Imperfect Spline 円で 3 (三角形) / 4 (ダイヤ) / 5 (五角形) … のように分割数を変えて多角形プリミティブとしても利用可能
  • Revolve / Sweep / Skin の入力プロファイルとしての利用で、回転体・スイープ面・スキン面生成のソース曲線として Circle SOP を前段に置く頻出パターン

データフロー 🔄

入力: なし (source SOP)

Primitive Type / Orientation で幾何タイプと配置面を決定

Radius / Center / Divisions / Arc Type / Arc Angles で形状を制御

出力: 指定タイプの円・楕円・円弧プリミティブ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

プリミティブタイプの選択 🎨

生成する円の幾何プリミティブ種別を選択。選択したタイプによって以降の一部パラメータの有効・無効が変わる。

項目 内部名 説明
. ポリゴン円。Divisions で頂点数を指定する離散近似で、Arc Type も適用可能
. Mesh プリミティブの円。クアッドメッシュベースで生成
. NURBS 曲線として生成。Order で次数を制御、Imperfect オプションで rational / non-rational を切替
. Bezier 曲線として生成。Order と Imperfect が適用される
. TouchDesigner ネイティブの Primitive 円。Instancing では推奨されない

※ 注意: Primitive Type で Primitive を選択した場合、Instancing で使うのは推奨されません。Instancing が必要な場合は PolygonNURBS Curve 等を選択してください。

引用元: 公式 docs

配置面 (Orientation) の選択 🧭

円が描画される平面を指定。

項目 内部名 説明
. XY 平面 (法線 Z) 上に円を配置
. YZ 平面 (法線 X) 上に円を配置
. ZX 平面 (法線 Y) 上に円を配置

入力 SOP からのバウンディング修飾 📦

Modify Bounds .modifybounds 📦
– 入力 SOP が接続されている場合のみ有効になるトグル
– オンにすると、続く Radius / Center などのトランスフォームパラメータが入力 SOP のバウンディングをさらに修飾する形で適用される

半径と中心位置 📐

Radius .rad 📐
– 円の X 方向半径 (radx) と Y 方向半径 (rady) を独立指定
両者を同じ値にすると真円、異なる値にすると楕円になる
– 単位はワールド座標

Center .t 🎯
– 円の中心位置を X / Y / Z (tx / ty / tz) で指定
– Orientation で選択した平面と組み合わせて任意位置に配置可能

アンカー位置の制御 ⚓

Reverse Anchors .reverseanchors 🔁
– アンカー方向を反転させるトグル
– 後段の Transform / Copy で回転・スケールの基準点が逆向きになる用途で利用

Anchor U .anchoru
– X 方向のアンカー位置を指定
– 円の配置・スケール・回転の基準点 (中心からのオフセット) として作用する

Anchor V .anchorv
– Y 方向のアンカー位置を指定
– Anchor U と組み合わせて基準点を 2 次元で調整

スプライン次数と分割数 🧮

Order .order 🧮
– NURBS Curve / Bezier Curve を選択した場合に適用されるスプライン次数
– 一般的に 3 (キュービック) ~ 4 が標準。値が大きいほど滑らかになるが内部制御点が増える

Divisions .divs 🔢
– 円を表現する辺の数 (= ポイント数 + 1)
Polygon と Imperfect スプラインのみに適用。Divisions が大きいほど滑らかな円になる
– 例: 3 = 三角形 / 4 = ダイヤ / 5 = 五角形 / 6 = 六角形 …
– Open Arc 系では points = Divisions + 1、Closed Arc 系では points = Divisions + 2 になる点に注意

Arc Type の選択 🥧

円の描画方法を切替。Polygon と Imperfect スプラインにのみ適用される。

項目 内部名 説明
. 完全に閉じた円。Arc Angles を無視して 360° の完全円を生成
. 開いた円弧。Arc Angles の begin / end の範囲で開いた曲線を生成
. Open Arc の両端と中心点を結んだパイ型 (扇形)。閉じたエッジが追加される
. Closed Arc と同様だが、円周上の全ポイントを中心と結ぶスライス形状になる

Arc Angles の指定 📐

Arc Angles .angle 📐
– 円弧の開始角と終了角 (degrees) を指定
– begin=0 / end=360 なら完全円、begin=0 / end=90 なら 1/4 円弧
合計角が 360 を超えても許容され、その場合は円周を複数回巻く軌跡を生成

Imperfect オプション 🔄

Imperfect .imperfect 🔄
– NURBS / Bezier 円のみに適用されるトグル
– オンにすると non-rational な近似曲線で円を表現 (Divisions が有効になる)
– オフにすると rational closed curve として完全な円を表現 (理論上完璧だが Divisions は無視される)

テクスチャ座標の生成 🖼️

テクスチャ座標を生成するかどうかを指定。

項目 内部名 説明
. テクスチャ座標を生成しない
. デフォルトのテクスチャ座標を生成。後段で Texture SOP を使って修正可能

法線の自動生成 🧷

Compute Normals .normals 🧷
– オンにするとサーフェスに法線が生成される
– 後段の Material SOP / Render TOP で陰影計算に使う場合はオンにする


実践アイデア 💡

Example 1: 基本的な円ジオメトリの生成とレンダリング ⭕

Circle SOP (Polygon, Divisions=64, Radius=1) → Material SOP → Geometry COMP → Render TOP

Circle SOP の最も基本的な使い方として、Polygon タイプ・Divisions 64 で滑らかな真円を生成し、Material SOP と Geometry COMP を経由して Render TOP でレンダリングする基礎パターンです。Divisions の値を変えると三角形・四角形・五角形といった多角形プリミティブとしても使え、UI 装飾やパーティクルのソース形状として汎用的に利用できます。

  1. Circle SOP を作成し、Primitive TypePolygon に設定
  2. Divisions64 に設定して滑らかな円にする (3 にすれば三角形、4 にすればダイヤ型)
  3. Radius X / Y を同じ値 (1) にして真円に、異なる値にすると楕円になる
  4. Material SOP を後段に接続して見た目を指定
  5. Geometry COMP に組込み、Render TOP の Geometry に指定してレンダリング

Example 2: Arc Angles で部分円弧 (扇形) を生成 🥧

Circle SOP (Polygon, Arc Type=Closed Arc, Arc Angles=0/90) → Transform SOP → Material SOP

Arc Type を Closed Arc に切替えて Arc Angles の begin / end を指定すると、両端を中心点と結んだパイ型 (扇形) プロファイルが生成できます。ローディングインジケータ・進捗ダイヤル・チャート要素・ゲーム UI の選択メニューなど 2D UI 系の頻出パターンで、後段の Transform SOP で角度ベースのアニメーションに繋げる用途にも適しています。

  1. Circle SOP を作成し、Primitive TypePolygonArc TypeClosed Arc に設定
  2. Arc Angles の begin を 0、end を 90 に設定して 1/4 円弧を生成
  3. Divisions32 程度に設定して円弧部分を滑らかにする
  4. Transform SOP の Rotate Z にアニメーションを繋げて回転する扇形に展開

Example 3: Revolve SOP の入力プロファイルとして利用 🍶

Circle SOP (NURBS Curve, Radius=0.3) + Line SOP (プロファイル) → Merge SOP → Revolve SOP → Material SOP

Circle SOP は Revolve / Sweep / Skin など回転・押し出し系 SOP の入力プロファイルとして頻繁に使われます。NURBS Curve タイプで小さな円を作り、別途用意した縦方向のプロファイル曲線と組み合わせて Revolve SOP に渡せば、回転対称な花瓶やランプシェードのサーフェスが 1 パスで生成できます。

  1. Circle SOP を作成し、Primitive TypeNURBS Curve に設定
  2. Radius X / Y を任意の小さい値 (例 0.3) に設定
  3. 別途 Line SOP / Hand-drawn プロファイル曲線を準備
  4. Merge SOP で両者を統合し、Revolve SOP の入力に接続
  5. Revolve SOP で回転軸と Divisions を調整して回転体サーフェスを生成

関連オペレータ 🔗

類似機能OP 🔍

  • Sphere SOP — 球体プリミティブ生成 (Circle が 2D 円、Sphere は 3D 球)
  • Rectangle SOP — 矩形プロファイル生成 (Circle が円、Rectangle が長方形)
  • Tube SOP — 円筒・円錐プリミティブ生成 (Circle を回転押し出した結果に相当)

組み合わせ推奨OP 🔄

  • Revolve SOP — Circle を入力プロファイルとして回転体サーフェスを生成
  • Sweep SOP — Circle を断面プロファイルとしてパスに沿ってスイープ
  • Skin SOP — 複数の Circle SOP をスタックして補間スキンサーフェスを生成
  • Copy SOP — Circle を多数コピー・分散配置して装飾パターンを生成
  • Transform SOP — Circle 出力後の回転・スケール・移動 (Anchor U/V との併用も多い)
  • Texture SOP — Texture Coordinates 設定後にテクスチャ座標を後修正

前処理・後処理SOP 🎯


Info CHOP情報 📊

Circle 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 — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: Divisions を増やしても円が滑らかにならない
✅ Solution:

  • Primitive TypeNURBS Curve / Bezier CurveImperfect がオフだと Divisions は無視される (rational closed curve は理論上完璧な円のため)
  • Divisions を効かせたい場合は Imperfect をオン、または Primitive TypePolygon に切替
  • 滑らかな曲線が必要なら NURBS / Bezier + Imperfect オフのまま Order34 に設定

❌ Problem: Arc Angles を変えても部分円弧にならず完全円のままになる
✅ Solution:

  • Arc TypeClosed のままだと Arc Angles は無視されて常に 360° の完全円になる
  • Arc TypeOpen Arc / Closed Arc / Sliced Arc のいずれかに切替
  • Arc Type は PolygonImperfect スプラインのみに適用される点も確認 (NURBS / Bezier + Imperfect オフでは Arc が機能しない)

❌ Problem: テクスチャを貼ると UV が想定と違う
✅ Solution:

  • Texture CoordinatesOff になっていないか確認 (Off だと UV が生成されない)
  • Face に設定するとデフォルト UV が生成されるので、まずこれで貼り直してみる
  • デフォルト UV では希望の見た目にならない場合は、後段に Texture SOP を入れて UV を再生成 / 修正

❌ Problem: 円が想定した平面に描画されない
✅ Solution:

  • Orientation パラメータが目的の面 (XY Plane / YZ Plane / ZX Plane) に設定されているか確認
  • Orientation で対応できない斜め平面に置きたい場合は、Orientation はそのままにして後段に Transform SOP を追加して回転をかける
  • Center X / Y / Z で中心位置を移動できるので、Orientation と組み合わせて任意位置に配置

❌ Problem: Instancing で配置すると挙動が想定と違う
✅ Solution:

  • Primitive TypePrimitive になっていないか確認 (Instancing では Primitive タイプは推奨されない)
  • Polygon または NURBS Curve など別タイプに切替
  • ポイント数を意図的に減らしたい場合は Divisions を小さく設定 (Polygon の場合)

参考資料 📚

その他 🔗

公式リソース 📖

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