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

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

Null COMP のプレースホルダ・参照アンカー機能を示す図

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

概要 📖 – 参照用の中継点になる

Null COMPは、シーン内のプレースホルダとして配置され、子コンポーネントの Transform 継承・カメラやライトの Look At ターゲット・ボーンチェーンの End Affector などの参照アンカーとして機能する COMPです。ジオメトリを持たないため描画には現れず、Display フラグをオフにすればビューポート上も非表示にできるため、シーン整理や非可視の参照点として頻用されます。

主な用途 🎯

  • シーン内のプレースホルダとして配置し、子 COMP のグループ化・ピボット中心・3D 空間上の参照点として機能
  • カメラやライトの Look At ターゲットとして使用し、シーン中の存在しない注視点を非表示の Null COMP で定義 (Display フラグ オフで非表示化可)
  • ボーンチェーンの End Affectorとして IK の到達先 (手首・足首の目標位置) を定義
  • 子オブジェクトの一括 Transform: Translate / Rotate / Scale で複数の Geometry COMP / Light COMP を共通の局所座標で動かす
  • パス追従アニメーション: Path SOP を指定して Position パラメータで 0~1 の位置を移動させ、上にカメラや Geometry をペアレント

データフロー 🔄

入力: Transform 値 (Translate / Rotate / Scale / Pivot) + Look At / Path SOP / Parent 参照

4x4 トランスフォーム行列を構築 (Pre-Xform + Xform の順で合成)

出力: 子 COMP に継承される transform / 他 COMP からの Look At ターゲット / IK の End Affector として機能

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Xform Page 📋

Transform Order .xord 🔄

Translate / Rotate / Scale の適用順序を指定するメニューパラメータ。順序を変えると最終的な配置が変わる (行列演算順 T * R * S * Position)

項目 内部名 説明
Scale Rotate Translate .srt S → R → T の順で適用 (デフォルト、最も一般的)
Scale Translate Rotate .str S → T → R の順で適用
Rotate Scale Translate .rst R → S → T の順で適用
Rotate Translate Scale .rts R → T → S の順で適用
Translate Scale Rotate .tsr T → S → R の順で適用
Translate Rotate Scale .trs T → R → S の順で適用

Rotate Order .rord 🔁

Rx / Ry / Rz の回転を適用する順序を指定するメニューパラメータ。回転は非可換のため順序を変えると最終姿勢が変わる

項目 内部名 説明
Rx Ry Rz .xyz X → Y → Z の順で回転 (行列合成は Rz * Ry * Rx)
Rx Rz Ry .xzy X → Z → Y の順で回転
Ry Rx Rz .yxz Y → X → Z の順で回転
Ry Rz Rx .yzx Y → Z → X の順で回転
Rz Rx Ry .zxy Z → X → Y の順で回転
Rz Ry Rx .zyx Z → Y → X の順で回転

Translate / Rotate / Scale / Pivot 🎯

Null COMP の Transform 値 (Translate / Rotate / Scale / Pivot / Uniform Scale):

  • Translate: t (tx / ty / tz) — 3 軸方向の平行移動量。子 COMP はこの位置を基準に配置される
  • Rotate: r (rx / ry / rz) — 3 軸まわりの回転角度 (度)。Rotate Order で適用順が決まる
  • Scale: s (sx / sy / sz) — 3 軸方向の非一様スケール (1.0 が原寸大)
  • Pivot: p (px / py / pz) — Scale / Rotate の中心点。Pivot をずらすと回転・拡縮の効果が変わる (例: 端を支点に回転)
  • Uniform Scale: scale — 全 3 軸に均一にかかるスケール係数 (Scale パラメータと乗算)

Parent Transform .parentxformsrc 🌳

親のトランスフォーム継承元を指定するメニューパラメータ

項目 内部名 説明
Parent (Hierarchy) .parent ネットワーク階層上の親 COMP の transform を継承 (デフォルト)
Specify Parent Object .object Parent Object パラメータで指定した任意の COMP の transform を継承
World Origin .world ワールド原点を基準にして親の transform を継承しない

Parent Object .parentobject 📎

Specify Parent Object モード時の参照 COMP:

  • Parent Object パス: parentobject — ネットワーク階層に依存せず、ここで指定した COMP の transform をこの Null COMP の親として継承する

Look At .lookat 👀

他の COMP を注視し続ける Look At 設定:

  • Look At: lookat — 注視対象とする COMP のパス。指定すると対象が移動しても常にそちらを向く
  • Forward Direction: forwarddir — どの軸を「前方」とみなすかのメニュー (+X / -X / +Y / -Y / +Z / -Z)

Look At Up Vector .lookup ⬆️

