
概要 📖 – CHOP チャンネルをポイント属性に変換
CHOP to POPは、入力 CHOP のチャンネル値をサンプル単位でポイント属性に展開し、指定したプリミティブ種別で接続したジオメトリを出力する POPです。CHOP の各サンプルが POP の 1 ポイントに対応し、Channel Scope と Attribute Scope の組合せでチャンネル → 属性のマッピングを定義します。
主な用途 🎯
- CHOP チャンネルの値をポイント属性 (P / N / Cd 等) として POP ジオメトリに展開
- サンプル数を Connectivity (Line Strip / Lines / Point Primitives) で接続トポロジ化
- Channel Scope パターンと Attribute Scope で対象 CHOP チャンネルから属性へのマッピングを定義
- Sequential New Attribute ブロックで任意のカスタム属性 (名前・型・成分数・初期値) を作成
- Specify Position + Start/End Position でサンプルを 3D 空間の位置範囲にマッピング
データフロー 🔄
入力: CHOP (複数チャンネル × 複数サンプル)
↓
Connectivity でプリミティブ種別選択 (None / Point Primitives / Line Strip / Lines)
↓
Channels Selection + Attribute Scope で属性マッピング
↓
出力: ポイント属性を持つ POP ジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
CHOP to Page 📋
CHOP 参照 🔌
CHOP .chop 🎯
– POP 属性に変換する入力 CHOP のパスを指定
– 同一ネットワーク内の CHOP を相対パス / 絶対パスのどちらでも指定可能
Connectivity .surftype 🧵
出力ポイントを接続するプリミティブ種別を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
プリミティブを生成せず、ポイントのみを出力 |
| Point Primitives | .points |
各ポイントを単独のポイントプリミティブとして出力 |
| Line Strip | .linestrip |
全ポイントを 1 本の連続ラインで接続したストリッププリミティブを生成 |
| Lines | .lines |
隣接するポイント同士を独立した線分プリミティブとして出力 |
Override Number of Points .overridenumpoints 🔢
Override Number of Points .overridenumpoints 🔢
– オンにすると CHOP のサンプル数ではなく、明示指定したポイント数で出力を生成
– CHOP サンプル数と異なる粒度の POP を作りたいときに使用
Number of Points .numpoints 📐
– Override Number of Points がオンのときに有効、出力ポイント数を指定する整数値
– CHOP サンプル数と異なる場合は Interpolate と組み合わせて再サンプリング挙動を制御
Interpolate .interpolate ↔️
Interpolate .interpolate ↔️
– オンのとき CHOP サンプル間を補間して属性値を生成 (POP が CHOP サンプル数と異なるポイント数のとき有効)
– オフのときは最近傍サンプルの値をそのまま使用
Position Mapping .specifypos 📏
Specify Position .specifypos 📍
– オンにするとサンプルをポイント位置範囲にマッピングする機能を有効化
– 一定範囲の直線・曲線上にサンプルを並べたい場合に使用
Start Position .startpos 🟢
– サンプル列を配置する開始位置 (startposx / startposy / startposz) を指定
– 最初のサンプルがこの位置に配置される
End Position .endpos 🔴
– サンプル列を配置する終了位置 (endposx / endposy / endposz) を指定
– 最後のサンプルがこの位置に配置される
Closed .closed 🔁
– オンにすると最後の頂点が最初の頂点に接続され、閉じたループ状のプリミティブになる
– 円・多角形等の閉じた形状を CHOP サンプルから生成したい場合に使用
Channels Selection .chanssel 🔤
CHOP チャンネルをどのように属性へ自動変換するかの命名規則メニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Specify Channels | .spec |
Channel Scope と Attribute Scope で対象チャンネルと出力属性を明示的に指定 |
| Autoconvert Precise Names with Type Suffix | .precisenamessuffix |
厳密な命名規則 (型サフィックス付き) でチャンネル名から属性名・型を自動推定して変換 |
| Autoconvert Precise Names | .precisenames |
厳密な命名規則 (型サフィックス無し) でチャンネル名から属性名を自動推定して変換 |
Channel Scope .chanscope 🎯
Channel Scope .chanscope 🎯
– 属性に変換する対象 CHOP チャンネル名のパターンを指定 (例: tx ty tz)
– * ワイルドカードや空白区切りで複数チャンネルを指定可能
Attribute Scope .attrscope 📛
Channel Scope に対応して生成する出力属性のリストを定義するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
ポイント位置属性 P (vec3) を生成 |
| P(0) | .P(0) |
P 属性の x 成分のみを生成 |
| P(1) | .P(1) |
P 属性の y 成分のみを生成 |
| P(2) | .P(2) |
P 属性の z 成分のみを生成 |
| Color | .Color |
頂点カラー属性 Color (vec4) を生成 |
| Color(0) | .Color(0) |
Color 属性の R 成分のみを生成 |
| Color(1) | .Color(1) |
Color 属性の G 成分のみを生成 |
| Color(2) | .Color(2) |
Color 属性の B 成分のみを生成 |
| Color(3) | .Color(3) |
Color 属性の A 成分のみを生成 |
| N | .N |
法線属性 N (vec3) を生成 |
| N(0) | .N(0) |
N 属性の x 成分のみを生成 |
| N(1) | .N(1) |
N 属性の y 成分のみを生成 |
| N(2) | .N(2) |
N 属性の z 成分のみを生成 |
| Tex | .Tex |
テクスチャ座標属性 Tex (vec3) を生成 |
| Tex(0) | .Tex(0) |
Tex 属性の u 成分のみを生成 |
| Tex(1) | .Tex(1) |
Tex 属性の v 成分のみを生成 |
| Tex(2) | .Tex(2) |
Tex 属性の w 成分のみを生成 |
New Attribute Block (Sequential) .attrs 🆕
Attributes .attrs 🔢
– 作成する新規属性ブロックの個数を指定するシーケンシャルブロック数
– 各ブロックは attr0*, attr1*, … と連番でパラメータが生成される
Channel Scope (per block) .attr0chanscope 🎯
– 各ブロックで属性に変換する CHOP チャンネル名パターン
– 上の Channel Scope と同様のワイルドカード / 空白区切りが使用可能
New Attribute Name .attr0name 📛
– 各ブロックで生成する属性名を予定義属性 (P / N / Cd / Tex 等) から選ぶか Custom を指定するメニュー
– Custom 選択時は Custom Name で任意の属性名を指定
Custom Name .attr0customname ✏️
– New Attribute Name が Custom のときに有効、カスタム属性名を入力
– 既存属性名と衝突しないユニーク名を推奨
Attribute Type .attr0type 🏷️
– 作成する属性のデータ型を選択するメニュー (float / int / vector 等)
– 下流オペレータでの解釈に合わせて選択
Components .attr0numcomps 🧮
– 属性ベクトルの成分数 (1=スカラ, 3=vec3, 4=vec4 等) を指定
– Channel Scope で指定したチャンネル数とこの値が整合している必要あり
Default Value .attr0defaultval 🧷
– CHOP に対応サンプルが無いときに使用される既定値 (defaultval0 / 1 / 2 / 3 で各成分を指定)
– 属性が計算できなかったポイントに割り当てられるフォールバック値
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: オーディオ波形を線分ジオメトリ化 🎵
Audio Device In CHOP → Math CHOP (正規化) → CHOP to POP (Connectivity=linestrip) → Render TOP
オーディオ入力 CHOP のサンプル波形を Math CHOP で -1..1 に正規化し、CHOP to POP で Line Strip プリミティブとして展開してリアルタイム波形ビジュアライザを構築する基本フロー。
- Audio Device In CHOP でマイク入力を取得
- Math CHOP で振幅を
-1..1に正規化 - CHOP to POP の CHOP パラメータで Math CHOP を参照
- Connectivity を
linestripに設定して連続ライン化 - Channel Scope =
chan1, Attribute Scope =P(1)で y 成分にマッピング - 下流 Render TOP で波形を表示
Example 2: CHOP サンプル位置を 3D 空間にマッピング 📏
Constant CHOP → CHOP to POP (Specify Position=on, Start/End Position 設定) → Geometry COMP
Constant CHOP の N サンプルを CHOP to POP の Specify Position で Start Position から End Position の 3D 直線範囲に均等配置し、後段の Geometry COMP でポイントジオメトリとしてレンダリングする位置サンプリング用途。
- Constant CHOP で 1 チャンネル × 任意サンプル数を用意
- CHOP to POP の Specify Position をオン
- Start Position を
(-5, 0, 0), End Position を(5, 0, 0)に設定 - Connectivity を
pointsまたはlinestripに設定 - 下流 Geometry COMP で点群として表示・他 POP で変形
Example 3: Color チャンネルを Cd 属性に変換 🎨
Pattern CHOP (RGBA) → CHOP to POP (Channels Selection=spec, Attribute Scope=Color) → Render TOP
Pattern CHOP で生成した RGBA 波形を CHOP to POP の Specify Channels モードで Channel Scope に r g b a を指定し、Attribute Scope に Color を選んでポイントカラー属性 Cd として展開、後段の Render TOP でカラーアニメーションを実現する用途。
- Pattern CHOP で 4 チャンネル (r/g/b/a) の波形を生成
- CHOP to POP の Channels Selection を
specに設定 - Channel Scope を
r g b aに指定 - Attribute Scope のメニューから
Colorを選択 - Connectivity を
pointsに設定してポイント群として出力 - 下流 Render TOP で Color 属性をシェーダ入力として参照
関連オペレータ 🔗
類似機能OP 🔍
- POP to CHOP — CHOP to POP の逆方向、POP 属性を CHOP チャンネルに取り出す
- SOP to (Family: CHOP) — SOP ジオメトリのポイント属性を CHOP チャンネル化する converter (CHOP to POP の SOP 版逆方向に相当)
組み合わせ推奨OP 🔄
- Math POP — CHOP to POP で展開した属性を後段で正規化・スケーリング
- Attribute POP — 生成した属性のリネーム・型変換・削除など属性スキーマ操作
- Transform POP — Position マッピングしたポイント群を平行移動・回転・スケール
前処理・後処理POP 🎯
- 前処理: Attribute POP
- 後処理: Transform POP、Math POP
Info POP情報 📊
CHOP to POP は Info CHOP 経由でジオメトリの統計情報を取得できます。
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: エラー数
POP 汎用情報 (Info CHOP 経由) 📊
num_points: 出力ジオメトリのポイント数num_point_attribs: 出力ジオメトリのポイント属性数num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 出力ポイント数が想定と異なる
✅ Solution:
- Override Number of Points がオンになっていないか確認 (オンの場合は Number of Points 値が優先される)
- 入力 CHOP のサンプル数が意図通りか Info CHOP で確認
- Override Number of Points がオフの場合、出力ポイント数 = CHOP サンプル数
❌ Problem: 属性が生成されない / 下流で読めない
✅ Solution:
- Channels Selection が
specモードのとき Channel Scope パターンが対象チャンネル名にマッチしているか確認 - Attribute Scope が空でないか、対象属性 (P / Color / N / Tex 等) が選択されているか確認
- Common Page の Delete Input Attributes パターンで出力属性が破棄されていないか確認
❌ Problem: Line Strip / Lines が描画されない
✅ Solution:
- Connectivity が
noneではなくlinestripまたはlinesになっているか確認 - 下流に Render TOP が接続されているか、ラインレンダリング設定が有効か確認
- Closed がオンの場合は最終ポイントと最初のポイントが接続されるため意図と異なる形状になることがある
❌ Problem: Specify Position 設定が反映されない
✅ Solution:
- Specify Position トグルがオンになっているか確認
- Start Position と End Position が同一座標になっていないか確認 (同一だと全ポイントが 1 点に重なる)
- Attribute Scope に
Pが含まれている場合、Channel Scope 由来の値が Position 設定を上書きしている可能性を確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – CHOP to POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- POP to CHOP (逆方向変換)

