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

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

Capture Region SOP のカプセル状領域定義機能を示す図

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

概要 📖 – 骨の影響範囲を決める

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 を検出

ジオメトリのポイントウェイトに反映

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 の伸長方向がずれ、ウェイト分布が意図しない方向に貼り付きます。

引用元: 公式 docs

領域の位置・形状関連パラメータ 📐

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 ColoringColor 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 を検出し、ベースジオメトリのポイントへ自動的にウェイトを割り当てます。

  1. キャラクターの Bone (Geometry COMP) を作成し、その内部に Capture Region SOP を追加
  2. OrientationZ Axis に設定 (Bone の伸長方向に揃える)
  3. Top HeightBottom Height を Bone の長さの半分ずつに設定し、Bone 全長を覆うようにする
  4. Top CapBottom Cap の半径を Bone まわりの肉の厚みに合わせて調整
  5. 上流側で Capture SOP を用意し Hierarchy に Bone 階層のルート COMP を指定
  6. Capture SOP の Point ColoringColor 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 で変形させたときに肩や腰のボリュームが自然に追従するようになります。

  1. 対象の Bone 内 Capture Region SOP を選択
  2. 肩や腰の側 (太い側) の Cap の X / Y / Z 半径を大きめに設定
  3. 反対側の Cap は細く設定して、隣接する Bone の Region との干渉を抑える
  4. Max/Min Weight の差を調整してフォールオフのなだらかさを決める
  5. 上流の 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 ColoringColor by Capture Region モードに切替えると、各ポイントが影響を受けている Region の色で着色されるため、ウェイトの分布や Region の領域がうまく分かれているかをビューポート上で直感的にデバッグできます。

  1. 各 Bone 内の Capture Region SOP を順に選択
  2. Display Colorcolorr / colorg / colorb を Bone ごとに別の値に設定 (赤・緑・青 など)
  3. Capture SOP の Point ColoringColor by Capture Region に切替え
  4. ビューポートで Bone 境界が色のグラデーションで現れていることを確認
  5. 想定外の色 (例: 明るい赤) で表示されるポイントはどの 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 SOPHierarchy に、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 が想定どおりか (回転やスケールが余計にかかっていないか) チェック
  • Centertx / ty / tz が原点付近に設定されているかを確認 (Bone 中心とずれていると Region が浮く)

❌ Problem: Region の Display Color を変更しても Capture SOP のポイントカラーに反映されない
✅ Solution:

  • Capture SOP の Point ColoringColor by Capture Region モードになっているかを確認 (デフォルトの Default Source Color ではポイント側の色が優先される)
  • Display Color がデフォルトで親 COMP の色を式参照している場合は、式を解除して colorr / colorg / colorb に直接値を入れる
  • 再キャプチャがトリガされているか確認するため、Capture SOP の Capture Frame 時点にタイムラインを送ってクックを発火させる

参考資料 📚

その他 🔗

公式リソース 📖

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