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

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

File Out POP によるジオメトリファイル書き出しの図

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

概要 📖 – POP ジオメトリを OBJ / EXR / PLY / SPZ / E57 ファイルへ書き出し

File Out POPは、入力 POP のジオメトリを OBJ / EXR / PLY / SPZ / E57 等の汎用ファイル形式としてディスクに書き出す POPです。Type で単一ファイル / 連番シーケンスを切替え、Object File Type で OBJ / EXR / PLY / SPZ / E57 から書き出し形式を選択、Record パルスで録画を開始・停止し、Limit Length で長さを制限、Unique Suffix で連番命名を行うことで、TouchDesigner 上のリアルタイム生成結果を再現可能なキャッシュとして外部 DCC ツールへ橋渡しできます。同じ POP 出力系である Alembic Out POP が .abc 単一形式に特化するのに対し、File Out POP は OBJ / EXR / PLY 等の **汎用ジオメトリ形式** をカバーするのが大きな違いです。

主な用途 🎯

  • TouchDesigner で生成した POP ジオメトリを OBJ / EXR / PLY / SPZ / E57 等の汎用ファイル形式として外部書き出し
  • 単一ファイル (File) と連番シーケンス (File Sequence) の Type 切替によるスナップショット / アニメーション両対応
  • Houdini / Blender / Maya / Unreal Engine 等の外部 DCC ツールへのジオメトリ受け渡し
  • Unique Suffix + N + Leading Zeros による連番ユニーク命名で上書き事故を防ぎながらバリエーション複数録画
  • Output Color Space 指定による色空間メタデータ付与 (sRGB / Rec.2020 / ACES 等) で外部レンダラと色合わせ

データフロー 🔄

入力 POP(ポイント・頂点・プリミティブ属性)

File Out POP(録画制御 + 指定ファイル形式書き出し)

出力: .obj / .exr / .ply / .spz / .e57 ファイル(ディスク)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

File Out Page 📤

Type .type 📁

単一ファイルとして書き出すか、連番シーケンスとして書き出すかを選択

項目 内部名 説明
File .file Record / Add Frame 1 回ごとに 1 ファイルとして書き出す。静的スナップショットや単一フレームキャプチャ用
File Sequence .filesequence 録画中、フレームごとに連番命名された複数ファイルとして書き出す。Leading Zeros Digits が有効になりアニメーションキャプチャ用

Object File Type .objectfiletype 🗂️

書き出すジオメトリファイルのフォーマット形式を選択

項目 内部名 説明
OBJ .obj Wavefront OBJ 形式。テキストベースで Houdini / Blender / Maya 等の幅広い 3D ソフトと互換性のある業界標準メッシュ形式
EXR .exr OpenEXR 形式。HDR 浮動小数点ジオメトリ情報を保持できる多チャンネル対応形式 (深度マップ・点群とテクスチャの統合用途)
PLY .ply Polygon File Format。点群スキャナや学術用途で広く使われる軽量メッシュ・点群形式 (カラー・法線属性対応)
SPZ .spz Gaussian Splat 形式。3D Gaussian Splatting で生成された splat データの圧縮保存形式
E57 .e57 ASTM E57 形式。LiDAR や 3D スキャナで取得した大規模点群の業界標準アーカイブ形式

ファイルパスとユニーク命名 📂

Unique Suffix .uniquesuff 🔢
– オンにすると me.fileSuffix が連番ユニーク値となり、File パラメータに展開して使える
– 同じファイルパスを誤って上書きせず、自動でバリエーション保存できる

N .n 1️⃣
me.fileSuffix で使用される連番開始インデックス
– Unique Suffix がオンのとき、N から始まる空き番号を計算してサフィックスとする

Leading Zeros Digits .leadingzerosdigits 0️⃣
– サフィックスの最小桁数 (例: 4 にすると 0001, 0002 … と先頭ゼロ詰め)
– インデックスがこの桁数より少なければ先頭にゼロを補って桁を揃える
– Type が File Sequence のときのみ有効

