
概要 📖 – 点群ファイルからの属性読込
Point File In POPは、点群ファイルを読込み、各フィールドを位置・法線・色などの属性へマッピングしてポイントとして出力する POPです。ファイル内の各フィールド (列) を位置 (Position) ・法線 (Normal) ・テクスチャ座標 (Texture) ・カラー (Color) などの属性へ割り当てられるため、外部で生成した点群データを TouchDesigner のリアルタイム描画パイプラインへ取込めます。Thin で点を間引いて負荷を抑え、ReRange で属性値を扱いやすいレンジへ変換し、Input Color Space で取込む色データの色空間を正しく解釈できます。
主な用途 🎯
- 点群ファイル (ポイントクラウド) から座標・属性を読込んでポイントを生成
- ファイル内の列 (フィールド) を位置・法線・テクスチャ座標・カラー属性へ自由にマッピング
- 任意フィールドを追加属性として取込み、配列属性 (Array) や Qualifier 指定にも対応
- Thin 機能による点の間引き (範囲指定・N 個ごと・ランダム) で大規模点群を軽量化
- ReRange 機能による属性値の再マッピング (入力レンジから出力レンジへの線形変換)
データフロー 🔄
点群ファイル
↓
Point File In POP(読込 + フィールドの属性マッピング + 間引き + 再レンジ)
↓
出力: 属性を持つポイント
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Point File In Page 📋
ファイル指定と再読込 📂
File .file 📄File (読込ファイル) — 読込む点群ファイルのパスとファイル名
– 絶対パス・プロジェクト相対パスのどちらにも対応
Reload .reload 🔁Reload (再読込) — ジオメトリを再インポートして読込み直す
– 外部でファイルを上書き保存したあと、最新内容を反映する際に使用
ポイント数の制御 🔢
Create Point Primitives .createpointprim 🟢Create Point Primitives (ポイントプリミティブ生成) — ポイントプリミティブの生成を有効化
– 読込んだポイントを描画可能なプリミティブとして出力したい場合にオン
Max Number of Points .maxpointsenable ✅Max Number of Points (最大ポイント数の上書き) — 最大ポイント数の手動設定を有効化
– オンにすると自動算出される最大ポイント数を下の値で上書きする
Max Number of Points .maxpoints 🔝Max Number of Points (最大ポイント数) — 自動の最大ポイント数を上書きしたときの上限値
– メモリ確保量を予約・制限する目的で使用
Position Fields .positionfields 📍
ファイル内のどのフィールドを位置属性へ割り当てるかの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| x | .x |
X 軸の値として使うフィールド |
| y | .y |
Y 軸の値として使うフィールド |
| z | .z |
Z 軸の値として使うフィールド |
| nx | .nx |
法線 X 成分のフィールド |
| ny | .ny |
法線 Y 成分のフィールド |
| nz | .nz |
法線 Z 成分のフィールド |
| r | .r |
赤 (R) 成分のフィールド |
| g | .g |
緑 (G) 成分のフィールド |
| b | .b |
青 (B) 成分のフィールド |
| a | .a |
アルファ (A) 成分のフィールド |
Normal Fields .normalfields 🧭
法線属性へ割り当てるファイル内フィールドの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| x | .x |
X 軸の値として使うフィールド |
| y | .y |
Y 軸の値として使うフィールド |
| z | .z |
Z 軸の値として使うフィールド |
| nx | .nx |
法線 X 成分のフィールド |
| ny | .ny |
法線 Y 成分のフィールド |
| nz | .nz |
法線 Z 成分のフィールド |
| r | .r |
赤 (R) 成分のフィールド |
| g | .g |
緑 (G) 成分のフィールド |
| b | .b |
青 (B) 成分のフィールド |
| a | .a |
アルファ (A) 成分のフィールド |
Texture Fields .texturefields 🗺️
テクスチャ座標属性へ割り当てるフィールドの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| x | .x |
X 軸の値として使うフィールド |
| y | .y |
Y 軸の値として使うフィールド |
| z | .z |
Z 軸の値として使うフィールド |
| nx | .nx |
法線 X 成分のフィールド |
| ny | .ny |
法線 Y 成分のフィールド |
| nz | .nz |
法線 Z 成分のフィールド |
| r | .r |
赤 (R) 成分のフィールド |
| g | .g |
緑 (G) 成分のフィールド |
| b | .b |
青 (B) 成分のフィールド |
| a | .a |
アルファ (A) 成分のフィールド |
Color Fields .colorfields 🎨
カラー属性へ割り当てるフィールドの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| x | .x |
X 軸の値として使うフィールド |
| y | .y |
Y 軸の値として使うフィールド |
| z | .z |
Z 軸の値として使うフィールド |
| nx | .nx |
法線 X 成分のフィールド |
| ny | .ny |
法線 Y 成分のフィールド |
| nz | .nz |
法線 Z 成分のフィールド |
| r | .r |
赤 (R) 成分のフィールド |
| g | .g |
緑 (G) 成分のフィールド |
| b | .b |
青 (B) 成分のフィールド |
| a | .a |
アルファ (A) 成分のフィールド |
追加属性の定義 .attr ➕
Attribute (追加属性) — 任意フィールドから追加属性を作成する連続パラメータブロックの先頭。位置・法線・色以外のカスタム属性をファイルから取込みたいときに使用します。
Attribute Name .attr0name 🏷️Attribute Name (属性名) — 作成する属性の名前
Array .attr0isarray 🔢Array (配列) — 属性を配列として扱う (例: float3 が 5 個ならサイズ 5 の配列)
Array Size .attr0arraysize 📐Array Size (配列サイズ) — 配列内の要素数
Fields .attr0fields 🧩
追加属性の作成に使うファイル内フィールドの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| x | .x |
X 軸の値として使うフィールド |
| y | .y |
Y 軸の値として使うフィールド |
| z | .z |
Z 軸の値として使うフィールド |
| nx | .nx |
法線 X 成分のフィールド |
| ny | .ny |
法線 Y 成分のフィールド |
| nz | .nz |
法線 Z 成分のフィールド |
| r | .r |
赤 (R) 成分のフィールド |
| g | .g |
緑 (G) 成分のフィールド |
| b | .b |
青 (B) 成分のフィールド |
| a | .a |
アルファ (A) 成分のフィールド |
Qualifier .attr0qualifier 🏷️
追加属性が汎用か、色・方向などの特別な意味を持つかの指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
汎用属性 (特別な意味を持たない) |
| Color | .color |
カラーとして扱う属性 |
| Direction | .dir |
方向ベクトルとして扱う属性 |
Input Color Space .inputcolorspace 🌈
ファイルに含まれる色データをどの色空間として解釈するかの選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Automatic | .automatic |
ファイル側に色空間情報があればそれを使用、無ければデフォルトとして解釈 |
| sRGB | .srgb |
標準 sRGB ガンマ (一般的な PC ディスプレイ・写真の基準色空間) |
| sRGB – Linear | .srgblinear |
リニア化された sRGB (シェーダ計算向きの線形空間) |
| Rec.601 (NTSC) | .rec601ntsc |
NTSC SD ビデオ用色空間 |
| Rec.709 | .rec709 |
HD ビデオ用色空間 (Blu-ray / 1080p 配信の標準) |
| Rec.2020 | .rec2020 |
UHD / 4K HDR ビデオ用色空間 (wide-gamut) |
| Rec.2020 ST2084PQ | .rec2020st2084pq |
Rec.2020 + ST 2084 (PQ) を用いた HDR10 系色空間 |
| Rec.2020 HLG | .rec2020hlg |
Rec.2020 + Hybrid Log-Gamma の放送向け HDR 色空間 |
| DCI-P3 | .dcip3 |
デジタルシネマ用色空間 |
| DCI-P3 (D60) | .dcip3d60 |
D60 白色点の DCI-P3 |
| Display P3 (D65) | .displayp3d65 |
Apple Display P3 (D65 白色点) |
| Display P3 (D65) – Linear | .displayp3d65linear |
Display P3 の線形化版 |
| ACES2065-1 | .aces2065-1 |
ACES 標準 (AP0 プライマリ) の wide-gamut マスター色空間 |
| ACEScg | .acescg |
ACES CG 用 (AP1 プライマリ) の作業色空間 |
| ACESproxy | .acesproxy |
現場プレビュー向けの ACES プロキシ色空間 |
| Passthrough | .passthrough |
色空間変換を行わず、ファイルの値をそのまま使用 |
Input Reference White .inputreferencewhite ⚪
入力色データの基準白色点 (Reference White) の扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Default For Color Space | .default |
選択した色空間のデフォルト基準白を使用 |
| Standard (SDR) | .sdr |
SDR (標準ダイナミックレンジ) 基準白 |
| High (HDR) | .hdr |
HDR (ハイダイナミックレンジ) 基準白 |
| UI | .ui |
UI 設定値を使用 |
Thin Page 📏
点の間引き 🪡
Thin (間引き) — 読込んだポイントを間引いて出力点数を減らすページ。大規模点群を軽量化したいときに使用します。
Thin Out Range .thinoutrange 🎚️Thin Out Range (範囲で間引き) — インデックスに基づくポイントの絞り込みを有効化
Thin Range Start .thinrangestart ▶️Thin Range Start (範囲開始) — 範囲指定での絞り込みを開始するインデックス
Thin Range Length .thinrangelength 📐Thin Range Length (範囲の長さ) — インデックス範囲で絞り込むポイント数
Thin Step .thinstep 🪜Thin Step (間引き間隔) — N 個ごとに 1 点を残して間引く
Thin Random .thinrandom 🎲Thin Random (ランダム間引き) — ランダムに間引くポイントの割合を指定
Thin Random Seed .thinrandomseed 🌱Thin Random Seed (乱数シード) — ランダム間引きの乱数シードを設定 (同じシードなら同じ間引き結果)
ReRange Page 🔁
Scope .rerange0scope 🎯
再レンジ (値の再マッピング) を行う対象属性の選択。ReRange はファイルから作成した属性値を入力レンジから出力レンジへ線形変換します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
位置属性 (Position) |
| P.i01 | .P.i01 |
位置属性の特定成分 |
| Color | .Color |
カラー属性 |
| Color.rgb | .Color.rgb |
カラー属性の RGB 成分 |
| N | .N |
法線属性 (Normal) |
Parameter Size .rerange0parsize 🔢
独立して設定できるパラメータ値の数
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
1 成分 (全成分共通の設定) |
| 2 | .2 |
2 成分を独立指定 |
| 3 | .3 |
3 成分を独立指定 (XYZ / RGB 等) |
| 4 | .4 |
4 成分を独立指定 (RGBA 等) |
再レンジの範囲設定 📊
Map from Low .rerange0fromlow ⬇️Map from Low (入力レンジの下限) — 変換元レンジの最小値
Map from High .rerange0fromhigh ⬆️Map from High (入力レンジの上限) — 変換元レンジの最大値
Map to Low .rerange0tolow 🔽Map to Low (出力レンジの下限) — 変換後レンジの最小値
Map to High .rerange0tohigh 🔼Map to High (出力レンジの上限) — 変換後レンジの最大値
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模点群で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
Parameter Color Space .parmcolorspace 🎨
色パラメータの色空間を解釈・Working Color Space に変換する方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| sRGB | .srgb |
標準 sRGB ガンマ |
| sRGB – Linear | .srgblinear |
リニア化された sRGB |
| Rec.601 (NTSC) | .rec601ntsc |
NTSC SD ビデオ用色空間 |
| Rec.709 | .rec709 |
HD ビデオ用色空間 |
| Rec.2020 | .rec2020 |
UHD / 4K HDR ビデオ用色空間 |
| DCI-P3 | .dcip3 |
デジタルシネマ用色空間 |
| DCI-P3 (D60) | .dcip3d60 |
D60 白色点の DCI-P3 |
| Display-P3 (D65) | .displayp3d65 |
Apple Display P3 (D65 白色点) |
| ACES2065-1 | .aces2065-1 |
ACES 標準 (AP0 プライマリ) |
| ACEScg | .acescg |
ACES CG 用 (AP1 プライマリ) |
| Passthrough | .passthrough |
色空間変換せず値をそのまま使用 |
Parameter Reference White .parmreferencewhite ⚪
色パラメータの基準白色点 (Reference White) の扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Default For Color Space | .default |
選択した色空間のデフォルト基準白を使用 |
| Standard (SDR) | .sdr |
SDR (標準ダイナミックレンジ) 基準白 |
| High (HDR) | .hdr |
HDR (ハイダイナミックレンジ) 基準白 |
| UI | .ui |
UI 設定値を使用 |
実践アイデア 💡
Example 1: 点群ファイル読込 📈
Point File In POP (点群ファイル) → Math POP → Null POP
外部ツールやスクリプトで書き出した点群ファイルを取込み、各列を位置 (X / Y / Z) 属性へ割り当てて描画する基本フロー。Position Fields でファイル内のどの列を座標に使うかを指定するだけで、ポイントが下流へ流れる。
Fileパラメータに点群ファイルのフルパスを指定Position Fieldsで座標に使う列 (x / y / z) を割り当てCreate Point Primitivesをオンにして描画可能なポイントを生成- 下流の Math POP で位置をスケーリング・オフセット
- Null POP を終端に置いて参照点を固定
Example 2: 大規模点群の間引き 🪡
Point File In POP (Thin: ランダム間引き) → Transform POP → Null POP
数十万〜数百万点規模のポイントクラウドを、Thin 機能でランダムまたは N 個ごとに間引いて軽量化し、編集中のプレビューを高速化する例。本番出力時のみ間引きを解除すれば、編集効率と最終品質を両立できる。
Fileに大規模点群ファイルのパスを指定- Thin Page の
Thin Randomで残す割合を下げて点数を削減 - 再現性が必要なら
Thin Random Seedを固定 - Transform POP で位置・スケールを調整しながらプレビュー
- 本番出力時は Thin を無効化して全点を描画
Example 3: 属性値の再レンジ 🎨
Point File In POP (ReRange: Scope=Color) → Math POP → Null POP
ファイル内の値が想定レンジ (例: 0〜255) で入っている場合に、ReRange 機能で 0〜1 のレンジへ線形変換してから色属性として扱う例。Map from Low/High と Map to Low/High を設定するだけで属性値を扱いやすい範囲に整える。
Fileに色情報を含む点群ファイルのパスを指定Color Fieldsで色に使う列 (r / g / b) を割り当て- ReRange Page の
Scopeを Color に設定 Map from Low/Highに元レンジ (例: 0 / 255)、Map to Low/Highに出力レンジ (例: 0 / 1) を指定- 下流の Math POP でさらに補正してから描画
関連オペレータ 🔗
類似機能OP 🔍
- File In POP — OBJ / FBX 等のジオメトリファイル取込 POP。メッシュ系は File In、列ベースの点群ファイルは Point File In と使い分け
- Alembic In POP — Alembic (.abc) 専用のファイル取込 POP。アニメーション・キャッシュ系は Alembic In
組み合わせ推奨OP 🔄
- Math POP — 取込んだ位置・色などの属性値を正規化・スケーリング・オフセット
- Transform POP — 取込点群の位置・回転・スケールを下流で調整
- Attribute POP — 取込属性のリネーム・削除・スキーマ整形
前処理・後処理POP 🎯
Info POP情報 📊
Point File In 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: ファイルから取込んだ出力ポイント数 (Thin で間引いた後の数)num_point_attribs: 出力 POP の point 属性数 (位置 P / 法線 N / カラー Cd 等の合計)num_vertex_attribs: 出力 POP の vertex 属性数num_prim_attribs: 出力 POP の primitive 属性数num_prims: 出力プリミティブ数 (ポイントプリミティブを生成した場合の数)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ポイントが表示されない / 座標が原点に集中する
✅ Solution:
Position Fieldsでファイル内の正しい列 (x / y / z) が割り当てられているか確認Create Point Primitivesをオンにして描画可能なポイントを生成- 値が極端に小さい / 大きい場合は後処理の Math POP でスケーリング
❌ Problem: 色が想定と違う / 彩度が出すぎ・くすみすぎ
✅ Solution:
Color Fieldsで色に使う列 (r / g / b) が正しくマッピングされているか確認- 値が 0〜255 など 0〜1 以外のレンジなら ReRange Page で 0〜1 へ再レンジ
Input Color Spaceが Automatic で誤判定されていないか確認し、ファイルの色空間と一致するモードを明示指定- 色変換を一切したくない場合は
Input Color Space= Passthrough で値をそのまま渡す
❌ Problem: 点数が多すぎてクックが重い
✅ Solution:
- Thin Page の
Thin StepやThin Randomで点を間引いて軽量化 - Common Page の
Delete Input Attributesで下流に渡す属性を最小限に絞る - 編集中のみ間引き、本番出力時に解除する運用で編集効率と品質を両立
❌ Problem: ファイルを上書きしても変更が反映されない
✅ Solution:
Reloadをパルスしてファイル内容を再インポートFileパスが正しいか、書出された新ファイルが同一パスに存在するか確認- 外部から自動再読込したい場合は Python の
op('pointfilein1').par.reload.pulse()を保存トリガーに紐づける
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Point File In POP
- Attribute – TouchDesigner 属性概念ページ
- File In POP – メッシュ系ファイル取込で使い分ける関連 OP
- Math POP – 取込属性の下流調整に組合せる関連 OP

