
概要 📖 – 平面の点群を生成する
Plane POPは、指定した向き・サイズ・分割数で平面状の点群を生成し、線・三角形・四辺形などの接続形状で出力する POPです。Orientation で平面の向き (XY / YZ / ZX) を選び、Connectivity で出力プリミティブの種類 (点・線・三角形・四辺形) を決定します。Anchor U/V・Translate・Rotate・Uniform Scale で配置を細かく制御でき、入力 POP を接続して Modify Bounds をオンにすると入力の範囲に合わせて平面を自動配置することも可能です。
主な用途 🎯
- 規則的な平面状ポイント群の生成
- パーティクル系の発生面・初期配置ソースの作成
- テクスチャやシェーダ検証用の表示クアッド (板ポリ) 生成
- 線・三角形・四辺形など基本プリミティブの平面一括生成
- GLSL POP / Texture Map POP 検証用のテストジオメトリ準備
データフロー 🔄
入力: (任意の bounds 用 POP)
↓
Plane POP(Orientation で向きを決め、Columns × Rows で分割、Connectivity で接続形状を決定)
↓
出力: 点群+指定プリミティブを持つ平面 POP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Plane Page 📋
Connectivity .surftype 🔗
平面上の点をどのプリミティブで接続するかを決めるメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
接続を行わず、点のみを出力 (プリミティブなし) |
| Point Primitives | .points |
各点を独立した Point プリミティブとして出力 |
| Rows | .rows |
行方向に接続したプリミティブを出力 (行数は 2・3・4 など) |
| Columns | .cols |
列方向に接続したプリミティブを出力 |
| Rows and Columns | .rowcol |
行・列の両方向に接続したプリミティブを出力 (網目状) |
| Triangles | .triangles |
平面セルを 2 つの三角形に分割して出力 |
| Alternating Triangles | .alttriangles |
セルごとに三角形の対角線方向を交互に変えて出力 (ジオメトリ偏りの軽減) |
| Quadrilaterals | .quads |
平面セルを 4 頂点の四辺形プリミティブとして出力 |
Line Type .linetype 📈
ラインの出力形式 (ラインストリップか個別ラインか) を指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Lines | .lines |
隣接する 2 点ごとに独立した Line プリミティブとして出力 |
Orientation .orient 🧭
平面をどの座標平面に沿って配置するかを指定するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| XY plane | .xy |
XY 平面 (正面向き) に平面を生成 |
| YZ plane | .yz |
YZ 平面 (側面向き) に平面を生成 |
| ZX plane | .zx |
ZX 平面 (床面向き) に平面を生成 |
入力 bounds と寸法 📐
Modify Bounds .modifybounds 🧭
– Modify Bounds (バウンディング上書き) — 入力 POP が接続されている場合にのみ有効
– オン時は入力 POP のバウンディングボックスを基準として、下記の Size / Translate / Rotate / Scale 等で更に平面の形状を変形させる
Size .size 📏
– Size (2D サイズ) — 生成する平面の U・V 方向の大きさ
– 内部名 sizeu (U 軸方向の長さ) / sizev (V 軸方向の長さ) の 2 成分で指定
平面分割数 🔢
Columns .cols 📊
– Columns (列数) — U 方向に並べる点の列数
– 値を増やすほど横方向の密度が高くなる
Rows .rows 📊
– Rows (行数) — V 方向に並べる点の行数
– Columns と合わせてセル数 (=面・三角形の数) が決まる
アンカー位置 📍
Anchor U .anchoru ↔️
– Anchor U (U 方向アンカー) — 左端・中央・右端のいずれを原点 0 に揃えるかを指定
– 平面を原点基準で配置する際の整列基準として使用
Anchor V .anchorv ↕️
– Anchor V (V 方向アンカー) — 下端・中央・上端のいずれを原点 0 に揃えるかを指定
トランスフォーム 🧮
Translate .t ➡️
– Translate (平行移動) — 生成された点群を XYZ 軸方向に平行移動
– 内部名 tx / ty / tz の 3 成分
Rotate .r 🔄
– Rotate (回転) — 各点を XYZ 軸まわりに回転 (角度は度数法)
– 内部名 rx / ry / rz の 3 成分
Uniform Scale .scale 🔍
– Uniform Scale (一様スケール) — 全軸に均等に作用するスケール係数
– 1.0 が等倍、0.5 で半分、2.0 で 2 倍
出力属性の制御 🎨
Normal .normal 🧭
– Normal (法線属性) — 法線属性を生成するかと、生成する場合の属性クラスを選択
– None を選ぶと法線属性は生成されない
Texture Coordinates .texture 🗺️
– Texture Coordinates (UV 座標属性) — UV テクスチャ座標を生成するかと、生成する場合の属性クラスを選択
– None を選ぶと UV 属性は生成されない
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 uv) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: テクスチャ表示クアッド 🖼️
Plane POP (Connectivity=Quadrilaterals, Orientation=XY) → Texture Map POP → Render TOP
Plane POP の Connectivity を Quadrilaterals、Orientation を XY に設定して 1 枚の板ポリ (クアッド) を生成し、Texture Map POP で UV を割り当てて画像を貼り付ける基本フロー。Size と Anchor U/V を調整するだけで画面に対する表示サイズと位置を簡単に決められるため、テクスチャやシェーダ出力の確認用ディスプレイ面として頻用される。
- Plane POP の
Orientationを XY plane に設定 Connectivityを Quadrilaterals にして四辺形の面を生成Size(sizeu / sizev) とAnchor U/Vで表示サイズと原点位置を調整Texture Coordinatesを生成して UV を付与- Texture Map POP に渡して画像を貼り、Render TOP でマテリアル付きに表示
Example 2: パーティクル発生面の作成 ✨
Plane POP (Connectivity=None) → Particle POP (発生点ソース) → Render TOP
Plane POP の Connectivity を None に設定して平面上の点群だけを出力し、それを Particle POP の発生面ソースとして接続するフロー。Columns / Rows を変えるだけで発生点の密度と分布を均一に変えられるため、面状にパーティクルを湧き出させたい場面で使われる。Orientation で発生面の向きも切り替えられる。
- Plane POP の
Orientationで発生面の向きを選択 Columns/Rowsを発生点の密度に合わせて設定Connectivity= None でプリミティブを生成せず、点だけを出力- Particle POP の発生点入力に Plane POP を接続
- Render TOP に渡して可視化
Example 3: うねり面メッシュの基盤生成 🌊
Plane POP (Connectivity=Triangles) → Noise POP (P 変位) → Render TOP
Connectivity を Triangles または Alternating Triangles に設定すると、平面三角形メッシュの基盤が得られる。後段で Noise POP / Math POP により位置属性 P を変位させると、水面や地形のようなうねり面の表現に発展させやすい。Alternating Triangles を使うと三角形の対角線方向が交互に切り替わり、変位時の偏りを軽減できる。
- Plane POP の
Connectivity= Triangles (または Alternating Triangles) Columns/Rowsでメッシュ解像度を設定Normal/Texture Coordinatesを生成して法線・UV を用意- 下流の Noise POP で
P属性に変位を加える - Render TOP で陰影付けして出力
関連オペレータ 🔗
類似機能OP 🔍
- Grid POP — 行・列・スライス数で格子点群を生成 (Plane に Z 軸分割を加えた立体版に相当)
- Rectangle POP — 矩形の輪郭ジオメトリを生成 (面ではなく枠線ベース)
- Box POP — 立方体形状のポイントジオメトリを生成 (6 面ベース)
- Line POP — 1 次元のライン点列を生成 (Plane の 1 軸限定版に相当)
- Circle POP — 円・円盤状の点群を生成 (放射状サンプリングベース)
組み合わせ推奨OP 🔄
- Transform POP — 生成した平面を後段で平行移動・回転・スケールするための定番後処理
- Math POP —
P等の属性を算術変換して平面を歪ませる・正規化する - Noise POP — 平面上の点に Perlin / Simplex 等のノイズで変位を加える
- Texture Map POP — 平面の UV を使ってテクスチャから属性 (色・変位等) をサンプリング
- Attribute POP — Color / カスタム属性を点ごとに付与してから後段に渡す
- Copy POP — 平面の各点をテンプレートにして別ジオメトリをインスタンス配置
前処理・後処理POP 🎯
Info POP情報 📊
Plane 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: 生成された出力ポイント数 (Columns × Rows に依存)num_point_attribs: 出力 POP の point 属性数 (Normal / Texture Coordinates の有無で増減)num_vertex_attribs: 出力 POP の vertex 属性数num_prim_attribs: 出力 POP の primitive 属性数num_prims: 生成プリミティブ数 (Connectivity の選択により決定)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 面が出力されない / 点しか出てこない
✅ Solution:
Connectivityが None になっていないかを確認 (None は点のみ、面・線が必要なら別オプションを選択)- Triangles / Quadrilaterals を選んでいるのに
RowsまたはColumnsが 1 のままだとセルが作れないため、両方を 2 以上に - 下流の Render TOP がプリミティブを描画する設定 (Wireframe・Surface 等) になっているか確認
❌ Problem: 平面の向きが意図と違う
✅ Solution:
Orientationが XY / YZ / ZX のどれになっているかを確認 (正面表示なら XY plane)Rotateで意図しない回転がかかっていないか確認- 入力 POP を接続している場合、
Modify Boundsがオンだと入力のバウンディングに従って向き・配置が変わる
❌ Problem: 原点位置が意図と違う / 平面が片側に寄る
✅ Solution:
Anchor U/Anchor Vを中央 (middle) に設定して原点中心に揃えるTranslateで意図せずオフセットがかかっていないか確認Size(sizeu / sizev) と Anchor の組み合わせで原点からの広がり方が変わる点に注意
❌ Problem: UV やテクスチャが正しく貼られない
✅ Solution:
Texture Coordinatesが None のままだと UV 属性が生成されないため、属性クラスを point 等に設定- Texture Map POP 等の後段が参照している UV 属性名と、生成した属性名が一致しているか確認
- Common Page の
Delete Input Attributesで UV 属性を誤って破棄していないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Plane POP
- Attribute – TouchDesigner 属性概念ページ
- Grid POP – 行・列・スライスで立体格子点群を生成
- Texture Map POP – 平面 UV からテクスチャをサンプリング