File .file 📄
– 書き出すファイルのパス + ファイル名
– 拡張子 (.obj / .exr / .ply / .spz / .e57) は必須
me.fileSuffix を組込めば連番ユニーク命名と組合せ可能
– 例: caches/sim_$F4.obj または caches/sim_`me.fileSuffix`.ply

録画制御 ⏺️

FPS .fps 🎞️
– タイムライン FPS を基準とした、ファイルシーケンスのフレームレート
– 60 にすれば 60fps、24 で映画系、30 で TV 系として書き出される

Limit Length .limitlength 🚧
– オンにすると指定長で自動的に録画停止
– 暴走させずに一定長のシーケンスだけキャプチャしたい用途で使用

Length .length 📏
– 録画を停止するまでの長さ
– 単位は右側の Length Unit (lengthunit) で Index / Frames / Seconds / Fraction から選択

Record .record 🔴
– 1 にすると録画開始、0 で停止 (トグル動作)
– CHOP からエクスポートしてプログラム的に開始・停止する用途に最適

Record Pulse .recordpulse 💥
– パルスを発火するとその瞬間にファイル書込みを実行
– シングルショット書き出しや明示的トリガとして使用

Pause .pause ⏸️
– 録画を一時停止 (Record はオンのまま、フレーム書込みだけ止める)
– Add Frame と組合せてフレーム単位で手動キャプチャするときに使用

Add Frame .addframe
– クリックするたびに 1 フレームを出力に追加
– Pause がオンの状態でのみ有効になる

Max Active Saves .maxactive 🧮
– 同時に実行可能なファイル書込みタスクの最大数
– 大量バリエーションを連続録画する際の並列度を制限してディスク I/O 負荷をコントロール

エクスポートオプション 🧰

Include Primitives .includeprim 🔷
– オンにするとプリミティブデータ (メッシュ・カーブ等のトポロジー) もファイルに書込む
– オフにするとポイントクラウドのみの書き出しとなり、ファイルサイズを抑えられる

Tex Coord Attribute .texcoordattrib 🗺️
– テクスチャ座標を含むジオメトリを書き出すとき、使用するテクスチャ属性名 (Tex 以外でも可)
– 例: uv, uv1 等カスタム命名の UV を扱う場合に指定

Output Color Space .outputcolorspace 🎨

書き出すファイルに付与する色空間情報を指定 (ファイル内の色空間を上書き / 設定 / 既定値を仮定)

項目 内部名 説明
sRGB .srgb sRGB 色空間 (sRGB 伝達関数)。SDR の標準色空間として最も汎用的
sRGB – Linear .srgblinear sRGB 色空間 (リニア伝達関数)。SDR のリニアワークフロー用
Rec.601 (NTSC) .rec601ntsc Rec.601 NTSC 原色 (Rec.601 伝達関数)。SDR のテレビ放送用
Rec.709 .rec709 Rec.709 色空間 (Rec.709 伝達関数、Rec.2020 と同等)。SDR の HDTV / Web 標準
Rec.2020 .rec2020 Rec.2020 色空間 (Rec.2020 伝達関数、Rec.709 と同等)。HDR の広色域標準
Rec.2020 ST2084PQ .rec2020st2084pq Rec.2020 + PQ (ST2084) 伝達関数。HDR10 の標準 PQ カーブ
Rec.2020 HLG .rec2020hlg Rec.2020 + HLG (Hybrid Log-Gamma) 伝達関数。HDR 放送・YouTube HDR 用
DCI-P3 .dcip3 DCI-P3 色空間 (D65 ホワイトポイント、2.6 ガンマ)。映画館投影用 HDR
DCI-P3 (D60) .dcip3d60 DCI-P3 D60 sim 色空間 (D60 ホワイトポイント、2.6 ガンマ)。映画館 ACES 中継用 HDR
Display P3 (D65) .displayp3d65 Display-P3 色空間 (D65 ホワイトポイント、sRGB ガンマ)。Apple ディスプレイ向け HDR
ACES2065-1 .aces2065-1 ACES 2065-1 (AP0、リニア)。ACES ワークフローの統一交換形式
ACEScg .acescg ACEScg (AP1、リニア)。ACES レンダリング作業用色空間
ACESproxy .acesproxy ACESproxy 色空間。ACES オンセットモニタリング・編集用
Passthrough .passthrough 色空間変換を行わず、値をそのまま書き出す。色空間メタデータ無しで保存したい場合

