
概要 📖 – 頂点を骨に紐付ける
Capture SOPは、入力ジオメトリのポイントを Capture Region (Bone) にウェイト割当してスケルタルスキニングを準備する SOPです。Hierarchy 配下の Bone 群を traverse して自動でウェイトを計算し、Deform SOP と連携してキャラクター変形パイプラインを構成します。
主な用途 🎯
- キャラクターリグのスキニング下準備としてジオメトリのポイントを Bone (Capture Region) にウェイト割当
- Hierarchy 配下の Bone 群を traverse して各 Capture Region から影響度を自動計算
- NURBS サーフェスの CV ウェイトを Surface モードで安定して計算 (Points モードとの切替対応)
- Override File (.ocapt) を読込んで自動計算結果に手動ウェイトを上書き
- Save File による計算済ウェイトの書き出しでイテレーション中の再計算コストを削減
データフロー 🔄
入力 0: ベースジオメトリ (ポイント / CV) + 入力 1 (省略可): Capture Region 群
↓
Weight from / Hierarchy 設定に従ってウェイト計算
↓
Override File 適用 (任意)
↓
出力: ウェイト属性が付与されたジオメトリ SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Capture Page 📁
対象ポイント絞り込み関連パラメータ 🎯
Group .group 🎯
– 入力 0 (input0) の中でウェイト計算対象とするポイントグループを指定
– 空欄なら全ポイントが対象
Hierarchy .rootbone 🌳
– Capture Region を探索する起点となるオブジェクト階層 (COMP) のパス
– このパス配下を traverse して見つかった Capture Region 群でウェイト計算が行われる
Weight from .weightfrom 🎛️
ウェイト計算に使うポイント位置の取得方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Surface | .surface |
(デフォルト) サーフェス上の位置でウェイトを計算。NURBS サーフェスのように CV がサーフェスから離れている場合に有効で、CV の「最も影響を受けるサーフェス上の点」を求めてその位置で region 内かを判定 |
| Points | .cv |
ポイント (CV) そのものの位置で region 内かを判定してウェイト計算 |
キャプチャタイミング・出力関連パラメータ 🎬
Capture Frame .captframe 📅
– キャプチャ計算を行うフレーム番号
– TouchDesigner がこのフレームに到達するたびにジオメトリが再キャプチャされる
– アニメーションレンジ外 (例: -1) を指定するのが一般的
Point Coloring .color 🎨
– 各ポイントを Capture Region のウェイトに応じて着色 (point 属性を使用)
– ポイントは自身が属する Region の色を継承し、ウェイトが軽くなるほど暗く表示される
– どの Region にも捕捉されないポイントは 明るい赤 で表示される
– 切替可能なモード:
- Default Source Color (coldefault) — ポイントのデフォルトソースカラーを使用
- Color by Capture Region (colregion) — Capture Region の色でポイントを着色
Override File .captfile 📄
– キャプチャオーバーライドファイル (*.ocapt) のパス
– TouchDesigner のウェイト計算後にこのファイルが読み込まれ、記述された point/region/weight でカスタムウェイトに上書きされる
– 同じ point/region の組合せが複数行ある場合は最後の行が採用される
Override Page 📁
オーバーライドファイル保存関連パラメータ 💾
Save File .savefile 📁
– 全ポイントまたは選択ポイントのウェイトを書き出す作業ファイル (.ocapt) のパス
– このファイルをそのまま編集して Override File に渡すワークフローが標準
Increment Save File .autoincr 🔢
– 保存時に Save File 名を自動でインクリメントする
– オフにすると上書き確認なしに同名で上書きされるため注意
Save All Data to File .savecaptfile 💾
– 全ポイントのウェイトを Save File に書き出す Pulse パラメータ
Save Selected Points to File .savesel ✅
– ビューポートで選択中のポイントのみを Save File に書き出す Pulse パラメータ
– この SOP をビューポートで編集中であることが必須
実践アイデア 💡
Example 1: キャラクタージオメトリへのスキニング下準備 🦴
入力 SOP → Capture SOP (Hierarchy = /obj/character_rig, Weight from = Surface) → Deform SOP → Geometry COMP
キャラクターのベースメッシュに対し、ボーン階層を Hierarchy で指定して Capture SOP でウェイト割当を行い、後段の Deform SOP でスキニング変形を適用するキャラクターアニメーションの基本フロー。
- ベースとなるキャラクタージオメトリ SOP を用意
- Capture Region SOP 群を含む Bone 階層 COMP を作成 (各 region に色を割当てておくとデバッグしやすい)
- Capture SOP の
Hierarchyに Bone 階層 COMP のパスを指定 Capture Frameをアニメーションレンジ外 (例:-1) に設定し、その時点で Bone を T ポーズに合わせるPoint ColoringをColor by Capture Regionにしてビューポートでウェイト分布を確認- 下流に Deform SOP を接続して Bone のアニメーションが反映されることを確認
Example 2: Override File でのカスタムウェイト上書き 📝
Capture SOP (Save File → .ocapt 編集) → Capture SOP (Override File 設定) → Deform SOP
Capture SOP の自動ウェイト計算では肘・膝など関節の境界が綺麗に出ないケースがあります。Save File でウェイトを書き出し、テキストエディタで該当ポイントのウェイトを手動調整した .ocapt を Override File に戻すことで、自動計算 + 手動補正のハイブリッドなウェイト編集が可能になります。
- Capture SOP で自動ウェイト計算を実行
Save Fileに書き出しパスを設定しSave All Data to Fileを pulse して .ocapt を出力- 出力された .ocapt をテキストエディタで開き、調整したい point/region 行のウェイト値を編集
Override Fileに編集後の .ocapt のパスを設定- 再キャプチャ後、Deform SOP の変形で関節境界が改善していることを確認
Example 3: 選択ポイントのみウェイトを書き出して局所イテレーション ♻️
Capture SOP (ビューポートで対象ポイント選択) → Save Selected Points to File → 編集後 .ocapt を Override File へ
顔や手など局所だけウェイトを再調整したい場合に、ビューポートで対象ポイントを選択してから Save Selected Points to File で部分書き出しを行い、その差分のみを Override File として運用するイテレーションワークフロー。全ポイント書き出しに比べて編集ファイルが小さく、差分管理しやすくなります。
- Capture SOP をビューポートで編集対象として開く
- ウェイトを再調整したいポイントだけをビューポートで選択
Save Fileにパスを設定しSave Selected Points to Fileを pulse- 書き出された .ocapt を編集し対象ポイントのウェイト値を更新
Override Fileに編集後 .ocapt を設定して再キャプチャ
関連オペレータ 🔗
類似機能OP 🔍
- Capture Region SOP — Capture SOP が参照する個々の Region (Bone 形状) を定義する SOP
組み合わせ推奨OP 🔄
- Deform SOP — Capture SOP が付与したウェイトを使って実際にスキニング変形を適用
- Capture Region SOP — Capture SOP の Hierarchy 配下に配置して Region (Bone) を定義
- Bone Group SOP — Bone (Capture Region) 群をグループとして整理する
- Geometry COMP — Capture SOP + Deform SOP の出力をレンダリングパイプラインへ
前処理・後処理SOP 🎯
- 前処理: Grid SOP、Box SOP、Point SOP
- 後処理: Deform SOP、Group SOP、Convert SOP
Info CHOP情報 📊
Capture 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: 全ポイントが明るい赤で表示される (どの Region にも捕捉されていない)
✅ Solution:
Hierarchyパラメータが Bone 階層 COMP の正しいパスを指しているか確認- Hierarchy 配下に Capture Region SOP が実在し、Region の Inner/Outer Weight 範囲がジオメトリを覆う大きさになっているか確認
Capture Frameの時点で Bone が想定位置にあるかタイムラインを当該フレームに送って目視確認
❌ Problem: NURBS サーフェスでウェイトが想定と大きくズレる
✅ Solution:
Weight fromをPointsからSurfaceに切替えて再計算 (NURBS は CV が surface から離れがちなため)- Capture Region の Inner/Outer Weight 半径が NURBS の曲率変化に対して大きすぎないか確認
- サーフェスの U/V 解像度が低すぎる場合は Refine SOP 等で CV を増やしてから再キャプチャ
❌ Problem: .toe を再読み込みするとウェイトが崩れる
✅ Solution:
Capture Frameで Bone が T ポーズなど正規姿勢になるよう全 Capture Region に keyframe を打つCapture Frameをアニメーションレンジ外 (例:-1) にし、本番アニメーションと衝突しない値に設定- Bone 階層の親子関係や Constraint が再読み込み時に意図どおり評価されているかタイムライン上で検証
❌ Problem: Override File を設定したのにカスタムウェイトが反映されない
✅ Solution:
- Override File のパスが解決できているか (相対パス記述の場合は基点 COMP を確認)
- .ocapt の各行が
point /path/to/region prim weightの形式に従っているか、point/region/prim の番号が現在のジオメトリ・階層と整合しているか確認 - Override File は自動計算後に適用されるため、Region 自体が当該 point に到達していない場合 weight 0 行の意味は変わらない点に注意 (まず自動計算で捕捉できる Hierarchy 設定にしてから上書き)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Capture SOP
- TouchDesigner公式ドキュメント – Capture Region SOP
- TouchDesigner公式ドキュメント – Deform SOP
- TouchDesigner公式ドキュメント – Bone