Look At 時の上方向ベクトルの扱いを指定するメニューパラメータ

項目 内部名 説明
Don’t Use Up Vector .none Up Vector を使わない。対象が Y 軸を通過しないシーンで使用
Use Up Vector .vector Orient Up Vector を上方向として使い、姿勢を厳密に定義 (Up Vector は look-at 方向と平行にしないこと)
Use Quaternions .quat クォータニオン補間で球面上の最短経路を使い姿勢を決定

Path Follow (パス追従) 🛤️

Path SOP を使ったパス追従アニメーションの設定:

  • Path SOP: pathsop — 追従させたいパスを供給する SOP のパス
  • Roll: roll — パスに沿った進行方向まわりの回転角度
  • Position: pos — パス上の位置 (0 = 始点 / 1 = 終点)。スライダ範囲は 0~10 まで設定でき、1 を超えると複数周回が可能
  • Orient along Path: pathorient — オンにすると Null COMP の +Z 軸がパス進行方向を向くように自動回転
  • Orient Up Vector: up — Orient along Path 時に +Y 軸が指す方向を定義するベクトル
  • Auto-Bank Factor: bank — パスの曲率に応じて自動でロール (バンク) させる強度。0 でバンクなし

Pre-Xform Page 📋

Pre-Transform 適用 .pxform

Pre-Xform Page を有効化するトグル:

  • Apply Pre-Transform: pxform — オンにすると Pre-Xform Page の値が main Xform の前に適用される (合成順: XformMatrix * PreXform * Position)

Pre-Xform Transform 値 🎚️

Pre-Xform の各 Transform 値 (Xform Page と同じ意味):

  • Transform Order (Pre): pxord — Pre-Xform の Translate / Rotate / Scale 適用順 (Xform Page と同じメニュー)
  • Rotate Order (Pre): prord — Pre-Xform の回転適用順 (Xform Page と同じメニュー)
  • Translate (Pre): pt (ptx / pty / ptz) — Pre-Xform の平行移動量
  • Rotate (Pre): pr (prx / pry / prz) — Pre-Xform の回転角度
  • Scale (Pre): ps (psx / psy / psz) — Pre-Xform のスケール
  • Pivot (Pre): pp (ppx / ppy / ppz) — Pre-Xform の Pivot 点
  • Uniform Scale (Pre): pscale — Pre-Xform の一様スケール係数

Pre-Xform リセット / 統合 🔧

Pre-Xform 値のリセット / 統合ボタン:

  • Reset Transform: preset — Pre-Xform Page の transform 値をすべてリセット (Translate=0 / Rotate=0 / Scale=1)
  • Commit to Main Transform: pcommit — Pre-Xform の transform を Main Xform Page にコピーしたうえで Pre-Xform をリセット (値の昇格)

Xform Matrix .xformmatrixop 📐

4×4 行列を直接指定する transform 上書き:

  • Xform Matrix / CHOP / DAT: xformmatrixop — 4×4 行列を提供する CHOP / DAT のパス。Pre-Xform の後段 (合成順: XformMatrix * PreXform * Position) で適用される

Render Page 📋

Material / Render ✨

Null COMP のマテリアル・描画関連の設定:

  • Material: material — 内部のジオメトリに適用される MAT (Material) のパス
  • Render: renderRender TOP での描画可否トグル。COMP の Render フラグと論理 AND で評価される

Draw / Pick Priority 🎚️

描画順序・ピック判定の優先度:

  • Draw Priority: drawpriority — 描画順を決める優先度。小さい値ほど後に描画 (透過処理のソート補助に使用)
  • Pick Priority: pickpriorityRender Pick CHOP / Render Pick DAT での選択優先度。Search Area 内で複数候補があるとき高い値が選ばれる

Wireframe Color / Light Mask 🎨

ワイヤーフレーム色・ライトマスクの設定:

  • Wireframe Color: wcolor (wcolorr / wcolorg / wcolorb) — ワイヤーフレームシェーディングモード時の表示色 (RGB)
  • Light Mask: lightmask — Render TOP のライト群のうち、このジオメトリに影響させたいライトを名前指定で絞り込み (デフォルトは全ライト適用)

Extensions Page 📋

Python Extensions 🔧

Python 拡張のコンパイル / 起動時初期化の設定:

  • Re-Init Extensions: reinitextensions — Python 拡張オブジェクトを再コンパイル。通常は参照されたとき・定義が変わったときにのみコンパイルされるため、強制再構築時に押す
  • Init Extensions On Start: initextonstart — TouchDesigner 起動時に拡張を自動的に Re-Init するかのトグル

Common Page 🔧

Parent Shortcut .parentshortcut 🔗

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

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

Global OP Shortcut .opshortcut 🌐

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

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

