
概要 📖 – 点群データを画像化する
Point File In TOPは、ディスク上の点群データファイルを読み込み、各点属性をピクセル値として 2D テクスチャに格納する TOPです。Red / Green / Blue / Alpha の各チャンネルに任意の点群属性をマッピングでき、連番フォルダを指定すれば動画のように再生することも可能です。Geometry COMP のインスタンス入力や GLSL TOP のサンプリングソースとして、点群を GPU パイプラインに乗せる入口として機能します。
主な用途 🎯
- EXR / HDR 等の点群データファイルを 2D テクスチャとして読み込み (位置・色・法線等を画素として保持)
- 連番ファイルを動画のように再生し、ベイク済みパーティクル / 群衆シミュレーションのプレイバックに利用
- Red / Green / Blue / Alpha 各チャンネルへ任意の点群属性をマッピングして可視化
- Geometry COMP のインスタンス入力 / GLSL TOP のサンプリングソースとして点群テクスチャを供給
- 外部 DCC ツール (Houdini / Blender 等) で書き出した点群キャッシュの再生エンジン
データフロー 🔄
入力: ディスク上の点群ファイル (単体 / 連番フォルダ)
↓
ファイル読み込み・チャンネル割当・再生制御
↓
出力: 各点属性をピクセル値として格納した 2D テクスチャ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Point Data Page 📋
ファイル設定 .file 📂
File .file 📄File (読み込み対象ファイル) — 読み込む点群ファイルのパスと名前。対応する点群フォーマットは File Types 公式ページ参照。連番フォルダを指定するとフォルダ内ファイル名のアルファベット順で 1 ファイル = 1 フレームとして扱われ、動画のように再生される。http:// 形式の URL も指定可能 (Derivative の一時ディレクトリにダウンロードされる)。
Reload .reload 🔄Reload (再読み込みトグル) — 値を 0 から 1 に変更するとファイルが強制的に再読み込みされる。ファイルがディスク上で書き換わった場合や、初回読み込み時点でファイルが存在しなかった場合に再ロードさせる用途。
Reload Pulse .reloadpulse ⚡Reload Pulse (再読み込みパルス) — ボタンクリック (パルス入力) で即座に点群ファイルを再読み込みする。Reload トグルとは異なり 0/1 の状態を維持せず単発実行のためスクリプトトリガにも便利。
チャンネル割当 .channelmap 🎨
出力テクスチャの RGBA 各チャンネルに割り当てる点群属性
Red .red 🔴Red (赤チャンネル割当) — 出力画像の赤チャンネルに格納する点群属性を、読み込んだファイルが持つ属性 (position.x / color.r / normal.x など) から選択。One / Zero を選ぶと定数値 (1 / 0) を書き込む。
Green .green 🟢Green (緑チャンネル割当) — 出力画像の緑チャンネルに格納する点群属性を選択。Red と同様に属性または One / Zero 定数値が選択肢となる。
Blue .blue 🔵Blue (青チャンネル割当) — 出力画像の青チャンネルに格納する点群属性を選択。Red と同様。
Alpha .alpha ⚪Alpha (アルファチャンネル割当) — 出力画像のアルファチャンネルに格納する点群属性を選択。Red と同様。アルファに ID 値や有効フラグを格納してマスクとして利用するパターンも一般的。
Play Page ▶️
Play Mode .playmode 🎬
アニメーションの再生方式を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Sequential | .sequential |
Speed パラメータに従って前から後ろへ順次再生 (動画的な連続再生) |
| Locked to Timeline | .locked |
TouchDesigner タイムラインのフレームに同期して再生 (タイムライン位置でフレームが決まる) |
| Specify Index | .specify |
Index パラメータで明示的にフレーム位置を指定 (スクリプト / CHOP 制御で外部から駆動) |
再生制御 .playctl 🎚️
Play .play ▶️Play (再生トグル) — 値が 1 でアニメーション再生、0 で停止。
Speed .speed ⏩Speed (再生速度倍率) — 1 が等倍、2 が倍速、0.5 が半速、負値は逆再生。
Cue 設定 .cue ⏯️
Cue .cue 🔘Cue (Cue トグル) — 1 にすると Cue Point で指定した位置にジャンプ。
Cue Pulse .cuepulse ⚡Cue Pulse (Cue パルス) — ボタンクリック (パルス入力) で Cue Point 位置へ即座にジャンプ。状態を維持しない単発トリガ。
Cue Point .cuepoint 📍Cue Point (Cue 位置) — Cue / Cue Pulse でジャンプする目標位置をアニメーション内の任意のインデックスとして指定。
Cue Point Unit .cuepointunit 📐Cue Point Unit (Cue 位置の単位) — Cue Point の値を Index (連番位置) / Frames (タイムラインフレーム) / Seconds (秒) / Fraction (全体に対する割合 0.0〜1.0) のいずれの単位で解釈するかを選択。
Cue Behavior .cuebehavior 🎛️Cue Behavior (Cue 挙動カスタマイズ) — Cue 動作時の振る舞いを詳細設定 (ジャンプ後の停止 / 継続再生など)。
インデックス .index 🔢
Index .index 📍Index (フレーム位置の直接指定) — Play Mode が Specify Index のとき、ファイルシーケンス内の再生位置を明示的に設定。例: 内部 25fps のシーケンスに対し、Units = Index で 25 を指定すると 1 秒目の画像が得られる。Units = Frames でタイムライン 60fps の値 60 を指定しても同じ画像が得られる。
Index Unit .indexunit 📐Index Unit (Index の単位) — Index 値を Index / Frames / Seconds / Fraction のいずれの単位で解釈するかを選択。タイムライン FPS とシーケンス内部 FPS が異なる場合の挙動の鍵。
ループ・補間 .loopinterp 🔁
Loop Crossfade .loopcrossfade 🌀Loop Crossfade (ループ繋ぎのクロスフェード長) — アニメーションのループ時にシームレスに繋ぐためのクロスフェード時間。Trim 有効時は Trim Start / Trim End 間でクロスフェードする。
Loop Crossfade Unit .loopcrossfadeunit 📐Loop Crossfade Unit (クロスフェード長の単位) — Index / Frames / Seconds / Fraction から選択。
Step Size .stepsize 👣Step Size (フレームスキップ間隔) — 表示する前にスキップするフレーム数。例: Step Size 30 + サンプルレート 30 の組み合わせでは 1 秒ごとに新しいフレームが表示される (再生タイミング自体は変わらない)。
Interpolate Frames .interp 🎞️Interpolate Frames (フレーム間補間トグル) — 厳密な時刻に基づいてフレーム間を補間。例えば Index = 1.5 (フレーム) の場合、フレーム 1 と 2 が 50:50 でブレンド。Index = 1.7 ならフレーム 1 が 30% / フレーム 2 が 70% でブレンドされる。
シーケンス .sequence 🗂️
Audio Loop .audioloop 🎵Audio Loop (オーディオループ処理) — アニメーション終端付近でオーディオをどう扱うかを決定するメニュー。Index 駆動再生時など、ループ意図が機械的に判断しにくい状況で動作の指針を与える。
Image Sequence Indexing .imageindexing 🔠Image Sequence Indexing (連番ファイルの並び順) — フォルダ内ファイルをアニメーションの何番目のフレームとして扱うかの順序ルールを決定。
Loading/Error Image .loadingerrorimage 🚧Loading/Error Image (読み込み失敗時の代替画像) — 何らかの理由でファイルを読み込めない場合に出力する画像を選択するメニュー。
Trim Page ✂️
トリム範囲 .trim 📏
Trim .trim 🔘Trim (トリム有効化トグル) — Trim Start / Trim End によるイン点・アウト点指定を有効化する。
Trim Start .tstart ⏪Trim Start (トリム開始位置) — アニメーションのイン点 (開始位置) を指定。
Trim Start Unit .tstartunit 📐Trim Start Unit (トリム開始位置の単位) — Index / Frames / Seconds / Fraction から選択。
Trim End .tend ⏩Trim End (トリム終了位置) — アニメーションのアウト点 (終了位置) を指定。
Trim End Unit .tendunit 📐Trim End Unit (トリム終了位置の単位) — Index / Frames / Seconds / Fraction から選択。
範囲外動作 .extend ↔️
Extend Left .textendleft ⬅️Extend Left (Trim Start より前の挙動) — 例えば Trim Start = 1 で現在の Index が -10 のように Trim 範囲より前の位置になったときの再生位置計算方法を決定 (ホールド / ループ / ミラー等)。
Extend Right .textendright ➡️Extend Right (Trim End より後の挙動) — 例えば Trim End = 20 で現在の Index が 25 のように Trim 範囲より後の位置になったときの再生位置計算方法を決定。
サンプルレート .samplerate ⚡
Override Sample Rate .overridesample 🔘Override Sample Rate (サンプルレート上書きトグル) — オンにすると動画のサンプルレートを変更可能。連番ファイル読み込み時にこのパラメータで再生 FPS を指定する。
Sample Rate .samplerate 🎚️Sample Rate (サンプルレート) — 上記 Override Sample Rate がオンのときに使う再生サンプルレート (FPS)。
Tune Page 🔧
メモリ調整 .memtune 💾
Pre-Read Frames .prereadframes 📚Pre-Read Frames (先読みフレーム数) — TouchDesigner が先読みして CPU メモリに保持するフレーム数。フレームデコードが遅い場合のスタッター抑制や、ループ復帰時のポップ防止に有効。連番読み込み時は複数ファイルを並列デコード可能になり、.exr 等の重いフォーマットのリアルタイム再生を支える。
Frame Read Timeout .frametimeout ⏱️Frame Read Timeout (フレーム読込タイムアウト ms) — ディスクからのフレーム読み込み待ち上限時間 (ミリ秒)。Disk Read Timeout 到達時はそのフレームをスキップ。HTTP 経由のネットワークファイルにも適用される。
Frame Timeout Strategy .frametimeoutstrat 🛟Frame Timeout Strategy (タイムアウト時の代替戦略) — Disk Read Timeout に達した場合、スキップしたフレームの代わりに最後に読めたフレームを表示する戦略を選択。
Always Load Initial Frame .alwaysloadinitial 🔘Always Load Initial Frame (初回フレーム強制読込) — オンの場合、最初のフレームに対しては Frame Read Timeout を無視して常に待機し、有効な画像でノードを開始することを保証する。
File Open Timeout .opentimeout 📂File Open Timeout (ファイルオープンタイムアウト ms) — ファイルオープンを待つ上限時間 (ミリ秒)。Disk Open Timeout 到達時はオープンを中止して全黒画像 + 右下グレー角の警告画像を表示。次のクック時に再試行する。
GPU 設定 .gputune 🖥️
Async Upload to GPU .asyncupload 🚀Async Upload to GPU (GPU 非同期アップロード) — 動画画像を GPU に非同期アップロードする OpenGL 機能を使用。クック時間を大幅に短縮できる (パフォーマンスモニタの "Uploading Image to GPU" がほぼ消える)。
Update Image .updateimage 🔁Update Image (画像更新トグル) — 0 に設定すると出力画像を更新しなくなる (アニメーションインデックスは内部で進行し続けるが画像は止まる)。
Max Decode CPUs .maxdecodecpus 🧮Max Decode CPUs (デコード使用 CPU 数上限) — マルチ CPU デコード可能なコーデックに対して使用する最大 CPU 数を制限。
高速読込 .highperf 💨
High Performance Read .highperfread 🔘High Performance Read (高速読込トグル) — 非常に高速な SSD 読み込みを要するファイルを再生する場合に使用するオプション。読み込み性能を大きく改善する。
High Performance Read Factor .highperfreadfactor 🔢High Performance Read Factor (高速読込係数) — 高速読込時の 1 回の読み込みオペレーションサイズを制御する係数。例: コーデックが 1MB 読み込みを要求し factor = 3 のとき、実際には 3MB をディスクから読み込み、余分の 2MB が次フレーム以降のためにキャッシュされる。
Hardware Decode .hwdecode 🔌Hardware Decode (ハードウェアデコード) — Nvidia ハードウェアデコーダチップを介したハードウェアデコードの使用可否を制御。Info CHOP の hardware_decode チャンネルで実際の使用状況を確認可能。Hap / NotchLC コーデックは常にハードウェアデコードされるため本パラメータの影響を受けない。
Common Page 🔧
Output Resolution .outputresolution 🖼️
出力解像度の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の解像度をそのまま継承 |
| Eighth | .eighth |
入力解像度の 1/8 |
| Quarter | .quarter |
入力解像度の 1/4 |
| Half | .half |
入力解像度の 1/2 |
| 2X | .2x |
入力解像度の 2 倍 |
| 4X | .4x |
入力解像度の 4 倍 |
| 8X | .8x |
入力解像度の 8 倍 |
| Fit Resolution | .fit |
指定解像度に縦横比を保持して収める |
| Limit Resolution | .limit |
指定解像度を上限としてクランプ |
| Custom Resolution | .custom |
Resolution パラメータで任意指定 |
Resolution .resolution 📐
カスタム解像度の幅・高さ指定 (Output Resolution = Custom 等の時のみ有効):
- Resolution W: 出力幅 (ピクセル単位)。
Output ResolutionがCustom Resolution/Fit Resolution/Limit Resolutionの時に有効 - Resolution H: 出力高 (ピクセル単位)。同上
Resolution Menu .resmenu 📋
よく使う解像度プリセットのドロップダウン:
- Resolution Menu: NTSC / PAL / HDTV 720 / HDTV 1080 / 4K UHD 等のプリセットから選択すると
Resolution W/Resolution Hが自動セットされる
Use Global Res Multiplier .resmult 🔢
プロジェクト全体の解像度倍率の適用:
- Use Global Res Multiplier: Project Settings の Global Resolution Multiplier をこの TOP に適用するかどうか。プロトタイプを低解像度で動かしつつ最終出力で一括フル解像度化する運用に便利
Output Aspect .outputaspect 📏
出力アスペクト比の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のアスペクトを継承 (伝播事故の元、非推奨) |
| Resolution | .resolution |
解像度から自動導出 (推奨デフォルト) |
| Custom Aspect | .custom |
Aspect1 / Aspect2 で手動指定 |
Aspect .aspect 📐
カスタムアスペクト比の指定 (Output Aspect = Custom Aspect の時のみ有効):
- Aspect1: 横方向アスペクト値 (
Output Aspect= Custom Aspect の時のみ有効) - Aspect2: 縦方向アスペクト値 (同上)
Input Smoothness .inputfiltertype 🎚️
入力テクスチャのサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセルアート向け、ジャギーが残る) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小時のモアレ抑制、わずかにコスト高) |
Fill Viewer .fillmode 🖥️
ビューア内でのテクスチャの収め方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の Fill Viewer 設定を継承 |
| Fill | .fill |
ビューアいっぱいに引き伸ばす (アスペクト無視) |
| Fit Horizontal | .width |
横幅に合わせて収める (上下に余白) |
| Fit Vertical | .height |
縦幅に合わせて収める (左右に余白) |
| Fit Best | .best |
アスペクト保持で内側に収まる最大サイズ |
| Fit Outside | .outside |
アスペクト保持で外側まで覆う最小サイズ (はみ出しあり) |
| Native Resolution | .nativeres |
テクスチャのネイティブ解像度のまま等倍表示 |
Viewer Smoothness .filtertype 🎛️
ビューア表示時のサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセル単位での確認向け) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小ビュー時のモアレ抑制) |
Passes .npasses 🔁
オペレータの反復実行回数:
- Passes: TOP の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる。ブラー反復やフィードバック処理に利用
Channel Mask .chanmask 🎨
処理対象のチャンネルマスク (R/G/B/A 個別トグル):
- Channel Mask:
R/G/B/A各チャンネルのオン/オフトグル。オフのチャンネルは TOP の処理を受けず入力値がそのまま通過
Pixel Format .format 🎨
出力テクスチャのピクセルフォーマット (ビット深度・チャンネル構成)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のフォーマットを継承 |
| 8-bit fixed (RGBA) | .rgba8fixed |
標準 8 ビット固定小数 RGBA (デフォルト、軽量) |
| sRGB 8-bit fixed (RGBA) | .srgba8fixed |
sRGB ガンマ補正済 8 ビット RGBA |
| 16-bit float (RGBA) | .rgba16float |
16 ビット浮動小数 RGBA (HDR・中間処理向け) |
| 32-bit float (RGBA) | .rgba32float |
32 ビット浮動小数 RGBA (最高精度、メモリ大) |
| 10-bit RGB with 2-bit Alpha | .rgb10a2fixed |
10-10-10-2 ビット固定小数 (バンディング抑制) |
| 16-bit fixed (RGBA) | .rgba16fixed |
16 ビット固定小数 RGBA |
| 11-bit float (RGB) | .rgb11float |
11-11-10 ビット浮動小数 RGB (アルファなし、HDR 軽量) |
| 16-bit float (RGB) | .rgb16float |
16 ビット浮動小数 RGB (アルファなし) |
| 32-bit float (RGB) | .rgb32float |
32 ビット浮動小数 RGB (アルファなし) |
| 8-bit fixed (Mono) | .mono8fixed |
8 ビット固定小数モノクロ |
| 16-bit fixed (Mono) | .mono16fixed |
16 ビット固定小数モノクロ |
| 16-bit float (Mono) | .mono16float |
16 ビット浮動小数モノクロ |
| 32-bit float (Mono) | .mono32float |
32 ビット浮動小数モノクロ |
| 8-bit fixed (RG) | .rg8fixed |
8 ビット固定小数 R+G 2 チャンネル |
| 16-bit fixed (RG) | .rg16fixed |
16 ビット固定小数 R+G |
| 16-bit float (RG) | .rg16float |
16 ビット浮動小数 R+G |
| 32-bit float (RG) | .rg32float |
32 ビット浮動小数 R+G |
| 8-bit fixed (A) | .a8fixed |
8 ビット固定小数アルファ単体 |
| 16-bit fixed (A) | .a16fixed |
16 ビット固定小数アルファ単体 |
| 16-bit float (A) | .a16float |
16 ビット浮動小数アルファ単体 |
| 32-bit float (A) | .a32float |
32 ビット浮動小数アルファ単体 |
| 8-bit fixed (Mono+Alpha) | .monoalpha8fixed |
8 ビット固定小数モノクロ+アルファ |
| 16-bit fixed (Mono+Alpha) | .monoalpha16fixed |
16 ビット固定小数モノクロ+アルファ |
| 16-bit float (Mono+Alpha) | .monoalpha16float |
16 ビット浮動小数モノクロ+アルファ |
| 32-bit float (Mono+Alpha) | .monoalpha32float |
32 ビット浮動小数モノクロ+アルファ |
実践アイデア 💡
Example 1: ベイク済み点群アニメ再生 🌊
EXR sequence folder → Point File In TOP → CHOP to TOP / TOP to SOP → Geometry COMP (instancing)
Houdini や Blender 等で書き出した EXR 連番点群キャッシュを Point File In TOP に読み込ませ、Geometry COMP のインスタンス入力として接続することで、重い物理シミュレーションをランタイムではなくベイク済みデータの再生に置き換える基本フロー。
- 外部 DCC ツールで点群シミュレーションを EXR 連番に書き出し、専用フォルダに配置
- Point File In TOP の File パラメータにそのフォルダパスを指定すると、自動的に連番をアニメーションとして認識
- Red / Green / Blue に position.x / position.y / position.z を割当て、Alpha に point ID 等を格納
- Geometry COMP の Instancing で本 TOP をテクスチャ参照に指定し、テクセルごとに 1 インスタンス配置
- Play Mode を Sequential にし、Speed パラメータでスローモーション / 早送り再生を制御
Example 2: GPU で点群を処理 🎯
Point File In TOP → GLSL TOP (texture sampling) → Render TOP → 出力ディスプレイ
Point File In TOP が出力する点群テクスチャを GLSL TOP の Compute シェーダから 1 テクセル = 1 点としてサンプリングし、各点の位置・色情報を GPU 上で直接処理することで、CPU を経由しない大規模点群可視化を実現する用途。
- Point File In TOP の Pixel Format を 32-bit float (RGBA) に設定して精度を確保
- GLSL TOP の uniform sampler2D で Point File In TOP の出力を参照
- シェーダ内で texelFetch を用いて点群属性を読み込み、変換・カラーマッピング・物理計算等を適用
- 結果を Render TOP 経由でディスプレイに出力、または別 TOP に書き戻して再帰処理
Example 3: 深度センサーキャプチャ再生 📡
Recorded depth scan EXR → Point File In TOP → Geometry COMP → Render TOP
Kinect / RealSense / iPad LiDAR 等の深度センサーで事前収録した点群スキャンを EXR 連番として保存しておき、Point File In TOP で再生することで、本番ステージにセンサーを設置しなくても収録済みパフォーマンスを再現できるフロー。
- 深度センサーで収録したスキャンを Point File In TOP に読み込ませる
- Cue Pulse をシーンの切り替わりタイミングに合わせてトリガし、指定フレームに即座にジャンプ
- Geometry COMP で点群を実空間にリビルドし、Render TOP で映像化
関連オペレータ 🔗
類似機能OP 🔍
- Movie File In TOP — 動画ファイルや画像連番を読み込む汎用ファイル入力 TOP。Point File In TOP と再生制御 (Play Mode / Trim / Tune) の仕様が共通
- Cache TOP — フレームをメモリにキャッシュして連番再生する別アプローチ。点群ファイルではなく既存 TOP 出力を時系列でバッファリング
組み合わせ推奨OP 🔄
- Geometry COMP — 点群テクスチャを Instancing 入力に指定し、テクセルごとにジオメトリを配置
- GLSL TOP — Compute シェーダで点群テクスチャを texelFetch サンプリングし GPU 上で直接処理
- Render TOP — Geometry COMP の点群インスタンスをカメラ視点でレンダリングして最終映像化
- Info CHOP — Point File In TOP のクック状況・GPU メモリ消費・解像度等のメタ情報をチャンネル化
前処理・後処理TOP 🎯
Info情報 📊
TOP は Info CHOP / Info DAT に接続することで解像度・ピクセルフォーマット・クック情報を取得できます。Point File In TOP の場合、hardware_decode でハードウェアデコードの稼働状況、gpu_memory_used で先読みバッファの GPU メモリ消費を確認できます。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
TOP 共通情報 🖼️
resx: 出力テクスチャの横幅 (ピクセル単位)resy: 出力テクスチャの縦幅 (ピクセル単位)aspectx: アスペクト比の横成分aspecty: アスペクト比の縦成分depth: ピクセルフォーマットのビット深度 (Pixel Format で 32-bit float に上げると 32 になる)gpu_memory_used: Pre-Read Frames + Async Upload で確保した GPU メモリ消費量 (バイト)hardware_decode: ハードウェアデコードが現在稼働しているか (0/1)
オペレータ共通情報 ⚙️
total_cooks: ノードがクックされた累積回数cook_time: 直近フレームのクック時間 (ミリ秒)。先読みバッファが効いていれば短くなるcook_frame: 直近にクックされたフレーム番号cooked_this_frame: 現フレームでクック済かどうか (0/1)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ファイルを指定しても全黒画像 + 右下にグレーの角しか出ない
✅ Solution:
Fileに指定したパスが正しいか、ファイルが実際に存在しているか確認File Open Timeoutが短すぎてオープン待ちで諦めている可能性があるため、ネットワーク越し / 大きいファイルでは値を増やす- 対応していないフォーマットの場合があるため、File Types 公式ページで点群フォーマット対応一覧を確認
❌ Problem: 連番フォルダを指定しても 1 フレームしか再生されない
✅ Solution:
- フォルダ内のすべてのファイルが同一解像度であることを確認 (解像度がバラバラだと正しく連番として認識されない)
Play ModeがSequentialになっておりPlayが 1 になっているか確認- フォルダに info.xml を置いて
fps属性で再生 FPS を明示指定することで挙動が安定する場合がある
❌ Problem: 再生がカクつく / フレーム落ちが発生する
✅ Solution:
Pre-Read Framesを増やして先読みバッファを確保し、ディスク読み込み遅延を吸収Async Upload to GPUをオンにして GPU アップロード時間を非同期化 (GPU メモリ消費とのトレードオフ)High Performance Readを有効化 (高速 SSD 上の高解像度ファイルに限り効果あり)、低レートファイルでは逆効果のため要検証- Common Page の
Pixel Formatをデータが本当に必要なビット深度まで落として GPU 帯域を節約
❌ Problem: GPU メモリが急増し他の処理が落ちる
✅ Solution:
Pre-Read Framesを減らす (バッファサイズ = Width × Height × 4 × Pre-Read Frames)Async Upload to GPUをオフにすると別途確保される GPU バッファが不要になるPixel Formatを 32-bit float から 16-bit float に下げて 1 フレームあたりのメモリを半減
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

