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

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

File In SOP の外部ジオメトリファイル読込機能を示す図

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

概要 📖 – ジオメトリファイル読込

File In SOPは、外部ファイル (.tog / .classic / .bclassic / .obj 等) からジオメトリを読み込んで SOP として出力する SOPです。Refresh 系のパラメータで外部ツールから書き出した最新ファイルを再ロードしながら作業でき、TouchDesigner ネイティブ形式と Houdini 由来形式・標準 OBJ を共通の入口で扱います。

主な用途 🎯

  • OBJ ファイルなど外部 3D ツールで作成した静的ジオメトリの取り込み
  • TouchDesigner ネイティブ形式 (.tog) で保存したジオメトリの再利用
  • Houdini クラシック形式 (.classic / .bclassic) のジオメトリ読込
  • ベイク済み形状アセット をプロジェクト間でやり取りするための中継
  • サードパーティ製モデル をレンダリングパイプラインに投入する起点

データフロー 🔄

入力: ジオメトリファイルパス (Geometry File)

処理: ファイル読込 + 法線生成 (Compute Normals) + 面の向き反転 (Flip Primitive Faces)

出力: ジオメトリ SOP (ポイント・プリミティブを含む形状データ)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

ファイル指定 📂

Geometry File .file 📄
Geometry File (ジオメトリファイル) — 読み込む形状ファイルのフルパスを指定
– 対応形式: TouchDesigner ネイティブ .tog、Houdini クラシック .classic / .bclassic、汎用 .obj
– 絶対パス・プロジェクト相対パスのどちらも指定可

形状調整 🔧

Flip Primitive Faces .flipfacing 🔄
Flip Primitive Faces (面の向き反転) — 読み込んだプリミティブの面の向きを反転
– 外部ツールと TouchDesigner で面の表裏 (法線方向) が逆のときに使用
– レンダリング時にメッシュが裏側からしか見えない場合のトラブル対処に有効

Compute Normals if None Exist .normals 🧭
Compute Normals if None Exist (法線が無ければ生成) — ファイル側に法線情報が無い場合に自動生成
– 法線がベイクされていない .obj 等を取り込む際に有効化すると、シェーディングが破綻しない
– 既に法線が含まれているファイルではこのパラメータは無視される

再読込制御 ♻️

Refresh .refresh 🔁
Refresh (再読込) — このトグルをオンに切り替えた瞬間にファイルをディスクから再ロード
– 外部ツールでファイルを上書き保存したあと、トグル操作だけで反映できる

Refresh Pulse .refreshpulse
Refresh Pulse (即時再読込) — ボタンを押すと即座にファイルをディスクから再ロード
– 外部ツールで保存 → TouchDesigner 側で 1 クリック反映のワークフローに便利


実践アイデア 💡

Example 1: OBJ ファイルの取り込み 📦

Blender / Maya エクスポート .obj → File In SOP → Geometry COMP → Render TOP

Blender や Maya で作成したモデルを .obj 形式で書き出し、File In SOP で読み込んで Geometry COMP に渡す基本フロー。法線が含まれていないエクスポートでは Compute Normals if None Exist をオンにしてシェーディングを補います。

  1. 外部 3D ツールから .obj 形式でモデルを書き出し
  2. File In SOP の Geometry File にエクスポートしたファイルのパスを指定
  3. 法線が含まれない場合は Compute Normals if None Exist をオンに設定
  4. Geometry COMP の SOP として参照し、Render TOP でレンダリング

Example 2: ライブ更新ワークフロー 🔄

外部 DCC で .obj 保存 → File In SOP (Refresh Pulse) → Geometry COMP → Render TOP

外部 3D ツールでモデルを編集しながら TouchDesigner 側に変更を即時反映する運用。Refresh Pulse ボタンを押すたびにディスクから最新のファイルが再ロードされ、トランジションを止めずに形状の微調整を確認しやすくなります。

  1. File In SOP に元ファイルのパスを指定して下流まで結線
  2. 外部ツール側でモデルを編集 → 同じパスに上書き保存
  3. TouchDesigner の File In SOP の Refresh Pulse をクリック
  4. Geometry COMP / Render TOP の出力が即座に更新される

Example 3: 面の向きが逆のメッシュ修復 🪞

.obj (面の向きが逆) → File In SOP (Flip Primitive Faces) → Geometry COMP → Render TOP

他ツールから書き出した .obj をレンダリングしたとき、メッシュが裏側からしか見えない (表裏が逆になっている) ケースに対し、Flip Primitive Faces を有効化することで面の向きを一括反転して正しい表示に直すフロー。

  1. File In SOP でファイルを読み込み、Render TOP で表示確認
  2. 表面が黒くなる・抜けて見える場合は面の向きが逆と判定
  3. Flip Primitive Faces をオンに切替えて法線方向を反転
  4. 必要に応じて Compute Normals if None Exist も併用してシェーディングを補正

関連オペレータ 🔗

類似機能OP 🔍

  • Alembic SOP — Alembic 形式 (.abc) のジオメトリシーケンス読込
  • In SOP — コンテナ COMP の入力ポートからジオメトリを受け取る

組み合わせ推奨OP 🔄

  • Geometry COMP — 読み込んだジオメトリをレンダリングパイプラインに投入するコンテナ
  • Render TOP — Geometry COMP を 3D レンダリングして TOP に出力
  • Material SOP — 読み込んだジオメトリにマテリアル (シェーダ) を割り当て
  • Transform SOP — 読み込んだジオメトリの位置・回転・スケールを後段で調整
  • Convert SOP — ポリゴンと NURBS など、形状の表現形式を相互変換

前処理・後処理SOP 🎯


Info CHOP情報 📊

File In 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: このオペレータのエラー数

クック統計 ⏱️

  • total_cooks: total_cooks — プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: cook_time — 直近のクック所要時間 (ミリ秒)
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: ファイルが読み込まれない / ジオメトリが表示されない
✅ Solution:

  • Geometry File に指定したパスが正しいか確認 (絶対パスまたはプロジェクト相対パス)
  • 対応形式 (.tog / .classic / .bclassic / .obj) かどうかを確認
  • 外部ツールからの書き出しが完了し、ファイルが破損していないかをファイルサイズ・別ビューアでも確認

❌ Problem: メッシュの表面が黒い / 内側だけしか見えない
✅ Solution:

  • Flip Primitive Faces をオンに切替えて面の向きを反転
  • Compute Normals if None Exist をオンにして法線生成を有効化
  • 外部ツール側のエクスポート設定で法線が出力されているかも確認

❌ Problem: 外部ツールでファイルを上書きしても反映されない
✅ Solution:

  • Refresh Pulse ボタンをクリックして即時再読込を実行
  • Refresh トグルをオフ → オンに切替えて再ロードをトリガ
  • 外部ツール側で保存が完了しているか、書き出し中の一時ファイルを参照していないかを確認

❌ Problem: シェーディングが正しく出ない
✅ Solution:

  • Compute Normals if None Exist をオンにして法線を生成
  • 後段で Transform SOP や Convert SOP を挿入し、必要に応じて法線を再計算
  • Material SOP で適切なマテリアルが割り当てられているかを確認

参考資料 📚

その他 🔗

公式リソース 📖

関連記事 🔗

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