カスタム属性フィールド書き出し (Sequential Block) 🔁

Attribute .attr 📊
– ファイル内に作成する追加フィールドの本数 (Sequential Parameter Blocks の繰返し数)
– この値に応じて以下の Attribute Name / Fields パラメータが複製される

Attribute Name .attr0name 🏷️
– 書き出したい point / vertex / primitive 属性の名前 (例: Cd, v, uv)
– ファイル形式 (EXR 等) の追加フィールドとして属性データを書込む際に指定

Fields .attr0fields 🧩
– 指定した属性のどのコンポーネントをファイルに書き出すかをパターンマッチングで選択
– 例: 法線属性 N から x y z、カラー Cd から r g b a


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に書き出し処理を一時的に外して入力を確認する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流に渡す属性を最小限に絞り、ファイルサイズ・メモリ・帯域を節約

実践アイデア 💡

Example 1: POPをOBJで書出しHoudini等へ橋渡し 🧊

Box POP → Transform POP → File Out POP (Type=File, Object File Type=OBJ, Record Pulse) → output.obj → Houdini / Blender

TouchDesigner 上で組んだ静的ジオメトリを 1 ファイルに固めて Houdini / Blender に持っていく定石。Type を File にして Object File Type を OBJ に設定、Record Pulse を 1 回発火するだけでスナップショットが書き出される。OBJ はテキストベースで互換性が高く、ほぼ全ての 3D ソフトで読込めるため、最初の検証用途として最も使いやすい形式。

  1. 出力したい POP ジオメトリを File Out POP の入力に接続
  2. Type = File (単一ファイル) に設定
  3. Object File Type = OBJ を選択
  4. File に出力パス + ファイル名 + 拡張子を設定 (例: caches/scene_001.obj)
  5. Include Primitives をオンにしてメッシュトポロジーを含めて書込み、Record Pulse を発火

Example 2: POPをPLY連番で点群アニメ保存 🎆

Particle POP → File Out POP (Type=File Sequence, Object File Type=PLY, Unique Suffix=On, Leading Zeros=4) → caches/sim_0001.ply, _0002.ply, ...

TouchDesigner 上でリアルタイム駆動した Particle POP の結果を PLY 連番として書き出し、点群解析ツールや外部レンダラで再生する用途。Type を File Sequence にすると Leading Zeros Digits が有効になり、フレームごとに 1 ファイル吐かれる。PLY はカラー・法線属性も保持できる軽量形式で、点群スキャンデータの保存にも適している。

  1. Particle POP で動的パーティクルを生成し、必要なら Transform POP で位置調整
  2. Type = File Sequence (連番シーケンス) に設定
  3. Object File Type = PLY を選択
  4. Filecaches/sim_`me.fileSuffix`.ply 等の me.fileSuffix を組込んだパスを指定
  5. Unique Suffix をオン、N = 1、Leading Zeros Digits = 4 で 4 桁ゼロ詰め
  6. Record = 1 にして録画開始、Limit Length で長さ制限を設けて自動停止

Example 3: LiDAR/3DスキャンをE57で長期保存 🛰️

LiDAR Sensor / Kinect POP → Transform POP (整合) → File Out POP (Type=File, Object File Type=E57, Output Color Space=Rec.709) → archive.e57

業務用途で取得した大規模点群データを長期アーカイブとして保存する用途。E57 は ASTM 標準形式で点群ソフト間の互換性が高く、座標 + カラー + センサー情報をまとめて格納できる。Output Color Space を Rec.709 (一般的な HDTV / Web 標準) に明示しておくと、後から外部ツールで読込んだときに色空間メタデータが正しく解釈される。

  1. 外部センサー (Kinect / LiDAR) からの点群を POP 系で取込み、Transform POP で座標系を整える
  2. Type = File (単一ファイル) に設定
  3. Object File Type = E57 を選択
  4. Filearchive/scan_$F4.e57 等のパス + 拡張子を指定
  5. Output Color Space = Rec.709 (用途に応じ Rec.2020 / sRGB 等) を選択
  6. Record Pulse で 1 ファイル書込み、外部点群ビューア (CloudCompare 等) で確認

