
概要 📖 – USD/FBX形状を取り出す
Import Select SOPは、USD や FBX 等の外部 3D ファイルから親 COMP に取り込まれたシーンの中から、特定のジオメトリパスを SOP ネットワークに引き込むオペレータです。親 USD COMP / FBX COMP が読み込んだ階層構造の中からメッシュを 1 つずつ選び出し、Geometry COMP やマテリアル付与といった TouchDesigner 標準のジオメトリパイプラインへ接続します。アニメーション付きジオメトリの場合は再生速度・トリミング・キューポイントを細かく制御します。
主な用途 🎯
- USD / FBX シーンファイルから特定のメッシュを取り出して SOP ネットワークに供給
- 複雑な階層構造の 3D シーンから必要な部分だけ取り込んで個別に編集
- 外部 DCC で作成したアニメーション付きジオメトリの再生制御 (再生速度・トリミング・キュー)
- Geo Path を切り替えて素材バリエーション (服・小物・パーツ違い) を管理
- USD / FBX 形式の 3D アセットを Geometry COMP やマテリアル付与の標準フローへブリッジ
データフロー 🔄
入力: 親 USD COMP / FBX COMP に読み込まれた 3D シーン
↓
Geo Path で対象を選択 + Playback 設定で再生制御
↓
出力: SOP ネットワークに供給される単一のジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
General Page 📋
ジオメトリ参照 .general 🔗
親 COMP に取り込まれた 3D アセットの中から、どのジオメトリを取り出すかを指定する基本パラメータ群
Import Parent .parent 🏠Import Parent (取り込み元の親 COMP) — アセットを検索する親 COMP (USD COMP / FBX COMP 等) のパスを指定します。空欄の場合はパス上で最初に見つかった親 import COMP を自動で使用します。
Geo Path .geometry 📍Geo Path (取得するジオメトリのパス) — 取り込まれたファイル内のジオメトリパス。USD のプリミティブパスや FBX のノードパスをここで指定して、シーンの中から取り出したい部分を 1 つ選びます。
Reload .reload ♻️Reload (再読み込み) — 親 import COMP からアセットを再読み込みします。元ファイルを更新した後にこのパルスを押すことで TouchDesigner 側の表示を最新化します。
Compute Tangents .comptang 📐Compute Tangents (タンジェント計算) — この SOP でタンジェントベクトルを計算するかどうかのトグル。法線マップを使うマテリアルや PBR シェーダで必要になります。
Playback Page ▶️
アニメーション制御 .animation_source 🎞️
アニメーション制御の取得元 (親 COMP に従う / この SOP 独自) を切替えるトグル群
Use Parent Animation .useparentanim 🔗Use Parent Animation (親のアニメーション制御を使用) — オンの場合、親 COMP のアニメーション制御をそのまま使用します。オフにすると、この SOP 独自の再生設定 (Play Mode / Speed / Cue 等) を使用します。
Shift Animation Start .shiftanimationstart ⏮️Shift Animation Start (開始位置にシフト) — オンの場合、取り込みファイルが示すアニメーション開始位置にシフトします。アニメーションの先頭フレームから再生したい時に使います。
サンプルレート .samplerate ⏱️
アニメーションのサンプルレート (FPS) を取り込みファイルの値で使うか、独自指定するかを切替
| 項目 | 内部名 | 説明 |
|---|---|---|
| File FPS | .filefps |
取り込みファイルに記録された FPS を使用 |
| Custom | .custom |
下の Sample Rate パラメータで指定した値を使用 |
サンプルレート値 .samplerate_value 🔢
Sample Rate Mode が Custom のときのみ有効になる FPS 指定パラメータ
Sample Rate .samplerate 🔢Sample Rate (サンプルレート値) — アニメーションのサンプルレート (FPS) を数値で指定します。デフォルトでは無効化されており、Sample Rate Mode で Custom を選択した時のみ有効になります。
再生モード .playmode ▶️
アニメーションの再生方式 (タイムライン連動 / 指定インデックス / 連続再生) を切替
| 項目 | 内部名 | 説明 |
|---|---|---|
| Locked to Timeline | .lockedtotimeline |
アニメーション位置を TouchDesigner のタイムラインに直結 (Play / Speed / Index / Cue 系は無効化) |
| Specify Index | .specifyindex |
Index パラメータで任意位置にランダムアクセス |
| Sequential | .sequential |
タイムラインに関係なく連続再生 (Play / Speed / Cue 全機能が使用可能) |
再生制御 .play_control ⏯️
アニメーションの初期化・開始・再生トグル
Initialize .initialize 🔄Initialize (初期化) — アニメーションを初期状態にリセットします (再生は開始しません)。
Start .start ▶️Start (開始) — アニメーションを初期状態にリセットし、再生を開始します。
Play .play ⏯️Play (再生) — オンでアニメーションを再生します。Play Mode が Sequential の時のみ有効になります。
Speed .speed ⚡Speed (再生速度) — 再生速度の倍率。1 が標準、2 が 2 倍速、0.5 が半分速。Play Mode が Sequential の時のみ機能します。
キューポイント .cue 📌
アニメーション内の特定位置 (Cue Point) にジャンプする機能群。Play Mode が Sequential の時のみ有効
Cue .cue 📍Cue (キュー保持) — オンにすると Cue Point の位置にジャンプし、その位置で停止し続けます。Play Mode が Sequential の時のみ有効です。
Cue Pulse .cuepulse 💥Cue Pulse (キューパルス) — パルスを押すとアニメーションが Cue Point にジャンプし、その位置から再生を続けます。
Cue Point .cuepoint 🎯Cue Point (キュー位置) — アニメーション内のジャンプ先となる位置を指定します。
キュー単位 .cuepointunit 📏
Cue Point パラメータの単位タイプ。切替時は既存値を新しい単位に自動換算
| 項目 | 内部名 | 説明 |
|---|---|---|
| Frames | .frames |
フレーム数で指定 |
| Seconds | .seconds |
秒数で指定 |
| Fraction | .fraction |
全体に対する割合 (0.0〜1.0) で指定 |
| Index | .indices |
サンプルインデックスで指定 |
インデックス指定 .index 🔢
Play Mode が Specify Index の時、アニメーション位置を明示的に指定するパラメータ
Index .index 🎯Index (インデックス) — Play Mode が Specify Index の時にアニメーション位置を明示的に指定します。右側の単位メニューで Index / Frames / Seconds / Fraction の単位を選択。
インデックス単位 .indexunit 📏
Index パラメータの単位タイプ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Frames | .frames |
フレーム数で指定 |
| Seconds | .seconds |
秒数で指定 |
| Fraction | .fraction |
全体に対する割合 (0.0〜1.0) で指定 |
| Index | .indices |
サンプルインデックスで指定 |
トリミング .trim ✂️
アニメーションの再生範囲を前後でトリムする機能群
Trim .trim ✂️Trim (トリミングを有効化) — オンで Trim Start / Trim End パラメータを有効化します。再生範囲を絞り込みたい時に使います。
Trim Start .tstart ⏪Trim Start (開始位置) — アニメーションの先頭から見たトリム開始位置。右側の単位メニューで Index / Frames / Seconds / Fraction の単位を選択。
Trim End .tend ⏩Trim End (終了位置) — アニメーションの末尾から見たトリム終了位置。右側の単位メニューで Index / Frames / Seconds / Fraction の単位を選択。
トリム開始単位 .tstartunit 📏
Trim Start パラメータの単位タイプ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Frames | .frames |
フレーム数で指定 |
| Seconds | .seconds |
秒数で指定 |
| Fraction | .fraction |
全体に対する割合 (0.0〜1.0) で指定 |
| Index | .indices |
サンプルインデックスで指定 |
トリム終了単位 .tendunit 📏
Trim End パラメータの単位タイプ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Frames | .frames |
フレーム数で指定 |
| Seconds | .seconds |
秒数で指定 |
| Fraction | .fraction |
全体に対する割合 (0.0〜1.0) で指定 |
| Index | .indices |
サンプルインデックスで指定 |
範囲外動作 (前方) .textendleft ⬅️
Trim Start 以前のフレームに対する動作 (例: Trim Start=1 のとき index=-10 をどう扱うか)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
Trim Start の値で停止 (一定値を保持) |
| Cycle | .cycle |
アニメーションを繰り返してループ再生 |
| Mirror | .mirror |
アニメーションを反転して鏡像再生 |
範囲外動作 (後方) .textendright ➡️
Trim End 以降のフレームに対する動作 (例: Trim End=20 のとき index=25 をどう扱うか)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
Trim End の値で停止 (一定値を保持) |
| Cycle | .cycle |
アニメーションを繰り返してループ再生 |
| Mirror | .mirror |
アニメーションを反転して鏡像再生 |
実践アイデア 💡
Example 1: USDシーンの一部抽出 🧍
USD COMP → Import Select SOP (Geo Path = /scene/character) → Geometry COMP → Render TOP
DCC ツールで作成した USD シーンファイルを USD COMP で読み込み、Import Select SOP で人物メッシュだけを抽出して Geometry COMP に流し込み、最終的に Render TOP で表示する基本フローです。
- USD COMP を配置して .usd ファイルを読み込む
- Import Select SOP を配置し、Import Parent に USD COMP のパスを指定
- Geo Path に取り出したいプリミティブパス (例:
/scene/character) を入力 - Geometry COMP の中に Import Select SOP の出力を Out SOP 経由で渡す
- Render TOP で 3D シーンとして表示
Example 2: FBXアニメをループ再生 🎬
FBX COMP → Import Select SOP (Play Mode=Sequential, Extend Right=Cycle) → Geometry COMP
FBX 形式のキャラクターアニメーションを FBX COMP で読み込み、Import Select SOP の Sequential モードで連続再生しつつ Extend Right を Cycle に設定することでアニメーションをループさせる例です。
- FBX COMP でアニメーション付き .fbx ファイルを読み込む
- Import Select SOP の Use Parent Animation をオフにしてこの SOP 独自の再生制御に切り替える
- Play Mode を
Sequentialに設定して連続再生モードにする - Trim を有効化し、Trim Start / Trim End でループ範囲を指定
- Extend Right を
Cycleに設定してループ再生を実現
関連オペレータ 🔗
類似機能OP 🔍
- File In SOP — ローカルファイルから直接ジオメトリを読み込む (USD/FBX COMP を介さない基本的な読み込み)
- Alembic SOP — Alembic (.abc) 形式のジオメトリ・アニメーションを読み込む
- Object Merge SOP — 他の Geometry COMP / SOP からジオメトリをマージして取り込む
- In SOP — 親 COMP の SOP 入力からジオメトリを受け取る
組み合わせ推奨OP 🔄
- USD COMP — Import Select SOP の親として .usd シーンファイルを読み込む
- FBX COMP — Import Select SOP の親として .fbx ファイルを読み込む
- Geometry COMP — 取り出したジオメトリを 3D シーンに配置するコンテナ
- Transform SOP — 取り込んだジオメトリの位置・回転・スケールを調整
- Material SOP
前処理・後処理SOP 🎯
Info CHOP情報 📊
Import Select 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: このオペレータのエラー数
GPU転送タイミング 🎮
last_vbo_update_time:last_vbo_update_time— 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間。別スレッドのためフレーム時間には含まれませんlast_meta_vbo_update_time:last_meta_vbo_update_time— 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされた時のフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
警告・エラー ⚠️
warnings:warnings— このオペレータの警告数 (あれば)errors:errors— このオペレータのエラー数 (あれば)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ジオメトリが読み込まれない
✅ Solution:
Import Parentに親 USD COMP / FBX COMP の正しいパスが指定されているか確認Geo Pathがファイル内に実在するプリミティブパスかを確認 (USD の場合は/から始まる絶対パス)Reloadパルスを押して親 import COMP からアセットを再読み込み- 親 import COMP 自体がファイル読み込みに成功しているか先に確認
❌ Problem: アニメーションが再生されない
✅ Solution:
Play ModeがLocked to Timeline以外 (Sequential または Specify Index) になっているか確認Use Parent Animationをオフにしてこの SOP 独自の再生制御に切り替えるPlayトグルがオンか確認 (Sequential モードの場合)- 親 import COMP がアニメーション付きの形式 (USD/FBX) で読み込まれているか確認
❌ Problem: パフォーマンスが重い
✅ Solution:
Compute Tangentsが不要ならオフにする (法線マップを使わない場合)- 前段に Null SOP を入れて Cook タイミングを制御
- 複数の Import Select SOP で同じ親 COMP を参照する場合は、できるだけ親 COMP 側でフィルタリングしてから取り出す
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Import Select SOP
- TouchDesigner公式ドキュメント – USD COMP
- TouchDesigner公式ドキュメント – FBX COMP