Internal OP .iop 📎

Internal OP シーケンス (コンポーネント内部 OP への名前付き参照):

  • Shortcut: iop0shortcut — コンポーネント内部の OP に対するショートカット名
  • OP: iop0op — このコンポーネント内部の対象 OP へのパス

Node View .nodeview 👁️

ノードビューア (Network エディタ上のサムネイル) に表示する内容を決定

項目 内部名 説明
Default Viewer .default コンポーネントタイプ標準のビューアを表示
Operator Viewer .opviewer 指定した任意 OP のノードビューアを表示

Operator Viewer .opviewer 🖼️

Operator Viewer モード時に表示する対象 OP:

  • Operator Viewer パス: Node View が opviewer モードのとき、そのビューア内容として表示する OP のパス

Cloning .cloning 🧬

マスター COMP の内容を複製する Cloning 設定:

  • Enable Cloning: enablecloning — Clone Master の内容を継続的に複製するかを切替
  • Enable Cloning Pulse: enablecloningpulse — その瞬間だけ Clone Master の内容を瞬時に複製
  • Clone Master: clone — 複製元となるマスターコンポーネントへのパス

Load on Demand .loadondemand

必要時のみメモリにロードする遅延ロード設定:

  • Load on Demand: loadondemand — オンの場合、このコンポーネントは実際に必要となるまでメモリにロードされない (起動時間・メモリ消費の最適化)

External .tox .externaltox 💾

外部 .tox ファイルとの連携設定:

  • Enable External .tox: enableexternaltox — 起動時に外部 .tox ファイルからロード
  • Enable External .tox Pulse: enableexternaltoxpulse — 外部 .tox ファイルから即時リロード
  • External .tox Path: externaltox — ディスク上の .tox ファイルへのパス
  • Reload Custom Parameters: reloadcustom — コンポーネントのカスタムパラメータ値を再読み込み
  • Reload Built-In Parameters: reloadbuiltin — コンポーネントの組み込みパラメータ値を再読み込み
  • Save Backup of External: savebackup — .toe ファイル内に外部 .tox のバックアップコピーを保存
  • Sub-Component to Load: subcompname — .tox 内部の特定 COMP のみを取り出してロード

Relative File Path Behavior .relpath 📁

このコンポーネント内部での相対ファイルパスの解決基準

項目 内部名 説明
Use Parent’s Behavior .inherit 親コンポーネントの設定を継承
Relative to Project File (.toe) .project .toe プロジェクトファイルからの相対パスとして解決
Relative to External COMP File (.tox) .externaltox 外部 .tox ファイルからの相対パスとして解決

実践アイデア 💡

Example 1: カメラの Look At ターゲットとして使う 🎥

Null COMP (注視点) → Camera COMP (Look At = Null COMP のパス) → Render TOP

カメラに「シーン中の存在しない一点」を見続けさせたいときの基本パターン。Null COMP をターゲット位置に配置し、Camera COMP の Look At パラメータでそのパスを指定すると、Null を動かすだけでカメラが追従する。Null は Display フラグをオフにすればビューポート上から消せるため、レンダリング結果には現れない。

  1. シーン内の注視させたい位置に Null COMP を作成し、Translate (tx / ty / tz) で配置
  2. Camera COMP の Look At パラメータに作成した Null COMP のパス (例: ../null1) を指定
  3. Null COMP の Display フラグ (Network エディタの右側の青いドット) をオフにしてビューポートから非表示化
  4. Null COMP の Translate をアニメーションさせると、Camera は常にそれを向き続ける

Example 2: 子の一括Transform(親)として使う 🧩

Null COMP (グループ親) → 子に Geometry COMP × 複数 → 子の Parent = Null COMP

複数の Geometry COMP / Light COMP を一括で動かしたいとき、Null COMP を親に置きそれらを子として配置すると、Null の Translate / Rotate / Scale が子全体に伝播する。シーン整理 + 共通ピボットでの回転 / 拡縮を 1 箇所で制御できる。

  1. Null COMP を作成し、グループのピボット位置に Translate を設定
  2. 動かしたい複数の Geometry COMP や Light COMP を Null COMP の子として配置 (ネットワーク内に入れる、または Parent Transform Source = Specify Parent Object で Null を指定)
  3. Null COMP の Rotate を変えると子全体が同じ中心まわりに回転、Uniform Scale で子全体が一括拡縮
  4. Pivot を子グループの一端に動かすと、回転 / 拡縮の中心がそこに移る (例: 扉の蝶番位置を Pivot にして開閉アニメ)

Example 3: ボーンチェーンの End Affector として使う 🦴

Bone COMP (root) → Bone COMP (children) → ... → Bone COMP (tip) → IK 計算は Null COMP (End Affector) の位置を目標とする

