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

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

USD COMP の USD シーン読込機能を示す図

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

概要 📖 – USDの読込と再生

USD COMPは、USD形式の3Dシーンファイルを読み込み、ジオメトリ・カメラ・ライトの階層を自動生成して再生・レンダリングできる COMPです。Pixar が策定した USD (Universal Scene Description) 規格に対応し、Houdini / Maya / Blender 等の外部ツールで作成された 3D アセットを TouchDesigner に取り込めます。

主な用途 🎯

  • USDファイル (.usd / .usdc / .usda) のシーン読み込み
  • 外部 DCC ツール (Houdini / Maya / Blender 等) との 3D アセット連携
  • USD タイムサンプルアニメーションの再生制御 (Play Mode / Cue / Trim)
  • シーン階層 (Geometry / Camera / Light) の自動ネットワーク生成
  • GPU ダイレクトロードによる大規模 3D シーンの高速レンダリング

データフロー 🔄

入力: USDファイル (.usd/.usdc/.usda)

解析・階層展開 (Build Network)

Geometry/Camera/Light の COMP 階層を自動生成

出力: TouchDesigner ネットワーク化された 3D シーン

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

USD Page 📁

ファイル指定 .file 📄

読み込み対象 USD ファイルのパスとインポート方式

項目 内部名 説明
Full Replacement .full 既存ネットワークを完全に置き換えて再構築
Merge with Existing .merge 既存ネットワークに統合する形でインポート
Reload Assets (Import Selects) .reload Import Select 内のアセットのみを再読込
USD File .file USD File (USDファイルパス) — 読み込む USD ファイルへのパス。バイナリ形式 (.usd / .usdc) と ASCII 形式 (.usda) に対応します。

インポート設定 .importflags ⚙️

Use Material .usematerial 🎨
Use Material (マテリアル使用) — USD ファイル内のマテリアル/シェーディング情報を有効化するかのトグル
– オンにすると、マテリアルバインディングを持つジオメトリプリミティブに対して MAT ノードと必要に応じて ImportSelect TOP が生成されます

Cameras .cameras 📷
Cameras (カメラ生成) — USD ファイル内で定義されたカメラを Camera COMP として生成するかのトグル

Generate Actor COMPs .genactors 🎭
Generate Actor COMPs (Actor COMP 生成) — オンにすると Import Select SOP の親として Geometry COMP の代わりに Actor COMP を生成

Compute Normals .computenormals 📐
Compute Normals (法線計算) — OpenSubdiv ライブラリを使用して USD ファイルのサブディビジョンスキーマから法線を生成するかのトグル
– オフにすると TouchDesigner 内部生成の法線を使用 (CPU モードのみ)

Import POPs .pops 🔵
Import POPs (POP インポート) — オンで Point Operators を使用、オフで Surface Operators (SOP) を使用してジオメトリを読み込み

Direct to GPU .gpudirect
Direct to GPU (GPU直接読込) — SOP を使用する場合 (Import POPs オフ時) にジオメトリを GPU に直接ロード
– CPU モードよりも大幅に高速にレンダリングできますが、対応はメッシュとポイントプリミティブのみ。NURBS パッチ等は Import Select SOP でエラーになります

ジオメトリ統合 .merge 🧩

Merge Geometry .mergegeo 🔗
Merge Geometry (ジオメトリ統合) — 統合可能なジオメトリ SOP とその変換 COMP を指定した統合レベルまでマージするかのトグル
– 有効にすると USD COMP ネットワークのパフォーマンスが大幅に向上します

Merge Level .mergelevel 📊
Merge Level (統合レベル) — ノードを統合する際の階層レベルを指定 (ルート=1、子ノードほど値が大きい)
– デフォルトは無効、Merge Geometry オン時にのみ有効化

Max Wired Children .maxwiredchildren 🧹
Max Wired Children (最大子ノード数) — Geometry / Null COMP が同じネットワーク階層上に持てる子ノードの最大数を指定 (デフォルト 5)
– この値を超えると子ノードは内部に格納され、ネットワークが軽く整理されます

再読込挙動 .reimport 🔁

Keep Parameters .keepparams 💾
Keep Parameters (パラメータ保持) — Update パラメータ経由で再インポートした際、現在のネットワークのパラメータを再インポート後のパラメータより優先するかのトグル

Keep Connections .keepconnections 🔌
Keep Connections (接続保持) — 再インポート時に現在のネットワークの接続情報を再インポート後の接続情報より優先するかのトグル

Callbacks DAT .callbacks 📝
Callbacks DAT (コールバックDAT) — インポートまたは更新時に実行され、生成される OP とネットワークの修正・カスタマイズを行うコールバックスクリプト

実行ボタン .actions ▶️

