
概要 📖 – 形状に沿って点をばらまく
Sprinkle SOPは、入力ジオメトリの表面または内部にランダムな点群を生成する SOPです。Method で表面散布と体積散布を切り替え、Seed を変えると点位置が完全に変わります。生成した点群は Copy SOP や Particle SOP の配置元として利用できます。
主な用途 🎯
- 形状の表面にランダムな点群を生成(Method を Surface にして面積比で均等散布)
- 形状の内部にランダムな点群を充填(Method を Volume / Approximate Volume にして体積内に散布)
- インスタンス配置やコピー元となる点群の生成(Copy SOP / Particle SOP の散布元として利用)
- 点同士の最小間隔を保った間引き(Consolidate と Distance to Nearest Point で密集を解消)
- Seed 変更による再現可能なランダム配置(同じ Seed なら毎回同じ点位置を再生成)
データフロー 🔄
入力: 散布対象のジオメトリ SOP
↓
Method で散布領域 (表面 / 体積) を選択し Number of Points で点数を決定
↓
Consolidate で最小間隔の間引きを適用
↓
出力: ランダムに配置された点群 SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Sprinkle Page 📁
乱数シード 🎲
Seed .seed 🎲
– Seed (乱数シード) — 乱数生成の起点となる数値で、整数・小数のどちらも指定できます
– 同じ値を設定すれば毎回同じ点配置を再現し、値を変えると点位置が完全に変わります
散布領域の選択 .method 🗺️
Method (散布領域) — 点をどこに配置するかを選ぶメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Surface | .surface |
表面全体に均等散布。面積が小さいポリゴンほど割り当てられる点数が平均的に少なくなる |
| Bounding Box | .boundingbox |
ジオメトリのバウンディングボックス (外接直方体) の内部に散布。体積方式より高速だが精度は低い |
| Approximate Volume | .approxvol |
体積の近似領域内に均等散布。表面付近は割り当てられる点数が少なくなる場合がある |
| Volume | .volume |
体積全体に均等散布。内部まで正確に充填する代わりに処理コストは高い |
点数と間引き 🔢
Number of Points .numpoints 🔢
– Number of Points (生成点数) — 散布する点の総数を指定します
– 点数を増やすと密度が上がり、後段の Copy / Particle で扱う要素数も増えます
Consolidate .consolidate 🧹
– Consolidate (間引き) — 点同士が一定距離より近い場合に余分な点を削除します
– 下記の Distance to Nearest Point で最小間隔を指定して密集を解消します
Distance to Nearest Point .neardist 📏
– Distance to Nearest Point (最小間隔) — Consolidate を使う際に保持する点同士の最小距離です
– 値を大きくするほど点がまばらになり、小さくすると密に残ります
実践アイデア 💡
Example 1: 表面に点を散布して複製 🌱
Sphere SOP → Sprinkle SOP (Method=Surface, Number of Points=500) → Copy SOP (input2 にコピー元) → Geometry COMP
球の表面に Sprinkle SOP で 500 点をランダム散布し、各点を配置元として Copy SOP で小さなジオメトリを複製する基本パターン。芝生・群衆・装飾オブジェクトの散布配置に向きます。
- Sphere SOP を配置し、散布対象となる球を作成
- Sprinkle SOP を後段に接続し
MethodをSurfaceに設定 Number of Pointsを 500 等に設定して散布密度を決める- Copy SOP の input1 に Sprinkle の点群、input2 に複製したいジオメトリを接続
- Geometry COMP に接続して各点へインスタンスが配置された結果を確認
Example 2: 体積内に点を充填 🧊
Box SOP → Sprinkle SOP (Method=Volume, Number of Points=2000) → Particle SOP → Geometry COMP
Box SOP の体積内に Sprinkle SOP で点群を充填し、それを Particle SOP の発生源として煙や霧のようなボリューム表現に使う構成。Method を Volume にすると内部まで均等に点が満たされます。
- Box SOP を配置して散布対象の体積を用意
- Sprinkle SOP の
MethodをVolumeに設定して内部充填に切り替え Number of Pointsを 2000 等に増やして体積内の点密度を確保- Particle SOP を後段に接続し、Sprinkle の点群をパーティクルの初期位置として使用
Example 3: 間引きで点の密集を均一化 🧹
Grid SOP → Sprinkle SOP (Method=Surface, Consolidate=ON, Distance to Nearest Point=0.05) → Geometry COMP
平面格子に点を散布したあと Consolidate をオンにして近すぎる点を削除し、点同士の間隔を一定以上に保つ間引きパターン。点群が局所的に密集するのを防いで見た目を均一に整えます。
- Grid SOP を配置して散布対象の平面を用意
- Sprinkle SOP を接続し
MethodをSurfaceに設定 Consolidateをオンにして近接点の削除を有効化Distance to Nearest Pointを 0.05 等に設定し、保持する最小間隔を指定
関連オペレータ 🔗
類似機能OP 🔍
- Particle SOP — 点群をパーティクルとして時間発展させる (Sprinkle は静的な点配置)
- Point SOP — 既存の点に属性・位置の編集を加える (生成ではなく加工)
組み合わせ推奨OP 🔄
- Copy SOP — Sprinkle の各点を配置元にジオメトリを複製・インスタンス化
- Particle SOP — 散布した点群をパーティクルの発生源として利用
- Transform SOP — 散布前のジオメトリや散布後の点群に移動・回転・スケールを適用
- Sort SOP — 散布された点の順序を並べ替えて後段の処理を安定化
前処理・後処理SOP 🎯
Info CHOP情報 📊
Sprinkle SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 点が表面ではなく内部に散らばってしまう
✅ Solution:
MethodがVolume/Approximate Volume/Bounding Boxになっていないか確認 — 表面散布したいときはSurfaceを選択- Bounding Box はジオメトリの外接直方体内に散布するため、形状に沿わせたい場合は使わない
- 入力ジオメトリが閉じた面を持っているか確認 (体積散布は閉じた形状を前提とする)
❌ Problem: 点数を増やしても密度が均一にならない
✅ Solution:
Number of Pointsを増やしたうえでConsolidateをオンにし、近接点を間引いて間隔を揃えるDistance to Nearest Pointで保持する最小間隔を指定し、局所的な密集を解消- 後段に Add SOP 等を置いて点の扱いを整理する運用も可
❌ Problem: Seed を変えても点の配置が変わらない
✅ Solution:
Seedの値が実際に更新されているか確認 (式やエクスポートで固定値に上書きされていないか)- 同じ
Seedでは同じ点配置が再現される仕様のため、別の配置が欲しいときは値を変更する - 上流ジオメトリ自体が変化していないかも確認 (散布結果は入力形状にも依存する)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Sprinkle SOP
- TouchDesigner公式ドキュメント – Copy SOP
- TouchDesigner公式ドキュメント – Particle SOP

