
概要 📖 – 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 シーン
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 Start と Trim 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) が自動生成されレンダリング可能になる基本的なインポートフロー。
- USD File パラメータに
.usdファイルパスを指定 - Use Material / Cameras / Compute Normals のトグルを設定
- Build Network パルスでネットワークを構築
- 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 内でリアルタイム制御する用途。
- アニメーション付き USD ファイルを読み込み
- Play Mode を Sequential に設定し Play パラメータをオン
- Speed パラメータで再生速度を調整
- 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 🎯
- 前処理: Base COMP
- 後処理: Geometry COMP、Camera COMP、Light COMP、Null 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 ノードが生成されているか、またはMaterialに Phong 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 ModeとSample Rateがプロジェクト FPS と整合しているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — COMP 概要
- TouchDesigner Wiki — Category:COMPs
- TouchDesigner Wiki — Category:Components
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