ネットワーク構築・更新を実行するパルスボタン:

  • Reload File: reload — ネットワーク構造を変更せずに USD ファイルからアセットのみを再読込するパルスボタン
  • Build Network: buildnetwork — 新しいファイル指定後または USD ページのパラメータ変更後にネットワークを再構築するパルスボタン (初回も含む)
  • Update: update — USD COMP がインポート済みの状態で USD ファイルが外部編集された後にネットワークを更新するパルスボタン

Play Page 🎞️

再生モード .playmode 🎬

アニメーションの再生方式を決定するメニューパラメータ

項目 内部名 説明
Locked to Timeline .lockedtotimeline アニメーション位置をタイムラインに固定 (Play / Speed / Index / Cue は無効)
Specify Index .specifyindex Index パラメータで指定した任意の位置にランダムアクセス
Sequential .sequential タイムラインに依存せず連続再生 (Play / Speed / Cue が有効、デフォルト)
Output Full Range .outputfullrange アニメーション全範囲を出力

サンプルレート .sampleratemode 📡

Shift Animation Start .shiftanimationstart
Shift Animation Start (アニメ開始シフト) — USD ファイル内で示されたアニメーション開始位置にシフトするかのトグル

Sample Rate Mode .sampleratemode 🎚️
Sample Rate Mode (サンプルレート方式) — USD ファイルの FPS かカスタムサンプルレートかを選択するメニュー

Sample Rate .samplerate 🎯
Sample Rate (サンプルレート) — アニメーションのサンプルレート (FPS) を指定。Sample Rate Mode で Custom が選ばれている時のみ有効

再生制御 .playctrl 🎮

Initialize .initialize 🔄
Initialize (初期化) — アニメーションを初期状態にリセットするパルスボタン

Start .start ▶️
Start (開始) — アニメーションを初期状態にリセットしてから再生を開始するパルスボタン

Play .play 🎵
Play (再生) — オンにするとアニメーションが再生されるトグル
Play Mode が Sequential の時のみ有効

Speed .speed
Speed (速度) — 再生速度の倍率 (1 = 等速、2 = 倍速、0.5 = 半速)
Play Mode が Sequential の時のみ機能します

Cue / Cue Pulse / Cue Point .cue 🎯
Cue (キュー) — オンで Cue Point の位置にジャンプして停止するトグル
Cue Pulse (キューパルス) — 押すと Cue Point にジャンプして再生継続するパルス
Cue Point (キューポイント) — ジャンプ先のアニメーションインデックス

Index .index 🎚️
Index (インデックス) — Play Mode が Specify Index 時にアニメーション位置を明示的に指定

単位選択 .units 📏

Cue Point / Index / Trim 各単位の選択肢 (共通の4値メニュー)

項目 内部名 説明
Frames .frames フレーム単位
Seconds .seconds 秒単位
Fraction .fraction 0〜1 の比率 (パーセンテージ)
Index .indices インデックス番号

トリム範囲 .trim ✂️

Trim .trim
Trim (トリム有効) — Trim StartTrim End を有効化するトグル

Trim Start / Trim End .tstart 📍
Trim Start (開始位置) — アニメーション開始側のトリム位置
Trim End (終了位置) — アニメーション終了側のトリム位置

範囲外動作 .textend 🔄

Trim 範囲外の位置に対する補間動作

項目 内部名 説明
Hold .hold 範囲境界の値を保持
Cycle .cycle 範囲をループ再生
Mirror .mirror 範囲を反転して再生

Xform Page 🔄

変換順序 .xord 🔢

Translate / Rotate / Scale の適用順序を決定するメニュー

項目 内部名 説明
Scale Rotate Translate .srt 拡縮 → 回転 → 移動
Scale Translate Rotate .str 拡縮 → 移動 → 回転
Rotate Scale Translate .rst 回転 → 拡縮 → 移動
Rotate Translate Scale .rts 回転 → 移動 → 拡縮
Translate Scale Rotate .tsr 移動 → 拡縮 → 回転
Translate Rotate Scale .trs 移動 → 回転 → 拡縮

回転順序 .rord 🌀

X / Y / Z 軸回転の合成順序

項目 内部名 説明
Rx Ry Rz .xyz R = Rz × Ry × Rx
Rx Rz Ry .xzy R = Ry × Rz × Rx
Ry Rx Rz .yxz R = Rz × Rx × Ry
Ry Rz Rx .yzx R = Rx × Rz × Ry
Rz Rx Ry .zxy R = Ry × Rx × Rz
Rz Ry Rx .zyx R = Rx × Ry × Rz

位置と姿勢 .trs 📍

Translate .t ➡️
Translate (移動) — 3 軸方向の移動量を指定。ビューポート上の Select & Transform 状態でも変更可能