Bone COMP でキャラクターの骨組みを構築し IK (逆運動学) で動かす際、手先 / 足先の到達目標として Null COMP を End Affector に指定する。Null を動かせばボーンチェーン全体が IK ソルバで自動追従する。

  1. Bone COMP でキャラクターのボーンチェーンを構築 (例: 肩 → 上腕 → 前腕 → 手首)
  2. 手首ボーンの先に Null COMP を配置し、これを End Affector として参照させる
  3. IK ソルバ (Kinematic Chain) で Null COMP の位置を目標にチェーンの回転を逆算
  4. Null COMP の Translate をマウス・センサ入力・アニメーションで動かすと、それに追従して肘・肩が自然な姿勢で曲がる

関連オペレータ 🔗

類似機能OP 🔍

  • Base COMP — 汎用コンテナ COMP。ネットワーク階層のグルーピングに使う点で似ているが、Transform Page / Look At を持たない (Object COMP ではない)
  • Geometry COMP — Null COMP と同じ Object COMP ファミリ (Transform 系パラメータを持つ) だが、内部に SOP ジオメトリを描画する違いがある
  • Container COMP — Panel 系の汎用コンテナ。GUI レイアウト用途のグルーピング (3D 空間の参照点ではない)

組み合わせ推奨OP 🔄

  • Camera COMP — Look At ターゲットとして Null COMP のパスを指定し、カメラを注視点に追従させる
  • Light COMP — スポットライトの照射ターゲットとして Null COMP を Look At に指定
  • Geometry COMP — Null COMP を親に置き、複数の Geometry COMP を子として一括 Transform で動かす
  • Bone COMP — ボーンチェーンの End Affector として Null COMP の位置を IK の目標値に使う
  • Object CHOP — Null COMP の transform を CHOP チャンネルとして読み出し、他ノードへ参照・補間に使う
  • Render TOP — Null COMP は描画されないが、子の Geometry COMP は Render TOP の Geometry 入力経由でレンダリングされる

前処理・後処理COMP 🎯


Info COMP情報 📊

Null COMP は Info CHOP / Info DAT で transform / cook 情報を取得できます。Object 系の transform は Object 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: エラー数
  • cpu_memory: OP が確保している CPU メモリ使用量

Object 固有情報 📊

  • tx / ty / tz: Null COMP のワールド位置 (Translate)
  • rx / ry / rz: Null COMP のワールド回転 (度)
  • sx / sy / sz: Null COMP のワールドスケール

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

よくある問題と解決策 🔧

❌ Problem: Look At しているのにカメラが対象を向かない
✅ Solution:

  • Camera COMP の Look At パラメータに正しい Null COMP の相対パス / 絶対パスが入っているか確認 (例: ../null1 / /project1/null1)
  • Null COMP と Camera COMP が同じ World 座標系に存在するか確認 (異なる親 COMP 配下にあると親の Transform で位置がずれる)
  • Camera COMP の Forward Direction が想定どおりの軸 (通常 -Z 軸) になっているか確認

❌ Problem: 子オブジェクトが Null COMP の Transform に追従しない
✅ Solution:

  • 子 COMP の Parent Transform SourceParent (Hierarchy) になっており、かつ Null COMP の子として正しく配置されているか確認
  • Specify Parent Object モードを使う場合は Parent Object パラメータに Null COMP の正しいパスが指定されているか確認
  • Pre-Xform Page の Apply Pre-Transform がオフのままだと Pre-Xform 値は反映されない — 必要なら Pre-Xform 側もオンにする

❌ Problem: Path SOP に追従させたいが Null COMP がパス上を動かない
✅ Solution:

  • Path SOP パラメータに有効な SOP のパスが入っているか確認 (例: ../path_sop)
  • Position パラメータ (0~1) を実際にアニメーションさせる (CHOP / Animation COMP / Expression で時間と紐付け)
  • Orient along Path をオンにしないと向きはパスに沿わない (位置のみ移動して姿勢は固定のまま)
  • Path SOP が空 (point が 0) になっていないか確認 — 上流でフィルタ条件によりポイントが消えているケースに注意

❌ Problem: ボーンチェーンの End Affector として動かしても IK が解けない
✅ Solution:

  • Bone COMP 側で IK ソルバ (Kinematic Chain) が有効化され、End Affector に Null COMP のパスが指定されているか確認
  • Null COMP がボーンチェーンの到達可能範囲内に存在するか確認 (チェーン全長より遠い位置は伸びきって解けない)
  • Bone の Limits (関節可動範囲) が制約しすぎていないか確認

参考資料 📚

その他 🔗

公式リソース 📖

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