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

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

Import Select SOP の使い方を示す図

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

概要 📖 – 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 ネットワークに供給される単一のジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 で表示する基本フローです。

  1. USD COMP を配置して .usd ファイルを読み込む
  2. Import Select SOP を配置し、Import Parent に USD COMP のパスを指定
  3. Geo Path に取り出したいプリミティブパス (例: /scene/character) を入力
  4. Geometry COMP の中に Import Select SOP の出力を Out SOP 経由で渡す
  5. 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 に設定することでアニメーションをループさせる例です。

  1. FBX COMP でアニメーション付き .fbx ファイルを読み込む
  2. Import Select SOP の Use Parent Animation をオフにしてこの SOP 独自の再生制御に切り替える
  3. Play Mode を Sequential に設定して連続再生モードにする
  4. Trim を有効化し、Trim Start / Trim End でループ範囲を指定
  5. 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 ModeLocked 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 側でフィルタリングしてから取り出す

参考資料 📚

その他 🔗

公式リソース 📖

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