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

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

Point Generator POP の点群生成を示す図

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

概要 📖 – 形状の上に点を撒く

Point Generator POPは、球・箱・トーラスなどの基本形状の表面または内部に、指定数の点をランダムまたは規則的に生成する POPです。Shape で球・箱・トーラス・チューブ・矩形・円・線の基本形状を選び、Distribution で表面に撒くか内部 (ボリューム) を満たすかを切り替えます。Random トグルをオフにすると再現性のある規則的な分布になり、ポリゴン面の上に点を撒きたい場合は Sprinkle POP を使います。

主な用途 🎯

  • 球・箱・トーラスなど基本形状の表面への点群生成
  • 閉じた形状の内部 (ボリューム) を満たす点群の生成
  • パーティクル系の初期発生点ソースの作成
  • インスタンス配置用の分布ポイントの準備
  • 規則的またはランダムなサンプリングポイントの作成

データフロー 🔄

入力: (なし、または bounds 参考用の POP)

Point Generator POP(Shape で基本形状を選び、Distribution で表面か内部かを決定、Number of Points で点数を指定)

出力: 指定数の点を持つ POP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Point Generator Page 📋

Shape .shape 🔷

点を生成する基準となる基本形状を選ぶメニュー

項目 内部名 説明
Sphere .sphere 球面 / 球内部に点を生成
Box .box 直方体の表面 / 内部に点を生成
Torus .torus ドーナツ状トーラスの表面 / 内部に点を生成
Tube .tube 円筒 (チューブ) の表面 / 内部に点を生成
Rectangle .rectangle 矩形 (平面) の上に点を生成
Circle .circle 円 (平面) の上に点を生成
Line .line 線分に沿って点を生成

Distribution .distribution 📊

点を形状の表面に撒くか、内部 (ボリューム) を満たすかを決めるメニュー

項目 内部名 説明
Volume .volume 形状の内部 (体積) を満たすように点を生成 (閉じた形状向け)
Surface .surface 形状の表面に沿って点を生成

Orientation .orient 🧭

生成する点群の向き (基準平面・軸) を決めるメニュー

項目 内部名 説明
Default .default デフォルトの向き
XY Plane (Z axis) .xy XY 平面を基準 (Z 軸が法線方向)
YZ Plane (X axis) .yz YZ 平面を基準 (X 軸が法線方向)
ZX Plane (Y axis) .zx ZX 平面を基準 (Y 軸が法線方向)

Normal .normal 🧬

法線属性を生成するかと、生成する場合の属性クラスを選ぶメニュー

項目 内部名 説明
None .none 法線属性を生成しない
Point .pointNormals point クラスの法線属性を生成
Vertex .vertNormals vertex クラスの法線属性を生成
Primitive .primNormals primitive クラスの法線属性を生成

Normal Direction .normaldirection ➡️

生成する法線の向きの決め方を選ぶメニュー

項目 内部名 説明
Default .default 形状に応じた既定の法線方向
Random .random 法線の向きをランダムに決定

Tangent .dotangent 📐

接線 (tangent) 属性の生成モードを選ぶメニュー

項目 内部名 説明
Off .off 接線属性を生成しない
Default .default 形状に応じた既定の接線方向で生成
Random to Normal .randomtonormal 法線に直交する範囲でランダムな接線を生成
Random .random 接線の向きをランダムに決定

点数とランダム化 🎲

Create Point Primitives .createpointprim
Create Point Primitives (点プリミティブの生成) — 各点を独立した point プリミティブとして作成するトグル
– 点をプリミティブとして扱いたい場合にオンにする

Number of Points .numpoints 🔢
Number of Points (点数) — 生成する点の総数を指定
– 値を増やすほど分布が密になる

Random .random 🔀
Random (ランダム分布) — 表面・内部のランダム分布を有効化するトグル
– オフにすると規則的でパターン化された (予測可能な) 分布になる

