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

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

Point File In POP による点群ファイル読込の図

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

概要 📖 – 点群ファイルからの属性読込

Point File In POPは、点群ファイルを読込み、各フィールドを位置・法線・色などの属性へマッピングしてポイントとして出力する POPです。ファイル内の各フィールド (列) を位置 (Position) ・法線 (Normal) ・テクスチャ座標 (Texture) ・カラー (Color) などの属性へ割り当てられるため、外部で生成した点群データを TouchDesigner のリアルタイム描画パイプラインへ取込めます。Thin で点を間引いて負荷を抑え、ReRange で属性値を扱いやすいレンジへ変換し、Input Color Space で取込む色データの色空間を正しく解釈できます。

主な用途 🎯

  • 点群ファイル (ポイントクラウド) から座標・属性を読込んでポイントを生成
  • ファイル内の列 (フィールド) を位置・法線・テクスチャ座標・カラー属性へ自由にマッピング
  • 任意フィールドを追加属性として取込み、配列属性 (Array) や Qualifier 指定にも対応
  • Thin 機能による点の間引き (範囲指定・N 個ごと・ランダム) で大規模点群を軽量化
  • ReRange 機能による属性値の再マッピング (入力レンジから出力レンジへの線形変換)

データフロー 🔄

点群ファイル

Point File In POP(読込 + フィールドの属性マッピング + 間引き + 再レンジ)

出力: 属性を持つポイント

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 でファイル内のどの列を座標に使うかを指定するだけで、ポイントが下流へ流れる。

  1. File パラメータに点群ファイルのフルパスを指定
  2. Position Fields で座標に使う列 (x / y / z) を割り当て
  3. Create Point Primitives をオンにして描画可能なポイントを生成
  4. 下流の Math POP で位置をスケーリング・オフセット
  5. Null POP を終端に置いて参照点を固定

Example 2: 大規模点群の間引き 🪡

Point File In POP (Thin: ランダム間引き) → Transform POP → Null POP

数十万〜数百万点規模のポイントクラウドを、Thin 機能でランダムまたは N 個ごとに間引いて軽量化し、編集中のプレビューを高速化する例。本番出力時のみ間引きを解除すれば、編集効率と最終品質を両立できる。

  1. File に大規模点群ファイルのパスを指定
  2. Thin Page の Thin Random で残す割合を下げて点数を削減
  3. 再現性が必要なら Thin Random Seed を固定
  4. Transform POP で位置・スケールを調整しながらプレビュー
  5. 本番出力時は Thin を無効化して全点を描画

Example 3: 属性値の再レンジ 🎨

Point File In POP (ReRange: Scope=Color) → Math POP → Null POP

ファイル内の値が想定レンジ (例: 0〜255) で入っている場合に、ReRange 機能で 0〜1 のレンジへ線形変換してから色属性として扱う例。Map from Low/HighMap to Low/High を設定するだけで属性値を扱いやすい範囲に整える。

  1. File に色情報を含む点群ファイルのパスを指定
  2. Color Fields で色に使う列 (r / g / b) を割り当て
  3. ReRange Page の Scope を Color に設定
  4. Map from Low/High に元レンジ (例: 0 / 255)、Map to Low/High に出力レンジ (例: 0 / 1) を指定
  5. 下流の 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 StepThin Random で点を間引いて軽量化
  • Common Page の Delete Input Attributes で下流に渡す属性を最小限に絞る
  • 編集中のみ間引き、本番出力時に解除する運用で編集効率と品質を両立

❌ Problem: ファイルを上書きしても変更が反映されない
✅ Solution:

  • Reload をパルスしてファイル内容を再インポート
  • File パスが正しいか、書出された新ファイルが同一パスに存在するか確認
  • 外部から自動再読込したい場合は Python の op('pointfilein1').par.reload.pulse() を保存トリガーに紐づける

参考資料 📚

その他 🔗

公式リソース 📖

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