
概要 📖 – 骨の影響範囲を決める
Capture Region SOPは、Bone オブジェクトの内部に配置し、ポイントウェイト計算で使われるカプセル状のキャプチャ領域 (中心線 + 上下半球 + 半径) を定義する SOPです。Capture SOP は Hierarchy 配下にあるこの Region を自動的に検出し、Region 形状内に入るポイントへウェイトを割り当ててスケルタルスキニングを構築します。
主な用途 🎯
- Bone オブジェクト配下に配置してキャラクターリグのキャプチャ領域 (カプセル) を定義し、Capture SOP のウェイト計算対象範囲を視覚化
- Orientation で領域の長軸を設定し、Bone 内部に置いた Region は Z 軸 (Bone の伸長方向) を選択するのが定石
- Top Cap / Bottom Cap の X/Y/Z 半径でカプセルの太さを個別調整し、関節 (肩・肘・膝) や手足の太さに合わせて領域を絞り込み
- Max/Min Weight でフォールオフを制御し、中心線上の最大ウェイトと境界上の最小ウェイトを定義してスキニング変形のなめらかさを調整
- Display Color で各 Region に固有色を割り当て、Capture SOP の
Color by Capture Regionモードでウェイト分布をビューポート上で目視確認
データフロー 🔄
Bone (Geometry COMP) 配下に配置
↓
Orientation / Center / Top・Bottom Height / Top・Bottom Cap / Weight でカプセル領域を定義
↓
Capture SOP が Hierarchy 配下を traverse して各 Region を検出
↓
ジオメトリのポイントウェイトに反映
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Region Page 📁
Orientation .orient 🧭
領域 (カプセル) の長軸方向を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X Axis | .x |
領域の長軸を X 軸方向に揃える |
| Y Axis | .y |
領域の長軸を Y 軸方向に揃える |
| Z Axis | .z |
領域の長軸を Z 軸方向に揃える。Bone オブジェクト内部に Region を配置する場合は Z 軸を選択するのが定石 |
※ 注意: Bone オブジェクト内に Capture Region SOP を配置する場合は Z 軸を指定してください。Bone は Z 軸方向に伸びる前提で設計されているため、別軸を選ぶと Region の長軸と Bone の伸長方向がずれ、ウェイト分布が意図しない方向に貼り付きます。
領域の位置・形状関連パラメータ 📐
Center .t 📍
– 領域 (カプセル) の中心位置を XYZ 座標で指定
– 内部成分 (X/Y/Z 個別に編集可能):
tx— X 座標ty— Y 座標tz— Z 座標
Top Height .theight ⬆️
– 中心からカプセル上端半球までの高さ (中心線の上半分の長さ)
– Orientation で選択した軸の正方向に伸びる
Top Cap .tcap 🔺
– カプセル上端の半球部分の X / Y / Z 半径
– 軸ごとに異なる値を入れると楕円体状のキャップになる
– 内部成分:
tcapx— X 半径tcapy— Y 半径tcapz— Z 半径
Bottom Height .bheight ⬇️
– 中心からカプセル下端半球までの高さ (中心線の下半分の長さ)
– Orientation で選択した軸の負方向に伸びる
Bottom Cap .bcap 🔻
– カプセル下端の半球部分の X / Y / Z 半径
– Top Cap と独立に設定でき、上下で太さを変えた円錐台状の Region を作れる
– 内部成分:
bcapx— X 半径bcapy— Y 半径bcapz— Z 半径
Max/Min Weight .weight ⚖️
– 中心線上のポイントに与える最大ウェイト (1 つ目の値) と、領域境界上のポイントに与える最小ウェイト (2 つ目の値)
– 中心線から境界までの中間ポイントは両値をブレンドして計算される
– 隣接する Region 同士のフォールオフを調整してスキニング変形の継ぎ目を滑らかにするのに使う
Display Page 📁
表示色関連パラメータ 🎨
Display Color .color 🎨
– Region のヘルパー表示色を RGB で指定
– デフォルトでは式によって親オブジェクト (Bone / Geometry COMP) の色を継承する
– Capture SOP の Point Coloring を Color by Capture Region に切替えると、この色がウェイト割当先のポイントにも反映されデバッグに役立つ
– 内部成分:
colorr— 赤成分 (0-1)colorg— 緑成分 (0-1)colorb— 青成分 (0-1)
実践アイデア 💡
Example 1: Bone内にRegionを置きウェイト準備 🦴
Bone (Geometry COMP) → Capture Region SOP (Orientation = Z Axis, Top/Bottom Height = Bone 長さの半分) → Capture SOP (Hierarchy = ルート COMP)
キャラクターリグの各 Bone (Geometry COMP) の内部に Capture Region SOP を配置し、Orientation を Z 軸、Top/Bottom Height を Bone の長さの半分ずつに設定することで Bone を覆うカプセル領域を定義します。上流の Capture SOP は Hierarchy 配下を traverse してこの Region を検出し、ベースジオメトリのポイントへ自動的にウェイトを割り当てます。
- キャラクターの Bone (Geometry COMP) を作成し、その内部に Capture Region SOP を追加
OrientationをZ Axisに設定 (Bone の伸長方向に揃える)Top HeightとBottom Heightを Bone の長さの半分ずつに設定し、Bone 全長を覆うようにするTop CapとBottom Capの半径を Bone まわりの肉の厚みに合わせて調整- 上流側で Capture SOP を用意し
Hierarchyに Bone 階層のルート COMP を指定 - Capture SOP の
Point ColoringをColor by Capture Regionにしてビューポートでウェイトが Region 形状通りに乗っているか確認
Example 2: Cap非対称で関節のウェイト調整 🎚️
Capture Region SOP (Top Cap = 大, Bottom Cap = 小) → Capture SOP → Deform SOP → Geometry COMP
肩や腰など Bone の一端だけ筋肉のボリュームが大きい部位では、Top Cap と Bottom Cap の半径を非対称にして円錐台状の Region を作り、太い側に多めのウェイトを集めます。Capture SOP がこの非対称な Region 形状を読み取り、Deform SOP で変形させたときに肩や腰のボリュームが自然に追従するようになります。
- 対象の Bone 内 Capture Region SOP を選択
- 肩や腰の側 (太い側) の Cap の
X / Y / Z 半径を大きめに設定 - 反対側の Cap は細く設定して、隣接する Bone の Region との干渉を抑える
Max/Min Weightの差を調整してフォールオフのなだらかさを決める- 上流の Capture SOP → 下流の Deform SOP 経由でビューポート確認し、ボーンを回転させて関節境界の変形を検証
Example 3: Display Colorでウェイト分布を可視化 🌈
Bone 1 (Region color = 赤) / Bone 2 (Region color = 緑) / Bone 3 (Region color = 青) → Capture SOP (Color by Capture Region)
複数 Bone を含むキャラクターでは、各 Bone 内の Capture Region SOP の Display Color を Bone ごとに異なる色 (赤・緑・青など) に設定しておきます。Capture SOP の Point Coloring を Color by Capture Region モードに切替えると、各ポイントが影響を受けている Region の色で着色されるため、ウェイトの分布や Region の領域がうまく分かれているかをビューポート上で直感的にデバッグできます。
- 各 Bone 内の Capture Region SOP を順に選択
Display Colorのcolorr / colorg / colorbを Bone ごとに別の値に設定 (赤・緑・青 など)- Capture SOP の
Point ColoringをColor by Capture Regionに切替え - ビューポートで Bone 境界が色のグラデーションで現れていることを確認
- 想定外の色 (例: 明るい赤) で表示されるポイントはどの Region にも捕捉されていないため、該当 Region の Cap 半径や Height を見直す
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- Capture SOP — Hierarchy 配下に置かれた Capture Region 群を検出してジオメトリのポイントへウェイトを割り当てる本体
- Deform SOP — Capture SOP が付与したウェイトを用いて Bone の姿勢変化に応じたスキニング変形を実行
- Bone Group SOP — Capture 後にポイントあたりのボーン数やグループあたりのボーン数を制限してスキニングを最適化
- Geometry COMP — Capture Region SOP を内部に保持する Bone (オブジェクト) として機能する COMP
前処理・後処理SOP 🎯
Info CHOP情報 📊
Capture Region 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: Capture SOP のビューポートで全ポイントが明るい赤で表示され、Region に捕捉されない
✅ Solution:
Top Height/Bottom Heightが Bone の長さに対して十分大きいか確認 (短すぎるとジオメトリが Region 外に出る)Top Cap/Bottom Capの半径がジオメトリの太さを覆っているか確認し、必要なら 1.5〜2 倍に拡大- 上流の Capture SOP の
Hierarchyに、Capture Region SOP を含む親 COMP のパスが指定されているかを再確認
❌ Problem: Bone を回転させると関節周辺がカクついて変形がきれいに繋がらない
✅ Solution:
Max/Min Weightの Min 値を 0 から少し上げ、領域境界に薄いウェイトを残してフォールオフをなだらかにする- 隣接する Bone 内の Capture Region SOP との Cap 半径を見直し、領域同士をわずかに重ねてウェイトのブレンドを促す
- 下流に Bone Group SOP を挟んで、1 ポイントあたりに作用するボーン数を均一化する
❌ Problem: Region の形状がビューポート上で意図した方向と違って表示される
✅ Solution:
Orientationが Bone の伸長方向 (通常 Z 軸) と一致しているか確認- Capture Region SOP を含む親 Geometry COMP の Transform が想定どおりか (回転やスケールが余計にかかっていないか) チェック
Centerのtx / ty / tzが原点付近に設定されているかを確認 (Bone 中心とずれていると Region が浮く)
❌ Problem: Region の Display Color を変更しても Capture SOP のポイントカラーに反映されない
✅ Solution:
- Capture SOP の
Point ColoringがColor by Capture Regionモードになっているかを確認 (デフォルトのDefault Source Colorではポイント側の色が優先される) Display Colorがデフォルトで親 COMP の色を式参照している場合は、式を解除してcolorr / colorg / colorbに直接値を入れる- 再キャプチャがトリガされているか確認するため、Capture SOP の
Capture Frame時点にタイムラインを送ってクックを発火させる
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Capture Region SOP
- TouchDesigner公式ドキュメント – Capture SOP
- TouchDesigner公式ドキュメント – Deform SOP
- TouchDesigner公式ドキュメント – Bone