Seed .seed 🌱
Seed (乱数シード) — ランダム化を初期化する数値
– 同じ Seed なら同じ分布が再生されるため、再現性のあるバリエーションを作れる

寸法と位置 📏

Size .size 📐
Size (3D サイズ) — 生成形状の XYZ 方向の大きさ
– 内部名 sizex / sizey / sizez の 3 成分で指定

Radius .radius
Radius (半径) — 球・円・トーラス・チューブ等の半径
– 内部名 radiusx / radiusy / radiusz の 3 成分で指定

Height .height 📊
Height (高さ) — チューブ (tube) 形状の高さ

Point A .pointa 🅰️
Point A (始点) — 線 (line) 形状の始点座標
– 内部名 pointax / pointay / pointaz の 3 成分で指定

Point B .pointb 🅱️
Point B (終点) — 線 (line) 形状の終点座標
– 内部名 pointbx / pointby / pointbz の 3 成分で指定


Transform Page 🧮

Transform Order .xord 🔁

平行移動・回転・スケールを適用する全体の順序を選ぶメニュー

項目 内部名 説明
Scale Rotate Translate .srt スケール → 回転 → 平行移動 の順
Scale Translate Rotate .str スケール → 平行移動 → 回転 の順
Rotate Scale Translate .rst 回転 → スケール → 平行移動 の順
Rotate Translate Scale .rts 回転 → 平行移動 → スケール の順
Translate Scale Rotate .tsr 平行移動 → スケール → 回転 の順
Translate Rotate Scale .trs 平行移動 → 回転 → スケール の順

Rotate Order .rord 🔃

全体の変換順序の中で X・Y・Z 各回転を適用する順序を選ぶメニュー

項目 内部名 説明
Rx Ry Rz .xyz X → Y → Z 軸回転の順
Rx Rz Ry .xzy X → Z → Y 軸回転の順
Ry Rx Rz .yxz Y → X → Z 軸回転の順
Ry Rz Rx .yzx Y → Z → X 軸回転の順
Rz Rx Ry .zxy Z → X → Y 軸回転の順
Rz Ry Rx .zyx Z → Y → X 軸回転の順

移動・回転・スケール 📦

Translate .t ➡️
Translate (平行移動) — 生成した点群を XYZ 軸方向に平行移動
– 内部名 tx / ty / tz の 3 成分

Rotate .r 🔄
Rotate (回転) — 各点を XYZ 軸まわりに回転 (角度は度数法)
– 内部名 rx / ry / rz の 3 成分

Scale .s 🔍
Scale (スケール) — 元形状を XYZ 各軸方向に拡大縮小
– 内部名 sx / sy / sz の 3 成分

Pivot .p 📍
Pivot (基準点) — 回転・スケールの基準となるピボット位置
– 内部名 px / py / pz の 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: 球内部のパーティクル発生点 ✨

Point Generator POP (Shape=Sphere, Distribution=Volume) → Particle POP (発生点ソース) → Render TOP

Shape を Sphere、Distribution を Volume に設定して球の内部を満たすランダム点群を作り、それを Particle POP の発生点ソースとして接続する基本フロー。Number of Points で密度を、Seed で分布パターンを変えられるため、球状の空間にパーティクルを湧き出させたい演出で頻用される。

  1. Point Generator POP の Shape を Sphere に設定
  2. Distribution を Volume にして球の内部を満たす
  3. Number of PointsRadius で密度と大きさを調整
  4. Particle POP の発生点入力に Point Generator POP を接続
  5. Render TOP に渡して可視化

Example 2: 表面に沿った配置 🎯

Point Generator POP (Shape=Torus, Distribution=Surface) → Copy POP (インスタンス配置)

Distribution を Surface に設定するとトーラスの表面に点が散布される。各点の位置と法線を Copy POP のインスタンス配置に利用すると、ドーナツ状の面に沿って小さなジオメトリを敷き詰める表現が作れる。Normal を Point に設定しておくと、各インスタンスを面の法線方向に向けて整列させられる。

  1. Point Generator POP の Shape を Torus に設定
  2. Distribution を Surface にして表面に点を撒く
  3. Normal を Point にして各点に法線属性を付与
  4. Copy POP のテンプレート入力に配置したいジオメトリ、発生点入力に Point Generator POP を接続
  5. 後段 Render TOP で陰影付けして描画

