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

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

Plane POP の平面点群生成を示す図

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

概要 📖 – 平面の点群を生成する

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

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 を調整するだけで画面に対する表示サイズと位置を簡単に決められるため、テクスチャやシェーダ出力の確認用ディスプレイ面として頻用される。

  1. Plane POP の Orientation を XY plane に設定
  2. Connectivity を Quadrilaterals にして四辺形の面を生成
  3. Size (sizeu / sizev) と Anchor U/V で表示サイズと原点位置を調整
  4. Texture Coordinates を生成して UV を付与
  5. Texture Map POP に渡して画像を貼り、Render TOP でマテリアル付きに表示

Example 2: パーティクル発生面の作成 ✨

Plane POP (Connectivity=None) → Particle POP (発生点ソース) → Render TOP

Plane POP の Connectivity を None に設定して平面上の点群だけを出力し、それを Particle POP の発生面ソースとして接続するフロー。Columns / Rows を変えるだけで発生点の密度と分布を均一に変えられるため、面状にパーティクルを湧き出させたい場面で使われる。Orientation で発生面の向きも切り替えられる。

  1. Plane POP の Orientation で発生面の向きを選択
  2. Columns / Rows を発生点の密度に合わせて設定
  3. Connectivity = None でプリミティブを生成せず、点だけを出力
  4. Particle POP の発生点入力に Plane POP を接続
  5. Render TOP に渡して可視化

Example 3: うねり面メッシュの基盤生成 🌊

Plane POP (Connectivity=Triangles) → Noise POP (P 変位) → Render TOP

Connectivity を Triangles または Alternating Triangles に設定すると、平面三角形メッシュの基盤が得られる。後段で Noise POP / Math POP により位置属性 P を変位させると、水面や地形のようなうねり面の表現に発展させやすい。Alternating Triangles を使うと三角形の対角線方向が交互に切り替わり、変位時の偏りを軽減できる。

  1. Plane POP の Connectivity = Triangles (または Alternating Triangles)
  2. Columns / Rows でメッシュ解像度を設定
  3. Normal / Texture Coordinates を生成して法線・UV を用意
  4. 下流の Noise POP で P 属性に変位を加える
  5. Render TOP で陰影付けして出力

関連オペレータ 🔗

類似機能OP 🔍

  • Grid POP — 行・列・スライス数で格子点群を生成 (Plane に Z 軸分割を加えた立体版に相当)
  • Rectangle POP — 矩形の輪郭ジオメトリを生成 (面ではなく枠線ベース)
  • Box POP — 立方体形状のポイントジオメトリを生成 (6 面ベース)
  • Line POP — 1 次元のライン点列を生成 (Plane の 1 軸限定版に相当)
  • Circle POP — 円・円盤状の点群を生成 (放射状サンプリングベース)

組み合わせ推奨OP 🔄

  • Transform POP — 生成した平面を後段で平行移動・回転・スケールするための定番後処理
  • Math POPP 等の属性を算術変換して平面を歪ませる・正規化する
  • 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 属性を誤って破棄していないか確認

参考資料 📚

その他 🔗

公式リソース 📖

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