Rotate .r 🔄
Rotate (回転) — 3 軸まわりの回転角度 (度) を指定

Scale .s 📐
Scale (拡縮) — 3 軸の非一様スケール量を指定

Pivot .p 🎯
Pivot (ピボット) — 拡縮と回転の中心点を指定
– 拡縮時はピボット側に縮まるように、回転時はピボットを中心に回転します

Uniform Scale .scale 📏
Uniform Scale (均一拡縮) — 3 軸を均等にスケールするスカラー値

親子関係 .parentxformsrc 🌳

親オブジェクトとの位置関係を決定

項目 内部名 説明
From Parent Object (Hierarchy) .hierarchy 親階層のオブジェクトを参照
Specify Parent Object .specify Parent Object パラメータで指定したオブジェクトを参照
World Origin .worldorigin ワールド原点を基準

注視と前方 .lookat 👁️

Look At .lookat 🎯
Look At (注視先) — 指定した 3D コンポーネントの原点を向き続けるよう姿勢を制御
– 注視先オブジェクトが移動しても自動的に追従。カメラ追従に有効

Forward Direction .forwarddir ➡️
Forward Direction (前方方向) — どの軸方向を前方とみなすかをメニューから選択

Look At Up Vector .lookup ⬆️
Look At Up Vector (注視時上方向) — Look At 使用時の上方向の扱いを選択するメニュー

前方方向選択 .forwarddir_opts 🧭

Forward Direction の選択肢

項目 内部名 説明
+X .posx +X 軸方向
-X .negx -X 軸方向
+Y .posy +Y 軸方向
-Y .negy -Y 軸方向
+Z .posz +Z 軸方向
-Z .negz -Z 軸方向

上方向選択 .lookup_opts 🧷

Look At Up Vector の選択肢

項目 内部名 説明
Don’t use up vector .off 上方向ベクトルを使わない (注視先が Y 軸を通過する時は不安定)
Use up vector .on 下記 Up Vector を使用 (回転を正確に定義)
Use quaternions .quat クォータニオンを用いて球面上の最短経路で姿勢補間
Use Roll .roll Roll パラメータを用いて姿勢を決定

パス追従 .path 🛤️

Path SOP .pathsop 📂
Path SOP (パスSOP) — 移動経路として参照する SOP を指定 (カメラのトラックパス等)

Position .pos 📍
Position (位置) — パス上の位置を 0 (開始) 〜 1 (終了) の比率で指定 (10 まで指定で複数周回可能)

Roll / Orient along Path / Auto-Bank Factor .roll 🎢
Roll (ロール) — パス追従時のロール角度
Orient along Path (パスに沿った向き) — オンでパス方向に COMP の +Z 軸を合わせる
Auto-Bank Factor (自動バンク係数) — パス曲率に応じたロール量。0 で自動バンク無効

Orient Up Vector .up ⬆️
Orient Up Vector (向き時上方向) — パス追従時の上方向軸を選択 (X / Y / Z)


Pre-Xform Page 🔧

事前変換 .pxform ⚙️

Apply Pre-Transform .pxform
Apply Pre-Transform (事前変換有効) — このページの変換を有効化するトグル

Translate / Rotate / Scale / Pivot .pt 🎛️
pt / pr / ps / pp — Xform Page と同じ仕様 (移動・回転・拡縮・ピボット)。詳細は Xform Page を参照

Reset Transform / Commit to Main Transform .preset ♻️
Reset Transform (リセット) — このページの変換をリセット (1,1,1 等)
Commit to Main Transform (メインに反映) — このページの変換を Xform Page にコピーしてリセット

Xform Matrix/CHOP/DAT .xformmatrixop 🧮
Xform Matrix/CHOP/DAT (4×4 行列入力) — 4×4 行列を直接指定して変換を適用。Pre-Transform 後に適用され、最終的な順序は XformMatrix × PreXForm × Position


Render Page 🎨

マテリアル .material 🖌️

Material .material 🎨
Material (マテリアル) — 内部ジオメトリに適用する MAT を選択

Render .render 👁️
Render (描画) — Render TOP でこの COMP のジオメトリを描画対象に含めるかのトグル
– COMP の Render Flag との論理積で最終判定されます

描画優先度 .drawpriority 🔢

Draw Priority .drawpriority 🎯
Draw Priority (描画優先度) — 描画順序を決定。値が小さいほど後から描画され、透明度処理 (Transparency) のソートに使用

Pick Priority .pickpriority 🖱️
Pick Priority (ピック優先度) — Render Pick CHOP / DAT で Search Area 内に複数候補がある場合、値が大きい方が選択されます
– 描画順序やピクセル上の重なりには影響しません

色とライト .wcolor 💡