関連オペレータ 🔗

類似機能OP 🔍

  • Alembic Out POP — 同じ POP 出力系。.abc (Alembic) 単一形式に特化し、Topology Unchanged や Samples per Second 等アニメーション特化機能を持つ
  • File In POP — File Out POP で書き出した OBJ / PLY / E57 等を逆方向に取込む対の OP

組み合わせ推奨OP 🔄

  • Transform POP — 書き出し前のジオメトリ位置・回転・スケール調整
  • Math POP — 頂点属性の正規化・スケーリングを書き出し前に適用
  • Attribute POP — 書き出したい属性のリネーム・整理・絞り込み

前処理・後処理POP 🎯


Info POP情報 📊

File Out POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

書き出しジオメトリ情報 🧬

  • num_points: 書き出し対象として入力されている総ポイント数
  • num_point_attribs: 書き出される point 属性数 (位置 P / 法線 N / カラー Cd / 速度 v 等)
  • num_vertex_attribs: 書き出される vertex 属性数 (UV 等の頂点単位属性数)
  • num_prim_attribs: 書き出される primitive 属性数 (material 名・group ID 等)
  • num_prims: 書き出されるプリミティブ数 (メッシュ・カーブ数)

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

よくある問題と解決策 🔧

❌ Problem: ファイルが書き出されない / 出力ディレクトリに何も生成されない
✅ Solution:

  • File パラメータに拡張子 (.obj / .exr / .ply / .spz / .e57) が含まれているか確認 (拡張子なしでは書き出し失敗)
  • Object File TypeFile の拡張子が整合しているか確認 (Object File Type=OBJ なのに File が .ply だと矛盾)
  • Record が 1 になっているか、または Record Pulse が発火されたか確認
  • Pause がオンになっていないか確認 (オン時は Record オンでもフレームは書込まれない)
  • 出力ディレクトリの書込み権限と空き容量を OS 側で確認

❌ Problem: ファイルが毎回上書きされて連番にならない
✅ Solution:

  • TypeFile Sequence に切替えると Leading Zeros Digits が有効になり連番命名が自動化される
  • Unique Suffix をオンにして me.fileSuffix をファイル名に組込む
  • File 例: caches/sim_`me.fileSuffix`.obj
  • N で開始インデックス、Leading Zeros Digits で桁数を調整

❌ Problem: クック時間が極端に長くフレーム落ちが発生する
✅ Solution:

  • Max Active Saves を下げて並列書込みタスク数を制限
  • Common Page の Delete Input Attributes で書き出す属性を P N Cd 等に絞り込みファイルサイズと I/O を削減
  • Include Primitives をオフにしてポイントクラウドのみ書き出し、メッシュトポロジーの計算負荷を回避
  • 上流で Math POP 等を使ってポイント数を間引いてから書き出す

❌ Problem: Houdini / Blender で開くとトポロジーや属性が欠落している
✅ Solution:

  • Include Primitives がオフだとポイントクラウドのみが書込まれる。メッシュとして読みたい場合はオン
  • Object File Type が外部 DCC ツールが対応する形式か確認 (Blender は SPZ / E57 に未対応の場合あり)
  • Tex Coord Attribute が外部 DCC の想定属性名 (uv 等) と一致しているか確認
  • カスタム属性は Attribute Sequential Block で Attribute Name + Fields を明示的に指定しないとファイルに含まれない場合がある

❌ Problem: 外部レンダラで色が想定と違って表示される
✅ Solution:

  • Output Color Space を外部レンダラの作業色空間と一致させる (一般用途: sRGB / HDR: Rec.2020 / ACES ワークフロー: ACEScg)
  • 色空間メタデータを書込みたくない場合は Passthrough を選択して値をそのまま保存
  • Common Page の Parameter Color Space で UI 上の色値の解釈を確認

参考資料 📚

その他 🔗

公式リソース 📖

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