
概要 📖 – 形状の上に点を撒く
Point Generator POPは、球・箱・トーラスなどの基本形状の表面または内部に、指定数の点をランダムまたは規則的に生成する POPです。Shape で球・箱・トーラス・チューブ・矩形・円・線の基本形状を選び、Distribution で表面に撒くか内部 (ボリューム) を満たすかを切り替えます。Random トグルをオフにすると再現性のある規則的な分布になり、ポリゴン面の上に点を撒きたい場合は Sprinkle POP を使います。
主な用途 🎯
- 球・箱・トーラスなど基本形状の表面への点群生成
- 閉じた形状の内部 (ボリューム) を満たす点群の生成
- パーティクル系の初期発生点ソースの作成
- インスタンス配置用の分布ポイントの準備
- 規則的またはランダムなサンプリングポイントの作成
データフロー 🔄
入力: (なし、または bounds 参考用の POP)
↓
Point Generator POP(Shape で基本形状を選び、Distribution で表面か内部かを決定、Number of Points で点数を指定)
↓
出力: 指定数の点を持つ POP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 で分布パターンを変えられるため、球状の空間にパーティクルを湧き出させたい演出で頻用される。
- Point Generator POP の
Shapeを Sphere に設定 Distributionを Volume にして球の内部を満たすNumber of PointsとRadiusで密度と大きさを調整- Particle POP の発生点入力に Point Generator POP を接続
- Render TOP に渡して可視化
Example 2: 表面に沿った配置 🎯
Point Generator POP (Shape=Torus, Distribution=Surface) → Copy POP (インスタンス配置)
Distribution を Surface に設定するとトーラスの表面に点が散布される。各点の位置と法線を Copy POP のインスタンス配置に利用すると、ドーナツ状の面に沿って小さなジオメトリを敷き詰める表現が作れる。Normal を Point に設定しておくと、各インスタンスを面の法線方向に向けて整列させられる。
- Point Generator POP の
Shapeを Torus に設定 Distributionを Surface にして表面に点を撒くNormalを Point にして各点に法線属性を付与- Copy POP のテンプレート入力に配置したいジオメトリ、発生点入力に Point Generator POP を接続
- 後段 Render TOP で陰影付けして描画
Example 3: 再現性のある規則分布 🔢
Point Generator POP (Random=Off, Shape=Box) → Transform POP → Render TOP
Random トグルをオフにすると、予測可能でパターン化された規則的な点分布が得られる。テストパターンや均一なサンプリングが必要な場面で、毎回同じ配置を再現したいときに使う。Seed を固定したうえで Transform Page の Translate / Rotate / Scale を使えば、規則性を保ったまま全体の配置だけを調整できる。
- Point Generator POP の
Shapeを Box に設定 Randomをオフにして規則的な分布に切り替えNumber of PointsとSizeで点数とサイズを設定- Transform Page の
Translate/Rotate/Scaleで全体配置を調整 - 後段 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 🎯
- 前処理: Sphere POP、Box POP、Convert POP
- 後処理: Transform POP、Noise POP、Attribute POP、Copy POP、Particle 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 を返却
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Point Generator POP
- Sprinkle POP – ポリゴン面に点を撒く類似オペレータ
- Particle POP – 生成点を発生点ソースにする定番後処理

