
概要 📖 – 形状に質感を割り当てる
Material SOPは、入力ジオメトリに材質 (MAT) を割り当て、レンダリング時の見た目を決定するジオメトリを出力する SOPです。割り当てるマテリアルは MAT をパラメータにドラッグ&ドロップするか、対象 MAT へのパスを入力して指定します。
主な用途 🎯
- ジオメトリへの材質割り当て (MAT をドラッグ&ドロップして見た目を指定)
- 1 つの形状全体に同じマテリアルを一括適用するシンプルな質感設定
- レンダリング前段での質感確定 (Geometry COMP に渡す前にマテリアルを焼き込み)
- 複数パーツの質感を分けるためのマテリアル切り替え中継点
- SOP 単位でのマテリアル管理 (COMP の Material 設定とは別経路で質感を持たせる)
データフロー 🔄
入力: ジオメトリ SOP (形状データ)
↓
処理: 指定した MAT をプリミティブに関連付け (Material パラメータ)
↓
出力: マテリアル情報を保持したジオメトリ SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 🎨
材質の指定 🖌️
Material .mat 🎨
– Material (割り当てる材質) — このジオメトリに適用する MAT を指定します。
– MAT をこのパラメータにドラッグ&ドロップするか、対象 MAT へのパスを直接入力して指定します。
– 指定した質感がレンダリング時の表面の見た目 (色・反射・透明感など) を決めます。
実践アイデア 💡
Example 1: 形状に質感を付けて描画 🎨
Box SOP → Material SOP (PBR MAT を指定) → Geometry COMP → Render TOP
Box SOP などで作った形状に Material SOP でマテリアルを割り当て、Geometry COMP 経由でレンダリングする基本フロー。Material パラメータに用意した MAT へのパスを入れるだけで、形状全体に同じ質感が乗ります。
- Box SOP などで対象となるジオメトリを用意
- Material SOP を後段に接続し、Material パラメータに使いたい MAT をドラッグ&ドロップ
- Geometry COMP の SOP として参照させる
- Render TOP でレンダリングし、指定した質感が反映されているか確認
Example 2: パーツごとに質感を分ける 🧩
各パーツ SOP → Material SOP (個別 MAT) → Merge SOP → Geometry COMP → Render TOP
1 つのモデルを構成する複数パーツに対し、それぞれ別の Material SOP で異なる MAT を割り当ててから合成するフロー。金属部分とガラス部分など、表面の質感を分けて表現したいときに使います。
- パーツごとにジオメトリ SOP を分けて用意
- 各パーツの後段に Material SOP を置き、それぞれ別の MAT を指定
- Merge SOP で全パーツを 1 つのジオメトリに合成
- Geometry COMP / Render TOP でレンダリングしてパーツごとの質感を確認
関連オペレータ 🔗
類似機能OP 🔍
- Texture SOP — ジオメトリに UV テクスチャ座標を割り当てる (質感の貼り付け面を制御)
組み合わせ推奨OP 🔄
- Geometry COMP — マテリアルを付けたジオメトリをレンダリングパイプラインに投入するコンテナ
- Render TOP — Geometry COMP を 3D レンダリングして TOP に出力
- Merge SOP — 別々に質感を付けた複数パーツを 1 つのジオメトリに合成
- Texture SOP — Material SOP の前段で UV を整え、テクスチャの貼り付けを安定させる
前処理・後処理SOP 🎯
Info CHOP情報 📊
Material 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:
- Material パラメータに指定した MAT のパスが正しいか確認
- 後段の Geometry COMP 側の Material 設定でこの SOP のマテリアルが上書きされていないかを確認
- Render TOP / カメラ / ライトが正しくセットアップされているかも併せて確認
❌ Problem: テクスチャが意図した位置に貼られない
✅ Solution:
- 前段に Texture SOP を入れて UV 座標を整える
- MAT 側で参照しているテクスチャマップと UV の対応が合っているかを確認
- 形状によっては Attribute Create SOP で UV 属性を持たせてから割り当てる
❌ Problem: 複数パーツで質感が混ざる / 全部同じ質感になる
✅ Solution:
- パーツごとに別々の Material SOP を分けて配置し、それぞれ別の MAT を指定
- 合成は質感を付けた後で Merge SOP を使う
- 後段の Geometry COMP の Material 設定がパーツ全体を上書きしていないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

