
概要 📖 – ジオメトリファイル読込
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 (ポイント・プリミティブを含む形状データ)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 をオンにしてシェーディングを補います。
- 外部 3D ツールから
.obj形式でモデルを書き出し - File In SOP の Geometry File にエクスポートしたファイルのパスを指定
- 法線が含まれない場合は
Compute Normals if None Existをオンに設定 - Geometry COMP の SOP として参照し、Render TOP でレンダリング
Example 2: ライブ更新ワークフロー 🔄
外部 DCC で .obj 保存 → File In SOP (Refresh Pulse) → Geometry COMP → Render TOP
外部 3D ツールでモデルを編集しながら TouchDesigner 側に変更を即時反映する運用。Refresh Pulse ボタンを押すたびにディスクから最新のファイルが再ロードされ、トランジションを止めずに形状の微調整を確認しやすくなります。
- File In SOP に元ファイルのパスを指定して下流まで結線
- 外部ツール側でモデルを編集 → 同じパスに上書き保存
- TouchDesigner の File In SOP の
Refresh Pulseをクリック - Geometry COMP / Render TOP の出力が即座に更新される
Example 3: 面の向きが逆のメッシュ修復 🪞
.obj (面の向きが逆) → File In SOP (Flip Primitive Faces) → Geometry COMP → Render TOP
他ツールから書き出した .obj をレンダリングしたとき、メッシュが裏側からしか見えない (表裏が逆になっている) ケースに対し、Flip Primitive Faces を有効化することで面の向きを一括反転して正しい表示に直すフロー。
- File In SOP でファイルを読み込み、Render TOP で表示確認
- 表面が黒くなる・抜けて見える場合は面の向きが逆と判定
Flip Primitive Facesをオンに切替えて法線方向を反転- 必要に応じて
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 で適切なマテリアルが割り当てられているかを確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