Example 3: 再現性のある規則分布 🔢

Point Generator POP (Random=Off, Shape=Box) → Transform POP → Render TOP

Random トグルをオフにすると、予測可能でパターン化された規則的な点分布が得られる。テストパターンや均一なサンプリングが必要な場面で、毎回同じ配置を再現したいときに使う。Seed を固定したうえで Transform Page の Translate / Rotate / Scale を使えば、規則性を保ったまま全体の配置だけを調整できる。

  1. Point Generator POP の Shape を Box に設定
  2. Random をオフにして規則的な分布に切り替え
  3. Number of PointsSize で点数とサイズを設定
  4. Transform Page の Translate / Rotate / Scale で全体配置を調整
  5. 後段 Transform POP / Render TOP で位置調整と描画

関連オペレータ 🔗

類似機能OP 🔍

  • Sprinkle POP — ポリゴン面の上に点を撒く (Point Generator は数学形状ベース)
  • Sphere POP — 球面ジオメトリを生成 (面ベースの球生成)
  • Box POP — 直方体ジオメトリを生成 (面ベースの箱生成)
  • Torus POP — トーラスジオメトリを生成 (面ベースのトーラス生成)
  • Grid POP — 規則的な格子点群を生成 (平面・立体グリッド)

組み合わせ推奨OP 🔄

  • Particle POP — 生成点を発生点ソースにして時間発展するパーティクル系を作る
  • Copy POP — 各点をテンプレートにして別ジオメトリをインスタンス配置
  • Transform POP — 生成した点群を後段で平行移動・回転・スケール
  • Noise POP — 各点に Perlin / Simplex 等のノイズで変位を加える
  • Attribute POP — Color / カスタム属性を点ごとに付与してから後段に渡す
  • Force Radial POP — 生成点に放射状の力を加えて分布を動的に変形

前処理・後処理POP 🎯


Info POP情報 📊

Point Generator 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: 生成された出力ポイント数 (Number of Points で指定した値に対応)
  • num_point_attribs: 出力 POP の point 属性数 (Normal / Tangent の有無で増減)
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_prims: 生成プリミティブ数 (Create Point Primitives の設定により決定)

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 点が表面ではなく内部に出てしまう / 逆になる
✅ Solution:

  • Distribution が Surface / Volume のどちらになっているか確認 (表面に撒きたいなら Surface)
  • Volume を選ぶ場合、Shape が閉じた形状 (球・箱・トーラス等) になっているか確認
  • 矩形・円・線など開いた形状では Volume が意味を持たないため Surface 系を選択

❌ Problem: 点の分布が毎回ばらついて固定できない
✅ Solution:

  • Random をオフにして規則的でパターン化された分布に切り替える
  • ランダム分布のまま再現性が欲しい場合は Seed を固定値にする
  • 後段で分布を整えたい場合は Noise POP 等で制御する

❌ Problem: 意図した大きさ・形にならない
✅ Solution:

  • 球・円・トーラスは Radius、箱・矩形は Size が効くため、形状に対応するパラメータを操作しているか確認
  • チューブは Height、線は Point A / Point B の座標で形が決まる
  • Orientation の基準平面 (XY / YZ / ZX) が想定どおりか確認

❌ Problem: 点数を増やすとパフォーマンスが落ちる
✅ Solution:

  • Number of Points が過大になっていないか確認し、必要十分な点数に抑える
  • Common Page の Delete Input Attributes で下流に不要な属性を残さず、必要なものだけ通す
  • Common Page の Free Extra GPU Memory パルスで未使用 VRAM を返却

参考資料 📚

その他 🔗

公式リソース 📖

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