
概要 📖 – 点群をカメラ向きの板に
Sprite SOPは、CHOP の各サンプル位置に、指定したカメラへ常に正対する四角形を生成する SOPです。3 チャンネルの座標 CHOP を与えると 1 サンプルにつき 1 枚の板ポリゴンが作られ、幅・色・透明度を別の CHOP で点ごとに変えられるため、パーティクルや点群をビルボードとして見せる表現に活用されます。
主な用途 🎯
- CHOP の各サンプル位置にカメラ正対の四角形を生成し、3 チャンネルの座標データを与えるだけで点ごとに 1 枚ずつの板ポリゴンを並べてビルボード表示
- パーティクルや点群のビルボードレンダリングとして、無数の点それぞれにテクスチャを貼れる四角形を立て、煙・火花・光の粒などを面で見せる素材を作成
- 常にカメラへ正対する立て看板状ジオメトリの構築で、カメラがどの角度に動いても板が回り込んで正面を向き続けるため、平面素材を立体空間に置ける
- サンプルごとに幅・色・透明度を個別指定した粒の表現として、幅 CHOP・色 CHOP・アルファ CHOP を併用し、点ごとに大きさや見た目が異なる集合を生成
- 遠近に応じて板の大きさを変える奥行き表現として、遠い点ほど小さく近い点ほど大きく見える遠近幅と、距離によらず一定にする固定幅をブレンドして調整
- データ可視化での点プロットのカード化として、計測値や座標を持つ CHOP を流し込み、各データ点を見やすいテクスチャ付きの板として空間に配置
データフロー 🔄
入力: 3 チャンネル CHOP (各サンプルの X・Y・Z 座標)
↓
サンプルごとにカメラ正対の四角形を中心配置 + 幅 CHOP / 色 CHOP / アルファ CHOP で板ごとの見た目を指定
↓
出力: 点の数だけ並んだ板ポリゴンのジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
位置とカメラ .position_camera 🎯
各板ポリゴンの位置を決める座標 CHOP と、板が正対し続ける対象カメラを指定するパラメータ群
XYZ CHOP .xyzchop 📍
– XYZ CHOP (位置 CHOP) — 板の X・Y・Z 位置を指定する3 チャンネルの CHOP が必須
– 1 サンプルにつき 1 枚の四角形が作られ、各板はそのサンプルが示す座標を中心に配置される
Camera .camera 🎥
– Camera (対象カメラ) — ここで指定した Camera COMP に向かって常に板が正対する
– カメラが動いても各板が回り込んで正面を向き続けるため、平面素材を立体空間でビルボードとして見せられる
見た目の CHOP .appearance_chops 🎨
各板の幅・色・透明度をサンプルごとに別々に指定する CHOP 群。点ごとに大きさや見た目を変えたいときに使う
Width CHOP .widthchop 📏
– Width CHOP (幅 CHOP) — そのサンプルの板の幅を設定する 1 チャンネルの CHOP を指定
– サンプルごとに異なる幅を与えると、点の集合に大小のバラつきを付けられる
Color CHOP .colorchop 🌈
– Color CHOP (色 CHOP) — そのサンプルの板のR・G・B の色値を設定する 3 チャンネルの CHOP を指定
– 点ごとに色を変えたグラデーションやカラフルな粒の表現に使う
Alpha CHOP .alphachop 👻
– Alpha CHOP (アルファ CHOP) — そのサンプルの板の透明度 (アルファ) を設定する 1 チャンネルの CHOP を指定
– 点ごとに濃淡やフェードを付けて、煙や光の粒のような半透明表現を作れる
遠近と固定の幅 .width_blend 🔭
板の幅を遠近で変える設定と、距離によらず一定にする設定をどの割合でブレンドするかを決めるパラメータ群
Perspective Width .perspectivewidth 🔭
– Perspective Width (遠近幅) — 生成される板の幅で、遠い点ほど小さく近い点ほど大きく遠近に応じて見える
– このパラメータは Use Constant Width が 1.0 未満のときにのみ効果がある
Use Constant Width .constantwidth 🎚️
– Use Constant Width (固定幅の使用度) — 遠近幅と固定幅をどの割合で混ぜるかをブレンドする値
– 0 のときは遠近幅 (Perspective Width) のみ、1 のときは下の固定幅パラメータのみで幅が決まる
固定幅の距離設定 .constant_width 📐
固定幅を使うときに、近距離側と遠距離側で適用する幅と、その切り替えが始まる距離・終わる距離を指定するパラメータ群
Constant Width Near .constantwidthnear 🔍
– Constant Width Near (近距離の固定幅) — Falloff Start 以下の近い距離にある板に使われる幅
Constant Width Far .constantwitdhfar 🌄
– Constant Width Far (遠距離の固定幅) — Falloff End 以上の遠い距離にある板に使われる幅
Constant Width Falloff Start .falloffstart 🟢
– Constant Width Falloff Start (固定幅の開始距離) — この距離以下では Constant Width Near の幅がそのまま使われる
Constant Width Falloff End .falloffend 🔴
– Constant Width Falloff End (固定幅の終了距離) — この距離以上では Constant Width Far の幅がそのまま使われる
– 開始距離と終了距離の間では、2 つの値を半コサイン (half-cosine) で滑らかにつないだ幅になる
実践アイデア 💡
Example 1: 点群をビルボード化 🪧
Particle SOP → SOP to → CHOP to SOP (位置 CHOP) → Sprite SOP (Camera 指定) → Material SOP → Render TOP
パーティクルや点群の座標を 3 チャンネル CHOP として Sprite SOP に渡すと、各点の位置にカメラへ正対する四角形が 1 枚ずつ立ち並びます。Camera パラメータにシーンのカメラを指定するだけで、視点が動いても全ての板が正面を向き続けるため、点だけでは見えにくい群れをテクスチャ付きの面として確実に描画できる、もっとも基本的な使い方です。
- Particle SOP などで点群を作り、各点の X・Y・Z 座標を 3 チャンネルの CHOP として用意する
- Sprite SOP の
XYZ CHOPにその位置 CHOP を指定し、点ごとに板を生成させる Cameraにシーンの Camera COMP を指定して、板が常にそのカメラへ正対するようにする- Material SOP で粒のテクスチャを貼り、Geometry COMP / Render TOP に流して描画する
Example 2: 点ごとに色と大きさ 🌈
位置 CHOP + 幅 CHOP + 色 CHOP + アルファ CHOP → Sprite SOP → Material SOP → Render TOP
Sprite SOP は位置だけでなく、幅・色・透明度をそれぞれ別の CHOP で点ごとに指定できます。幅 CHOP で大小のバラつきを、色 CHOP で点ごとの色を、アルファ CHOP で濃淡を与えると、ひと塊の点群が大きさも色も透明度もバラバラな粒の集合になります。データ可視化やパーティクル表現で、ただ並ぶだけでない情報量のあるビジュアルを作るときに頻出するパターンです。
- 位置の 3 チャンネル CHOP に加えて、幅用の 1 チャンネル・色用の 3 チャンネル・アルファ用の 1 チャンネルの CHOP を用意する
- Sprite SOP の
Width CHOP/Color CHOP/Alpha CHOPにそれぞれの CHOP を指定する - 板ごとに幅・色・透明度が変わることを確認し、必要なら CHOP 側の値を調整して見た目を整える
- Material SOP で頂点カラーを反映する設定にし、Render TOP に流して粒の集合を描画する
Example 3: 遠近で大きさを調整 🔭
位置 CHOP → Sprite SOP (Use Constant Width / 遠近幅・固定幅を調整) → Render TOP
Use Constant Width のブレンド値を変えると、板の幅を遠近に応じて変える表現と、距離によらず一定にする表現を混ぜられます。0 に近づけると遠い点ほど小さく見える自然な奥行きが付き、1 に近づけると近距離・遠距離の固定幅と切り替え距離 (Falloff Start / End) を使って、距離ごとに意図した大きさへ整えられます。点群の見え方を奥行きに合わせて細かく制御したいときに使う構築フローです。
- 位置 CHOP を Sprite SOP に接続して点群を板として表示する
Use Constant Widthを0寄りにし、Perspective Widthで遠近に応じた基本の幅を決める- 距離で大きさを揃えたい場合は
Use Constant Widthを上げ、Constant Width Near/Constant Width Farで近距離・遠距離の幅を指定する Constant Width Falloff Start/Constant Width Falloff Endで幅が切り替わる距離の範囲を調整する
関連オペレータ 🔗
類似機能OP 🔍
- Particle SOP — 点群を生成・運動させる (Particle が点を作る、Sprite がその点を板として見せる)
- Copy SOP — 各点に任意ジオメトリを複製配置 (Sprite はカメラ正対の板限定、Copy は任意形状)
- Point SOP — 点の属性 (位置・色・法線) を編集 (点を扱う点で関連)
組み合わせ推奨OP 🔄
- CHOP to SOP — CHOP のサンプルを SOP の点へ変換し、Sprite に渡す位置・色データを用意
- Particle SOP — 前段で運動する点群を生成し、その座標 CHOP を Sprite の入力にする
- Material SOP — 生成した板にテクスチャ・質感を割り当ててビルボードとして描画
- Render TOP — Geometry COMP に組込んだ板をカメラ視点でレンダリングして画として出力
前処理・後処理SOP 🎯
Info CHOP情報 📊
Sprite 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— このオペレータが最後にクックされたフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 板が生成されない・何も表示されない
✅ Solution:
XYZ CHOPに X・Y・Z の 3 チャンネルちょうどを持つ CHOP が指定されているか確認 (チャンネル数が合わないと板が作られない)- 前段で CHOP to SOP 等を使い、位置データが正しい形で渡っているか確認
- 出力を Geometry COMP に接続し Render TOP でレンダリングしているか確認
❌ Problem: 板がカメラの方を向かない
✅ Solution:
Cameraパラメータにシーンで実際に使っている Camera COMP のパスが正しく指定されているか確認- 複数カメラがある場合は、描画に使うカメラと Sprite SOP に指定したカメラが一致しているか確認
❌ Problem: 板の大きさが意図どおりにならない
✅ Solution:
Use Constant Widthの値を確認 (0は遠近幅のみ、1は固定幅のみで効くパラメータが変わる)- 遠近で変えたい場合は
Perspective Widthを、距離で揃えたい場合はConstant Width Near/Constant Width Farを調整 - 幅 CHOP を使っている場合は
Width CHOPの値が大きさを上書きしていないか確認
❌ Problem: 点ごとの色や透明度が反映されない
✅ Solution:
Color CHOPが 3 チャンネル (R・G・B)、Alpha CHOPが 1 チャンネルになっているか確認- 後段の Material SOP や Material が頂点カラー・頂点アルファを反映する設定になっているか確認
- 半透明を見せたい場合はレンダリング側でアルファブレンドが有効になっているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Sprite SOP
- TouchDesigner公式ドキュメント – Particle SOP
- TouchDesigner公式ドキュメント – Render TOP

