
概要 📖 – POP の入力口になる
In POPは、POP サブネットの入力点として、外部 POP データを subnet 内部に公開する中継 POPです。baseCOMP / Container COMP でカスタム POP subnet を構築するときに、外部 POP を内部へ取り込むために配置するノードです。Out POP と対になり subnet の I/O 構造を成立させ、複数の In POP を並べることで multi-input な POP subnet も組めます。
主な用途 🎯
- カスタム POP subnet (baseCOMP / Container COMP) に外部 POP を公開する入力点
- Out POP と対になる接続点として subnet の I/O 構造を明示化
- 再利用可能な POP ロジックをカプセル化したカスタム POP subnet の構築
- マルチ入力 POP subnet で複数の入力ピンを定義する基本ブロック
- Connect Order での順序制御により親 COMP 側の接続ピンの並び順を整理
データフロー 🔄
入力: 外部 POP (Box / Sphere / File In 等)
↓
baseCOMP の入力ピン
↓
In POP (subnet 内)
↓
subnet 内の他 POP (Transform / GLSL / Merge 等)
↓
出力: 通常 Out POP を経て subnet 外へ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
In Page 📥
Label .label 🏷️
Component 入力ピンに表示されるロールオーバーラベル:
- Label:
label(ラベル) — この Component 入力ピンにカーソルがロールオーバーした際にポップアップ表示される識別ラベル。subnet 利用者がどのピンに何を接続すべきかを把握するためのヒントとして使用します。
Connect Order .connectorder 🔢
親 COMP の入力ピン並び順を決める接続順:
- Connect Order:
connectorder(接続順) — subnet 内に配置されたすべての In POP のconnectorder値が比較され、親 COMP の入力ピンの並び順が決定されます。値が小さいほど左側 (若い番号) のピンに割り当てられます。
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) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: サブネット入口として配置 📥
外部 POP (Box / Sphere / File In) → baseCOMP の入力ピン → In POP (subnet 内) → subnet 内の他 POP → Out POP → subnet 外へ
再利用可能な POP 処理 (ジオメトリ変形や属性編集のチェーン) をカプセル化したカスタム POP subnet を構築するとき、subnet 外部から入ってきた POP データを内部に公開するための入口として In POP を配置します。Out POP と対になり subnet の I/O 構造を成立させる、最も基本的な使い方です。
- baseCOMP または Container COMP を作成しダブルクリックで内部へ入る
- subnet 内部に In POP を配置 (作成すると親 COMP の外側に入力ピンが追加される)
- subnet 内部の他 POP (Transform POP / GLSL POP 等) の入力に In POP を接続して、外部データを下流処理へ繋ぐ
- subnet 内部に Out POP を配置し、subnet の最終出力 POP を接続
- subnet 外側で baseCOMP の入力ピンに外部 POP (Box POP / Sphere POP / File In POP 等) を接続
Example 2: 複数入力サブネット合成 🔀
外部 POP A (ベースジオメトリ) / 外部 POP B (差分ジオメトリ) → baseCOMP の入力ピン 1, 2 → In POP 1, 2 (subnet 内) → Merge POP / GLSL POP → Out POP
subnet 内で複数のジオメトリストリームを切替・合成したい場合、入力ピンの数だけ In POP を並べることで、subnet 外部からの POP 入力を複数受け取れます。各 In POP は Label で識別し、Connect Order で親 COMP 側のピン並び順を制御します。
- subnet 内部に In POP 1 を配置し
Labelに「base」、Connect Orderに0を入力 - もう一つ In POP 2 を配置し
Labelを「overlay」、Connect Orderを1に設定 - subnet 外側の baseCOMP に 2 つの入力ピンが現れ、Connect Order の昇順で並ぶ
- subnet 内部の Merge POP または GLSL POP で両 In POP を入力として参照し合成ロジックを実装
- subnet 内部に Out POP を配置して結果を出力、外部から異なる POP を 2 ピンに接続することで挙動を切替
Example 3: 再利用可能な変形サブネット ♻️
外部入力 POP → baseCOMP 入力ピン → In POP → Transform POP / Twist POP / Noise POP → Out POP → 別のシーンで再利用
頻繁に使う変形チェーン (例: スケール調整 → ねじり → ノイズ揺らぎ) をカスタム subnet にまとめておくと、シーンを跨いで再利用できます。subnet の入口を In POP に、出口を Out POP に固定しておくことで、外部から異なる POP データを差し替えるだけで同じ変形ロジックを使い回せます。
- baseCOMP を作成し内部に In POP + 変形系 POP (Transform POP / Twist POP / Noise POP) + Out POP をチェーンで配置
- subnet 名を分かりやすい名前 (例:
fx_warp) に変更し、外部から接続可能な入力ピンを 1 つだけ持つ subnet として完成 - 別の TouchDesigner プロジェクトで baseCOMP をコピー&ペーストし、入力ピンに異なる POP を接続するだけで同じ変形が適用される
- subnet 内部の Transform POP / Noise POP のパラメータを Custom Parameter として親 baseCOMP に公開すれば、subnet 外側から振る舞いを調整可能
関連オペレータ 🔗
類似機能OP 🔍
- Out POP — subnet の出力点。In POP と対になり subnet の I/O 構造を成立させる
- Alembic In POP — Alembic ファイルから POP データを読み込む別経路の入力 OP
- File In POP — ファイルから POP データを読み込む入力 OP
組み合わせ推奨OP 🔄
- Out POP — In POP と対の出力点として subnet の I/O を構成、必須の組み合わせ
- Base COMP — In POP を内包するカスタム POP subnet のコンテナ
- Container COMP — UI を伴う subnet を作る際の代替コンテナ
- Geometry COMP — subnet 化された POP データを最終的にレンダリングする受け先
- Merge POP — 複数の In POP を 1 ストリームに統合する subnet 内合流点
前処理・後処理POP 🎯
- 前処理: Box POP、Sphere POP、Grid POP、File In POP、Alembic In POP
- 後処理: Out POP、Transform POP、GLSL POP、Merge POP、Cache POP
Info POP情報 📊
In 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: In POP を通過したポイント数 (= 外部から接続された POP のポイント数)num_point_attribs: 通過する POP の point 属性数 (P/N/Cd等)num_vertex_attribs: 通過する POP の vertex 属性数 (主にuv等のテクスチャ座標)num_prim_attribs: 通過する POP の primitive 属性数 (面ごとの属性)num_prims: 通過するプリミティブ数 (面数)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: In POP を配置しても subnet の外側に入力ピンが現れない
✅ Solution:
- In POP は baseCOMP / Container COMP の内部に配置されている必要があり、Root (
/) や Geometry COMP の内部に置いても入力ピンは生成されない - ピンの順序は subnet 内の
Connect Order値の昇順で決まるため、複数の In POP がある場合はそれぞれのconnectorder値を確認する - 親 COMP のネットワーク表示上で実際にピンが追加されているかを目視確認し、追加されていなければ subnet 内の In POP を一旦削除して再配置
❌ Problem: 外部から接続した POP が subnet 内部で参照できない / 何も表示されない
✅ Solution:
- subnet 内の他 POP で In POP を入力に接続したか確認 (パラメータ参照ではなく、ノードの接続線で繋ぐ)
- 外部の POP 出力が実際にデータを生成しているか、外部側で単体テストする (Out POP をビューに直接表示して確認)
- baseCOMP の入力ピン側で接続が外れていないか、親ネットワークで該当ピンへの接続線を再確認
❌ Problem: 複数の In POP がある subnet でピンの並び順が意図通りにならない
✅ Solution:
- 各 In POP の
Connect Order値を確認し、左から並べたい順に0, 1, 2, ...と昇順で割り振る Labelパラメータで各ピンに識別名 (「base」「overlay」等) を付けておくと、subnet 利用者がカーソルロールオーバー時にどのピンか判別しやすい- Connect Order 値が同じ In POP が複数あると並び順が不定になるため、必ず一意な値を割り当てる
❌ Problem: subnet 内部で属性が一部消えている / 想定外の属性が出力されている
✅ Solution:
- Common Page の
Delete Input Attributesパターンが意図せず設定されていないか確認 (空欄ならすべての属性を維持) - 前段の外部 POP 側で属性が削減されている可能性もあるため、外部 POP を単体で Info CHOP 接続して属性一覧を確認
- subnet 内の下流 POP (Attribute Convert POP / Delete POP 等) が属性を変換・削除していないかチェーンを上から順に確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

