
概要 📖 – 円・楕円・円弧プロファイル生成
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 で形状を制御
↓
出力: 指定タイプの円・楕円・円弧プリミティブ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
プリミティブタイプの選択 🎨
生成する円の幾何プリミティブ種別を選択。選択したタイプによって以降の一部パラメータの有効・無効が変わる。
| 項目 | 内部名 | 説明 |
|---|---|---|
. |
ポリゴン円。Divisions で頂点数を指定する離散近似で、Arc Type も適用可能 | |
. |
Mesh プリミティブの円。クアッドメッシュベースで生成 | |
. |
NURBS 曲線として生成。Order で次数を制御、Imperfect オプションで rational / non-rational を切替 | |
. |
Bezier 曲線として生成。Order と Imperfect が適用される | |
. |
TouchDesigner ネイティブの Primitive 円。Instancing では推奨されない |
※ 注意: Primitive Type で
Primitiveを選択した場合、Instancing で使うのは推奨されません。Instancing が必要な場合はPolygonやNURBS Curve等を選択してください。
配置面 (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 装飾やパーティクルのソース形状として汎用的に利用できます。
- Circle SOP を作成し、
Primitive TypeをPolygonに設定 Divisionsを64に設定して滑らかな円にする (3 にすれば三角形、4 にすればダイヤ型)RadiusX / Y を同じ値 (1) にして真円に、異なる値にすると楕円になる- Material SOP を後段に接続して見た目を指定
- 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 で角度ベースのアニメーションに繋げる用途にも適しています。
- Circle SOP を作成し、
Primitive TypeをPolygon、Arc TypeをClosed Arcに設定 Arc Anglesの begin を0、end を90に設定して 1/4 円弧を生成Divisionsを32程度に設定して円弧部分を滑らかにする- 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 パスで生成できます。
- Circle SOP を作成し、
Primitive TypeをNURBS Curveに設定 RadiusX / Y を任意の小さい値 (例0.3) に設定- 別途 Line SOP / Hand-drawn プロファイル曲線を準備
- Merge SOP で両者を統合し、Revolve SOP の入力に接続
- 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 TypeがNURBS Curve/Bezier CurveでImperfectがオフだと Divisions は無視される (rational closed curve は理論上完璧な円のため)- Divisions を効かせたい場合は
Imperfectをオン、またはPrimitive TypeをPolygonに切替 - 滑らかな曲線が必要なら NURBS / Bezier + Imperfect オフのまま
Orderを3~4に設定
❌ Problem: Arc Angles を変えても部分円弧にならず完全円のままになる
✅ Solution:
Arc TypeがClosedのままだと Arc Angles は無視されて常に 360° の完全円になるArc TypeをOpen Arc/Closed Arc/Sliced Arcのいずれかに切替- Arc Type は
PolygonとImperfectスプラインのみに適用される点も確認 (NURBS / Bezier + Imperfect オフでは Arc が機能しない)
❌ Problem: テクスチャを貼ると UV が想定と違う
✅ Solution:
Texture CoordinatesがOffになっていないか確認 (Off だと UV が生成されない)Faceに設定するとデフォルト UV が生成されるので、まずこれで貼り直してみる- デフォルト UV では希望の見た目にならない場合は、後段に Texture SOP を入れて UV を再生成 / 修正
❌ Problem: 円が想定した平面に描画されない
✅ Solution:
Orientationパラメータが目的の面 (XY Plane/YZ Plane/ZX Plane) に設定されているか確認- Orientation で対応できない斜め平面に置きたい場合は、Orientation はそのままにして後段に Transform SOP を追加して回転をかける
CenterX / Y / Z で中心位置を移動できるので、Orientation と組み合わせて任意位置に配置
❌ Problem: Instancing で配置すると挙動が想定と違う
✅ Solution:
Primitive TypeがPrimitiveになっていないか確認 (Instancing では Primitive タイプは推奨されない)PolygonまたはNURBS Curveなど別タイプに切替- ポイント数を意図的に減らしたい場合は
Divisionsを小さく設定 (Polygon の場合)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Circle SOP
- TouchDesigner公式ドキュメント – Primitive
- TouchDesigner公式ドキュメント – Spline
- TouchDesigner公式ドキュメント – Texture SOP