Wireframe Color .wcolor 🎨
Wireframe Color (ワイヤフレーム色) — ワイヤーフレーム表示時の RGB 色を指定

Light Mask .lightmask 💡
Light Mask (ライトマスク) — このジオメトリに影響を与えるライトを限定するパターン
– デフォルトでは Render TOP で使用される全てのライトが影響します


Common Page 🔧

項目 内部名 説明

実践アイデア 💡

Example 1: 3Dシーン読込基本 🎬

USD File → USD COMP (Build Network) → Geometry/Camera/Light COMP 階層 → Render TOP

Houdini や Blender で出力された USD ファイルを USD COMP にパス指定して Build Network を押下するだけで、シーン階層 (Geometry / Camera / Light) が自動生成されレンダリング可能になる基本的なインポートフロー。

  1. USD File パラメータに .usd ファイルパスを指定
  2. Use Material / Cameras / Compute Normals のトグルを設定
  3. Build Network パルスでネットワークを構築
  4. Render TOP の Geometry に USD COMP を指定して描画

Example 2: アニメ再生制御 🎞️

USD File (with TimeSamples) → USD COMP (Play Mode: Sequential) → Speed/Cue 制御 → Animated 3D シーン

USD のタイムサンプルアニメーションを Play Mode = Sequential に設定し、Speed / Cue Point / Trim パラメータを組み合わせることで、外部 DCC で作成したアニメーションを TouchDesigner 内でリアルタイム制御する用途。

  1. アニメーション付き USD ファイルを読み込み
  2. Play Mode を Sequential に設定し Play パラメータをオン
  3. Speed パラメータで再生速度を調整
  4. Cue Pulse でループポイントへジャンプ

関連オペレータ 🔗

類似機能OP 🔍

  • FBX COMP — FBX 形式の 3D シーン読込 (USD COMP と並ぶ外部 3D アセットインポート手段)

組み合わせ推奨OP 🔄

  • Geometry COMP — USD COMP が自動生成する Geometry COMP を手動拡張・カスタマイズ
  • Camera COMP — USD COMP がインポートした Camera COMP を Render TOP のビュー設定に使用
  • Light COMP — USD COMP がインポートしたライト階層を Render TOP の照明として使用
  • Animation COMP — USD のタイムサンプルアニメーションと連携した独自アニメーション制御
  • Replicator COMP — USD COMP がインポートしたジオメトリ COMP を複製

前処理・後処理COMP 🎯


Info CHOP情報 📊

USD 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共通情報 📊

  • num_children: USD COMP が自動生成した子 COMP 数 (Geometry / Camera / Light の合計)
  • num_inputs: 接続入力数
  • num_outputs: 接続出力数
  • cook_time: クック (再計算) 1 回あたりの所要時間 (ms)

クック統計 ⏱️

  • last_cook_frame: 最後にクックされたフレーム番号
  • total_cooks: 起動以降のクック回数
  • cook_state: クック状態 (1 = enabled / 0 = disabled)
  • warnings: ノード上の警告数

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

よくある問題と解決策 🔧

❌ Problem: Build Network 後にジオメトリが表示されない
✅ Solution:

  • Render パラメータがオンになっているか確認 (Render Flag との論理積で判定)
  • Direct to GPU オン時は NURBS 等のサポート外プリミティブで Import Select SOP がエラーになっていないか確認
  • Render TOP の Geometry に USD COMP のパスが正しく指定されているか確認
  • Use Material をオンにして MAT ノードが生成されているか、または MaterialPhong MAT 等を手動指定

❌ Problem: USD ファイルを変更しても反映されない
✅ Solution:

  • 外部ツールでファイル編集後は Update パルスを押下 (ネットワーク全体を再構築せずに反映)
  • アセット差し替えのみなら Reload File パルスでネットワーク構造を保持したまま再読込
  • パラメータ変更を反映させたい場合は Build Network を押下

❌ Problem: 大規模シーンでパフォーマンスが重い
✅ Solution:

  • Merge Geometry をオンにし、Merge Level で統合範囲を調整してドローコールを削減
  • Direct to GPU をオンにして CPU 経由を回避 (メッシュとポイントプリミティブのみ対応)
  • Max Wired Children を小さくしてネットワーク表示を軽量化
  • 不要な階層は Render オフまたは Light Mask で対象外にする

❌ Problem: アニメーションが再生されない
✅ Solution:

  • Play Mode が Sequential になっているか確認 (Locked to Timeline 時は Play パラメータが無効)
  • Play パラメータがオンになっているか確認
  • USD ファイル自体にタイムサンプルが含まれているか外部ツールで検証
  • Sample Rate ModeSample Rate がプロジェクト FPS と整合しているか確認

参考資料 📚

その他 🔗

公式リソース 📖

規格リファレンス 📘

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