
概要 📖 – POP の中継・参照点になる
Null POPは、入力された POP データをそのまま出力する、中継・参照点として使う POPです。それ自体は何も加工せず入力をパススルーするだけですが、固定された参照先を用意することで、下流の式参照を上流ノードの差し替えから守り、ネットワークの整理にも役立ちます。
主な用途 🎯
- 固定された参照点として式 (expression) からの POP 参照を安定させる中継ノード
- ネットワークの整理のための見た目を整える中継点として配置
- ブランチの末端に置いて出力の差し替え・接続変更を一箇所に集約
- 処理チェーンの区切りとして下流から参照する固定アドレスを用意
- Bypass による一時無効化で上流処理の効果を切り分けて確認
データフロー 🔄
入力: 任意の POP (Box / Sphere / Transform 等)
↓
Null POP (入力をそのまま中継)
↓
出力: 入力と同一の POP データを下流へ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Null Page 📁
Bypass .bypass 🚫
Null POP の中継を一時的に無効化する設定:
- Bypass:
Bypass(バイパス) — オンにすると Null POP がオフの状態として扱われ、上流からの POP データの流れを断ち切ります。中継点に置いた Null POP を使って、下流に渡すデータを一時的に止めて切り分け確認したいときに使用します。
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) | .rec601 |
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) | .displayp3 |
Apple Display P3 (D65 白色点) |
| ACES2065-1 | .aces2065 |
ACES 標準 (AP0 プライマリ) |
| ACEScg | .acescg |
ACES CG 用 (AP1 プライマリ) |
| Passthrough | .passthrough |
色空間変換せず値をそのまま使用 |
Parameter Reference White .parmreferencewhite ⚪
色パラメータの基準白色点 (Reference White) の扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Default For Color Space | .default |
選択した色空間のデフォルト基準白を使用 |
| Use Parent Panel | .useparent |
親パネルの基準白設定を継承 |
| Standard (SDR) | .sdr |
SDR (標準ダイナミックレンジ) 基準白 |
| High (HDR) | .hdr |
HDR (ハイダイナミックレンジ) 基準白 |
| UI | .ui |
UI 設定値を使用 |
実践アイデア 💡
Example 1: 式参照の固定アドレス 📌
Box POP → Transform POP → Null POP → (下流が op('null1') で参照)
上流の処理チェーンが頻繁に組み替わるネットワークでは、参照先のノード名が変わるたびに式 (expression) が壊れます。チェーンの末端に Null POP を置き、下流からは常にその Null POP を参照するようにしておくと、上流を差し替えても参照が壊れず安定します。
- 整形したい POP チェーン (Box POP → Transform POP 等) の末端に Null POP を接続
- Null POP の名前を分かりやすい固定名 (例:
geo_out) に変更 - 下流の POP や式から
op('geo_out')のように Null POP を参照 - 上流ノードを差し替え・追加しても、Null POP を経由する参照は壊れずに維持される
Example 2: ネットワーク整理の中継点 🧹
複数の上流 POP → Null POP (中継) → 下流の分岐先へ整列
ノードが密集して接続線が交差し見づらくなったネットワークでは、要所に Null POP を挟むことで接続線を整理し、データの流れを目で追いやすくできます。Null POP 自体はデータを変えないため、整理目的で自由に挿入・削除できます。
- 接続線が交差して見づらい箇所の上流出力に Null POP を挿入
- Null POP を経由させて下流へ接続し直し、配線を整列させる
- Null POP はデータを加工しないため、整理が済んだら不要なものは削除してよい
Example 3: ブランチ末端の差し替え口 🔀
処理ブランチ A / B → Null POP (差し替え口) → Geometry COMP でレンダリング
複数の処理ブランチを試作しているとき、最終出力の直前に Null POP を置いておくと、どのブランチを Null POP に繋ぐかを変えるだけで出力を切り替えられます。下流の Geometry COMP 等はずっと Null POP を参照し続けるため、レンダリング側の設定を触らずに試作を回せます。
- 試作中の各処理ブランチ (A / B) を用意
- 最終出力の直前に Null POP を 1 つ配置し、下流の Geometry COMP はこの Null POP を参照
- 比較したいブランチの出力を Null POP の入力に繋ぎ替える
- 下流側の参照は Null POP のまま固定されているので、繋ぎ替えだけで出力が切り替わる
関連オペレータ 🔗
類似機能OP 🔍
- Out POP — POP subnet の出力点。Null は通常の中継、Out は subnet 境界の出力という違い
- Select POP — 離れた場所の POP を参照で取り込む。中継ではなく参照取得が役割
- In POP — POP subnet の入力点。Null と同じくデータを加工しないパススルー系
組み合わせ推奨OP 🔄
- Select POP — Null POP を固定参照先にして、離れた場所から Select POP で取り込む
- Switch POP — 複数ブランチを切替え、その出力を Null POP に集約して下流参照を固定
- Merge POP — 複数 POP を統合した結果を Null POP に通して中継点にまとめる
- Geometry COMP — Null POP を最終参照先として安定的にレンダリングする受け先
前処理・後処理POP 🎯
- 前処理: Transform POP、Merge POP、Switch POP、Noise POP、GLSL POP
- 後処理: Select POP、Out POP、Cache POP、Convert POP
Info POP情報 📊
Null POP は Info CHOP / Info DAT による詳細情報取得に対応しており、中継される POP データの構造を読み取れます。
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: Null POP を通過したポイント数 (= 入力 POP のポイント数と同一)num_point_attribs: 通過する POP の point 属性数 (P/N/Cd等)num_vertex_attribs: 通過する POP の vertex 属性数 (主にuv等のテクスチャ座標)num_prim_attribs: 通過する POP の primitive 属性数 (面ごとの属性)num_prims: 通過するプリミティブ数 (面数)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Null POP を挟んだら出力が止まった
✅ Solution:
- Null POP の
Bypassがオンになっていないか確認 (オンだと上流からの流れが断たれる) - Null POP の入力に上流 POP が実際に接続されているか、ノードの接続線を目視確認
- 上流 POP が単体でデータを生成しているか、上流を直接ビューに表示して切り分ける
❌ Problem: 上流差し替えで式参照が壊れた
✅ Solution:
- 下流の式が直接上流ノードを参照していると、ノード名変更で参照が切れる。末端に Null POP を置き、下流からは Null POP を参照する構成に変える
- Null POP の名前を固定名 (例:
geo_out) にしておき、参照式はop('geo_out')のように Null POP 経由に統一 - 上流の差し替えは Null POP の入力に繋ぎ替えるだけにして、下流の参照式自体は触らない運用にする
❌ Problem: 多用したらネットワークが重い
✅ Solution:
- Null POP 自体はデータを加工しないが中継ノードとして 1 ノード分のコストはかかるため、整理が済んだ不要な Null POP は削除する
- 出力サイズが大きく変動するブランチでは Common Page の
Free Extra GPU Memoryパルスで未使用 VRAM を解放 - 下流に不要な属性まで流れているなら、前段で Info CHOP 接続して属性一覧を確認し、Common Page の
Delete Input Attributesで絞り込む
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

