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

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

Handle COMP の IK ボーンアニメーション機能を示す図

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

概要 📖 – IK ボーンアニメーションのエンドエフェクタ

Handle COMPは、ボーン階層を Target の位置へ引き寄せる IK エンドエフェクタとして動作する COMPです。Bone COMP の子として配置し、Target / Weight / Falloff を組み合わせてキャラクターのポージングや IK ベースのアニメーションを構築します。

主な用途 🎯

  • IK (Inverse Kinematics) システムでボーンを目標位置に追従させるエンドエフェクタ
  • キャラクターアニメーションの手先・足先を Target に合わせてポージング
  • モーションキャプチャデータから取得した位置情報をボーン階層に流し込む
  • 骨格チェーンの屈曲を Falloff と Weight でコントロールする物理風挙動
  • Rotation Limit でボーン関節の可動域を制限し、自然な人体ポーズを実現

データフロー 🔄

入力: Target OP の位置 (Object COMP / Null COMP 等)

Handle COMP が親 Bone COMP を Target 方向へ引き寄せ

出力: Bone COMP 階層の rx/ry/rz 回転
CHECK

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

まる。
まる。

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


パラメータ解説 ⚙️

Handle Page 📋

Target .target 🎯

Handle がボーンを引き寄せる対象 OP:

  • Target: target — Handle がボーンを引き寄せる対象 OP のパス (Object COMP / Null COMP 等のエンドエフェクタ)

Translate .t 📐

ボーン原点からの相対変位 (tx, ty, tz):

  • Translate (tx, ty, tz): t — Handle のアンカー点をボーン原点から tx, ty, tz だけ相対移動させる変位

Weight .weight ⚖️

複数 Handle 競合時の引き寄せ強度:

  • Weight: weight — 複数 Handle が同一ボーンに付与されている場合、Weight が高い Handle ほど Target に近づく優先度が高くなる

Twist Only .twistonly 🔄

Z 軸ねじり限定モードの切替:

  • Twist Only: twistonly — オンのとき Handle は Z 軸回転 (twist) のみをボーンに寄与し、オフのときは rx/ry/rz の 3 軸でボーンを Target に向ける

Falloff .falloff 📉

親ボーンへの影響度 (チェーンの柔軟性):

  • Falloff: falloff — 子ボーンが Target に到達するときに、その親階層がどの程度連動して回転するか。チェーン全体の柔軟性 (flexibility) をコントロールする

Rotation Limits X .dorxlimit 🔒

X 軸まわりの回転制限設定:

  • Rotation Limits X: dorxlimit — X 軸まわりの回転制限を有効化するかのトグル
  • Limit X: lrx — X 軸まわりの回転範囲 (最小値・最大値) を度数で指定

Rotation Limits Y .dorylimit 🔒

Y 軸まわりの回転制限設定:

  • Rotation Limits Y: dorylimit — Y 軸まわりの回転制限を有効化するかのトグル
  • Limit Y: lry — Y 軸まわりの回転範囲 (最小値・最大値) を度数で指定

Rotation Limits Z .dorzlimit 🔒

Z 軸まわりの回転制限設定:

  • Rotation Limits Z: dorzlimit — Z 軸まわりの回転制限を有効化するかのトグル
  • Limit Z: lrz — Z 軸まわりの回転範囲 (最小値・最大値) を度数で指定

Render Page 🎨

Material .material 🖌️

内部ジオメトリに適用するマテリアル:

  • Material: material — Handle COMP 内部のジオメトリに適用する MAT へのパス

Render .render 👁️

Render TOP での可視化切替:

  • Render: render — このコンポーネントのジオメトリを Render TOP で可視化するかのトグル。COMP 自体の Render Flag と論理 AND される

Draw Priority .drawpriority 🔢

Render TOP での描画順 (Transparency 制御に使用):

  • Draw Priority: drawpriority — 値が小さい COMP ほど後から描画される。Transparency の制御に最も多用される

Pick Priority .pickpriority 🎯

Render Pick での検索優先度:

  • Pick Priority: pickpriority — Render Pick の Search Area に複数オブジェクトがヒットしたとき、値が高い COMP が優先的に選択される (描画順や同ピクセル上のオブジェクト選択には影響しない)

Wireframe Color .wcolor 🎨

ワイヤーフレーム表示時の R/G/B 色:

  • Wireframe Color: wcolor — ワイヤーフレームシェーディングモードで表示する際の R, G, B 値

Light Mask .lightmask 💡

このジオメトリに影響するライトのサブセット:

  • Light Mask: lightmask — Render TOP に登録されたライトのうち、このジオメトリに影響を与えるものをサブセット指定 (デフォルトでは全ライトが影響)

Common Page 🔧

Parent Shortcut .parentshortcut 🔗

コンポーネント内部からこの COMP へのパスとして使えるショートカット名:

  • Parent Shortcut: コンポーネント内部の任意の場所からこの COMP を参照する際のショートカット名 (parent.<name> 形式で利用可能)

Global OP Shortcut .opshortcut 🌐

プロジェクト全体からこの COMP を参照するグローバル名:

  • Global OP Shortcut: プロジェクト内のあらゆる場所からこの COMP へのパスとして使えるグローバル名 (op.<name> 形式で利用可能)

実践アイデア 💡

Example 1: Bone COMP 階層への IK Handle 装着 🦴

Null COMP (Target) → Handle COMP → Bone COMP 階層 → Actor COMP

