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

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

Null POP が POP ネットワークの中継・参照点として機能する図

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

概要 📖 – POP の中継・参照点になる

Null POPは、入力された POP データをそのまま出力する、中継・参照点として使う POPです。それ自体は何も加工せず入力をパススルーするだけですが、固定された参照先を用意することで、下流の式参照を上流ノードの差し替えから守り、ネットワークの整理にも役立ちます。

主な用途 🎯

  • 固定された参照点として式 (expression) からの POP 参照を安定させる中継ノード
  • ネットワークの整理のための見た目を整える中継点として配置
  • ブランチの末端に置いて出力の差し替え・接続変更を一箇所に集約
  • 処理チェーンの区切りとして下流から参照する固定アドレスを用意
  • Bypass による一時無効化で上流処理の効果を切り分けて確認

データフロー 🔄

入力: 任意の POP (Box / Sphere / Transform 等)

Null POP (入力をそのまま中継)

出力: 入力と同一の POP データを下流へ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 を参照するようにしておくと、上流を差し替えても参照が壊れず安定します。

  1. 整形したい POP チェーン (Box POP → Transform POP 等) の末端に Null POP を接続
  2. Null POP の名前を分かりやすい固定名 (例: geo_out) に変更
  3. 下流の POP や式から op('geo_out') のように Null POP を参照
  4. 上流ノードを差し替え・追加しても、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 を参照し続けるため、レンダリング側の設定を触らずに試作を回せます。

  1. 試作中の各処理ブランチ (A / B) を用意
  2. 最終出力の直前に Null POP を 1 つ配置し、下流の Geometry COMP はこの Null POP を参照
  3. 比較したいブランチの出力を Null POP の入力に繋ぎ替える
  4. 下流側の参照は 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 🎯


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 で絞り込む

参考資料 📚

その他 🔗

公式リソース 📖

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