Bone COMP で構築した腕の骨格チェーンの末端ボーンに Handle COMP を子として配置し、Null COMP を Target に指定することで、Null を動かすだけで腕全体が IK で追従する基本構成。

  1. Bone COMP で肩 → 肘 → 手首の 3 段階層を構築
  2. 手首ボーンの子として Handle COMP を配置
  3. シーン上に Null COMP を配置し、Handle の Target にそのパスを設定
  4. Null COMP を移動させると、肩〜手首ボーン全体が Falloff に従って屈曲しながら Null に追従

Example 2: モーションキャプチャ位置データの IK 適用 🎥

Kinect CHOP → CHOP to → Null COMP (Target) → Handle COMP → Bone COMP

Kinect 等のモーションキャプチャから取得した関節位置を Null COMP の Translate に流し込み、その Null を Handle COMP の Target に指定することで、キャプチャされた手先位置をキャラクター骨格に即時反映するパイプライン。

  1. Kinect CHOP / OSC In CHOP 等で手先の x/y/z 位置を取得
  2. 取得した位置をシーン上の Null COMP の Translate に Export
  3. Handle COMP の Target にその Null COMP を指定
  4. Weight や Rotation Limit でキャプチャノイズに対する応答性を調整

Example 3: Falloff と Weight による多関節制御 ⚙️

Target Null × 2 → Handle COMP × 2 → 同一 Bone 階層

1 つのボーンチェーンに複数の Handle COMP を装着し、それぞれの Weight と Falloff を変えることで、メインの引き寄せ Handle と補助 Handle を組み合わせた自然な屈曲ポーズを作る応用例。

  • ボーンチェーンの異なる位置に Handle COMP を 2 個配置
  • メイン Handle は Weight=1.0、補助 Handle は Weight=0.3 程度に設定
  • Falloff を調整して、各 Handle が親ボーンに与える影響範囲を制御

関連オペレータ 🔗

類似機能OP 🔍

  • Bone COMP — Handle が付与される骨格ボーン本体

組み合わせ推奨OP 🔄

  • Bone COMP — Handle の親として配置し、Handle により Target 方向に引き寄せられる骨格
  • Null COMP — Handle の Target として最頻出の OP (位置のみのアンカー)
  • Actor COMP — Bone 階層を内包し、Handle と組み合わせて IK ベースのキャラクターを構成
  • Geometry COMP — Bone のスキニング対象となるジオメトリ

前処理・後処理COMP 🎯


Info CHOP情報 📊

Handle COMP は Info CHOP による詳細情報取得に対応しています。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

汎用 COMP 情報 📊

  • cook_time: このコンポーネントの最後のクック時間 (ミリ秒)
  • total_cooks: このコンポーネントの累計クック回数
  • cpu_memory: コンポーネントが使用している CPU メモリ量 (バイト)
  • gpu_memory_used: コンポーネントが使用している GPU メモリ量 (バイト)
  • num_children: コンポーネント内部の子ノード数

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

よくある問題と解決策 🔧

❌ Problem: ボーンが Target に追従しない
✅ Solution:

  • Handle COMP が対象 Bone COMP の子ノードとして配置されているか確認 (兄弟配置では効かない)
  • Target パラメータに指定した OP のパスが正しいか、対象 OP が存在しているかを確認
  • Weight が 0 になっていないか確認

❌ Problem: Bone 階層が想定外の方向に曲がる
✅ Solution:

  • Falloff の値を調整し、親ボーンへの影響度を変えてみる (値を上げると親まで連動)
  • Rotation Limits X/Y/Z を有効化し、各軸の可動範囲を lrx / lry / lrz で制限する
  • Twist Only をオンにすると Z 軸ねじりのみが効くため、不必要な rx/ry の暴れを抑制可能

❌ Problem: 複数 Handle が干渉して挙動が安定しない
✅ Solution:

  • 各 Handle の Weight を異なる値に設定し、優先度を明示的に分ける
  • 補助的な Handle の Falloff を小さくして、影響範囲を局所化する
  • 不要な Handle は Render OFF にし、無効化して挙動を切り分けながら原因を特定

❌ Problem: Wireframe で Handle が見えない・選択できない
✅ Solution:

  • Render Page の render パラメータがオンになっているか確認
  • Wireframe Color が背景色と同色になっていないか確認
  • Pick Priority を上げて、他オブジェクトより優先して選択されるよう設定

参考資料 📚

その他 🔗

公式リソース 📖


関連まとめ 🔗

ファミリー別一覧 📑

厳選オペレータ ⭐

逆引き 🔎


この記事はLLMと共に内容を執筆、更新しています。
なるべく正確な情報を心掛けていますが、最新バージョンとの項目差異など情報の不一致を見つけたらXもしくはInsta、メールなどから管理者までご連絡いただけると嬉しいです🫠


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガ(8年前にRYT200取得)やサウナ、美容EMSや電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした、生体情報の解析とインタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

日常を垂れ流すだけのアカウント
Instagram:@malmal0v0

発信を今後がんばる予定のアカウント
Youtube:https://www.youtube.com/@malmal0v0

まる。をフォローする
その他の記事はこちら
英雄のポーズ(ヴィーラーサナ)のやり方|効果・コツ・注意点【ヨガ】
リバースウォーリア(リバース戦士のポーズ)のやり方|効果・コツ・注意点【ヨガ】
壁に脚を上げるポーズ(足を壁に上げるポーズ)のやり方|効果・コツ・注意点【ヨガ】
サソリのポーズ(ヴリシュチカーサナ)のやり方|効果・コツ・注意点【ヨガ】
戦士のポーズ3(ヴィーラバドラーサナ・スリー)のやり方|効果・コツ・注意点【ヨガ】

タイトルとURLをコピーしました