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

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

Select MAT がネットワーク内の別の場所にある MAT をパス参照で取得して下流に提供する図

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

概要 📖 – 他のマテリアルを参照する

Select MATは、ワイヤー接続を使わず、ネットワーク内の別の場所にある MAT をパス文字列で指定して参照する選択中継 MATです。Select MAT は Null MAT と類似した中継ノードですが、Null MAT が上流ワイヤー接続を必要とするのに対し、Select MAT は selectmat パラメータに指定したパス文字列で MAT を取得する点が異なります。これにより、ネットワーク図上の配線を増やさずに別 COMP 内・親階層・templates 配下の MAT を参照でき、動的なマテリアル切替や集中管理レジストリ的な使い方が可能になります。Deform Page と Common Page も独立に保持しており、Select MAT 自身に固有のスキニング設定や描画設定を持たせることもできます。

主な用途 🎯

  • ワイヤー接続なしで遠隔の MAT を参照し、ネットワーク図の配線を増やさずに別 COMP 内の MAT を利用
  • 動的なマテリアル切替として、selectmat パラメータにエクスプレッションを書き状況に応じて参照先 MAT を切替
  • マテリアルレジストリ風の集中管理として、共有 MAT 群を 1 箇所にまとめ Select MAT 群から参照
  • カスタム COMP の外部 MAT 参照として、サブネット内から親階層・別ブランチ・templates 配下の MAT を取得
  • Deform 設定の独立管理として、Select MAT 上で Deform Page をオンにし上流とは独立したスキニング設定を持たせる

データフロー 🔄

参照元: ネットワーク内のいずれかの MAT (Phong / PBR / Constant 等)
↓ (パス参照、ワイヤー無し)
Select MAT が selectmat パスで取得

出力: 下流 MAT または Geometry COMP の Material 参照先

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Select Page 🎯

Select MAT .selectmat 🎯

取得対象 MAT のパスを指定:

  • Select MAT: selectmat 取得対象 MAT のパス。相対パス (例: ../mats/phong1) でも絶対パス (例: /project1/materials/main_mat) でも指定可能。エクスプレッションを記述すれば動的切替も可

Deform Page 🦴

Deform .dodeform 🦴

ボーンによるジオメトリ変形をこのマテリアル上で有効化:

  • Deform トグル: dodeform このマテリアル上でスケルトン変形を有効化

Get Bone Data .deformdata 📍

デフォームボーンデータの取得元

項目 内部名 説明
From SOP .fromsop SOP の capture 属性から取得
From MAT .frommat 別の参照元 MAT (capture 属性を持つ SOP 由来) からデフォームデータを継承

Bone Capture 設定 .bonecapture 🦴

Capture 属性とスケルトンルートの指定:

  • SOP with Capture Data: targetsop pCaptPath / pCaptData 属性を持つ SOP のパスを指定
  • pCaptPath Attrib: pcaptpath 使用する pCaptPath 属性名 (Bone Group SOP 通過後は pCaptPath0 / pCaptPath1 等に分割される)
  • pCaptData Attrib: pcaptdata 使用する pCaptData 属性名 (pCaptPath と対になる)
  • Skeleton Root Path: skelrootpath スケルトンのルート COMP のパス
  • MAT: mat Get Bone DataFrom MAT 時に参照する他 MAT または参照元 MAT (capture 属性を持つ SOP 由来) のパス

Common Page 🔧

Blending .blending 🎨

色のブレンディング (透過合成) に関する設定群

項目 内部名 説明
Add .add ソースとデスティネーションを加算
Subtract .subtract ソースからデスティネーションを減算
Reverse Subtract .revsubtract デスティネーションからソースを減算
Minimum .minimum 両者の最小値を採用
Maximum .maximum 両者の最大値を採用
Blending (Transparency) .blending 透過効果のためのカラーブレンディングを有効化するトグル
Separate Alpha Function .separatealphafunc アルファチャンネルのブレンド設定を RGB と独立させる
Blend Constant Color .blendconstant constantcol 系オプション選択時に使用する RGB 定数カラー
Blend Constant Alpha .blendconstanta constanta 系オプション選択時に使用する定数アルファ値
Legacy Alpha Behavior .legacyalphabehavior 旧バージョンのアルファ処理との後方互換を有効化
Post-Mult Color by Alpha .postmultalpha ブレンド演算完了後に RGB を計算後アルファで乗算

Depth Test .depthtest 📏

デプステスト (Z 比較) によるオクルージョン制御

項目 内部名 説明
Less Than .less 新ピクセルのデプスが既存より小さい (手前) なら描画
Less Than or Equal .lessorequal 新ピクセルが既存以下なら描画
Equal .equal デプスが完全一致時のみ描画
Greater Than .greater 新ピクセルが既存より大きい (奥) なら描画
Greater Than or Equal .greaterorequal 新ピクセルが既存以上なら描画
Not Equal .notequal デプスが一致しない場合のみ描画
Always .always デプス比較を行わず常に描画
Depth Test .depthtest デプスバッファとの比較によるオクルージョンを有効化
Write Depth Values .depthwriting デプステストを通過したピクセルのデプス値をデプスバッファに書き込む

Alpha Test .alphatest 🔍

アルファ値に基づくピクセル単位の破棄判定

項目 内部名 説明
Less Than .less アルファが閾値より小さいピクセルを残す
Less Than or Equal .lessorequal アルファが閾値以下のピクセルを残す
Greater Than .greater アルファが閾値より大きいピクセルを残す
Greater Than or Equal .greaterorequal アルファが閾値以上のピクセルを残す
Discard Pixels Based on Alpha .alphatest ピクセル単位でアルファによる破棄判定を有効化
Alpha Threshold .alphathreshold アルファ比較の閾値。条件外のピクセルは破棄される

Wire Frame .wireframe 🕸️

ジオメトリをワイヤーフレーム表示する設定

項目 内部名 説明
Off .off 通常のソリッド描画 (ワイヤーフレーム無効)
OpenGL Tesselated Wire Frame .tesselated OpenGL が三角形分割した状態でワイヤーを描画
Topology Wire Frame .topology 元のポリゴントポロジ (四角形等) のままワイヤーを描画
Line Width .wirewidth ワイヤーフレームの線の太さ (ピクセル単位)

Cull Face .cullface 🔺

ポリゴンの表裏どちらを描画するか (カリング) の選択

項目 内部名 説明
Use Render Setting .userender Render TOP 側の設定に従う
Neither .neither 両面とも描画 (カリングなし)
Back Faces .backfaces 裏面をカリング、表面のみ描画
Front Faces .frontfaces 表面をカリング、裏面のみ描画
Both Faces .bothfaces 両面をカリング (= 何も描画されない)

Polygon Depth Offset .polygonoffset ↔️

Z-fighting 対策としてポリゴンのデプス値をオフセット

項目 内部名 説明
Polygon Depth Offset .polygonoffset ポリゴンのデプス値オフセット機能を有効化
Offset Factor .polygonoffsetfactor デプス勾配に対するオフセットの乗数
Offset Units .polygonoffsetunits デプス単位の固定オフセット量

Color Space .parmcolorspace 🌈

カラーパラメータの色空間 / 基準白色の解釈

項目 内部名 説明
sRGB .srgb SDR sRGB トランスファ関数 (一般的なディスプレイ標準)
sRGB – Linear .srglinear SDR リニアトランスファ
Rec.601 (NTSC) .rec601ntsc SDR NTSC 規格 (旧テレビ放送)
Rec.709 .rec709 SDR ビデオ規格 (HD テレビ)
Rec.2020 .rec2020 HDR 放送規格 (4K/8K UHD)
DCI-P3 .dcip3 HDR シネマ規格 (D65 ホワイトポイント)
DCI-P3 (D60) .dcip3d60 HDR シネマ規格 (D60 ホワイトポイント)
Display-P3 (D65) .displayp3d65 HDR sRGB ガンマ (Apple ディスプレイ等)
ACES2065-1 .aces2065-1 HDR リニアシネマ規格 (アーカイブ用)
ACEScg .acescg HDR リニアシネマ作業用色空間
Passthrough .passthrough 色空間変換を行わずそのまま渡す

実践アイデア 💡

Example 1: ワイヤー接続なしで遠隔の MAT を参照する (配線レス構成) 🎯

別 COMP 内の Phong MAT (パス: /project1/materials/main_mat) → Select MAT (selectmat = /project1/materials/main_mat) → Geometry COMP の Material 参照先

ネットワーク図の配線を減らしたい / 別 COMP 内のマテリアルを利用したい場合に Select MAT を使います。Geometry COMP は手元の Select MAT を参照するだけでよく、その Select MAT の selectmat パラメータに参照したい MAT の絶対 / 相対パスを書きます。ワイヤー線が引かれないため、ネットワーク図が整理され、別 COMP 内のマテリアルへのアクセスも自然にできます。

  1. 別 COMP (例: /project1/materials) 内に Phong MAT を作成し、共有マテリアルとして使うものを main_mat と命名
  2. シーン側に Select MAT を作成し、selectmat パラメータに /project1/materials/main_mat と入力
  3. Geometry COMPMaterial パラメータに手元の Select MAT のパスを指定
  4. ネットワーク図上にワイヤー接続が引かれず、別 COMP 内の MAT を利用できる状態が完成
  5. 参照先 MAT のパラメータを変更すると Select MAT 経由で即座に Geometry COMP の描画にも反映される

Example 2: エクスプレッションでマテリアルを動的に切替える 🔀

複数の MAT 候補 (mat_red / mat_blue / mat_green) → Select MAT (selectmat = エクスプレッション) → Geometry COMP

Select MAT の selectmat パラメータにエクスプレッションを書くことで、外部条件 (Constant CHOP の値・スイッチ・タイマー等) に応じて参照する MAT を実行時に切替できます。Null MAT 方式 (ワイヤーの繋ぎ換え) では実現できない、パス文字列レベルでの動的選択が可能です。

  1. 用意する色違いマテリアル (例: mat_red / mat_blue / mat_green) を同階層に配置
  2. 切替制御用に Constant CHOP を作成し、チャンネル idx0 / 1 / 2 を入れる
  3. Select MATselectmat パラメータに次のエクスプレッションを入力: ['mat_red','mat_blue','mat_green'][int(op('constant1')['idx'])]
  4. Geometry COMP の Material パラメータに Select MAT のパスを指定
  5. Constant CHOP の idx 値を変更すると、Select MAT が参照する MAT が切替り、ジオメトリの見た目が動的に変化する

Example 3: マテリアルレジストリとして集中管理する 📚

1 箇所のマテリアル集約 COMP (Phong / PBR / Constant 多数) → 各シーン側の Select MAT 群がパス参照 → それぞれの Geometry COMP の Material 指定先

プロジェクト規模が大きくなると、複数のシーンや COMP で同じマテリアルを使い回したくなります。Select MAT を使えば、マテリアル定義を 1 つの「マテリアルレジストリ COMP」に集約し、各シーン側からはパス参照だけで取得できます。マテリアルの中央管理が可能になり、定義変更も 1 箇所で済みます。

  1. プロジェクトルート直下に マテリアルレジストリ COMP (例: /project1/materials) を作成
  2. そこに使いまわす MAT を全て配置 (Phong MAT / PBR MAT / Constant MAT 等を命名付きで整理)
  3. 各シーン (Render TOP 配下の COMP 群) に Select MAT を配置し、selectmat/project1/materials/<material_name> を指定
  4. Geometry COMPMaterial 指定先はすべて手元の Select MAT に統一 (シーン内で完結)
  5. マテリアル定義を変更したいときは /project1/materials/ 内の MAT を 1 箇所更新するだけで全シーンに反映

関連オペレータ 🔗

類似機能OP 🔍

  • Null MAT — ワイヤー接続経由でマテリアルを中継するパススルー MAT。Select MAT が「パス文字列で取得」するのに対し Null MAT は「ワイヤー接続で中継」する点が差別化要素
  • In MAT — カスタム MAT subnet の入力点。subnet 内部から外部 MAT を受取る用途で、Select MAT のような任意パス参照ではなく subnet I/O に限定される
  • Out MAT — カスタム MAT subnet の出力点。In MAT と対になる subnet I/O 専用 MAT

組み合わせ推奨OP 🔄

  • Phong MAT — Select MAT が参照する代表的な標準ライティング MAT
  • PBR MAT — 物理ベースシェーディング MAT。マテリアルレジストリで集中管理する典型的な参照先
  • Constant MAT — ライティング無視の単色 MAT。デバッグや UI 表示用に Select MAT 経由で参照
  • Geometry COMPMaterial パラメータに Select MAT のパスを指定する代表的な下流 COMP
  • Replicator COMP — 複製した Geometry COMP 群が共通の Select MAT を Material 参照することで、複製先全体の見た目を一括制御

前処理・後処理MAT 🎯


Info情報 📊

MAT は Info CHOP / Info DAT に接続することで、シェーダコンパイル状況やクック情報を取得できます。

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からの累計クック回数
  • cook_time: 直近クックに要した時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 現在の警告数 (シェーダコンパイル警告含む)
  • errors: 現在のエラー数 (シェーダコンパイルエラー含む)

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

よくある問題と解決策 🔧

❌ Problem: Select MAT を指定したのに下流ジオメトリにマテリアルが適用されない (真っ黒 / デフォルト表示になる)
✅ Solution:

  • selectmat パラメータに指定したパスが正しいか確認。スペルミス / 大文字小文字 / 相対パスの基準位置を見直し、ノードビューで対象 MAT が存在するか目視で確かめる
  • 参照先の MAT が無効化 / Bypass 状態になっていないか、その MAT 自体が正常にクックしているかを Info CHOP で確認
  • Geometry COMPMaterial パラメータが Select MAT のパスを正しく指しているか、相対パス / 絶対パスのスペルミスを確認

❌ Problem: エクスプレッションでパスを切替えても参照先 MAT が更新されない
✅ Solution:

  • エクスプレッションの結果が文字列として有効な MAT パスを返しているか、selectmat パラメータを右クリック → Show Parameter Value で実際の評価結果を確認
  • エクスプレッション内で参照している CHOP / DAT が正常にクックしているか、依存元のクックタイミングを Info CHOP で確認
  • Geometry COMP / Render TOP のクック順序が問題でキャッシュが古い場合は、シーン全体のクックを強制更新 (Force Cook) する

❌ Problem: Select MAT 上で Deform Page をオンにしてもボーン変形が反映されない
✅ Solution:

  • Select MAT の Deform をオン、Get Bone DataFrom SOP または From MAT に正しく設定し、対応する SOP with Capture Data / MAT パラメータを指定する
  • 参照先の MAT 側でも Deform 設定が必要な場合は、両方の Deform Page を一致させるか、参照経路を Null MAT 中継に変更する構成を検討
  • Skeleton Root Path とジオメトリ側の pCaptPath / pCaptData 属性が整合しているか Bone Group SOP 通過後の属性名 (pCaptPath0 等) も含めて確認

❌ Problem: Select MAT の Common Page (Blending / Depth Test 等) を変更したのに下流の描画に反映されない
✅ Solution:

  • Geometry COMP が Select MAT を Material 直接参照していれば Select MAT の Common Page が使われるが、別の MAT を参照している場合はそちら側の Common Page が優先される
  • Select MAT を「論理的な選択点」として使う場合、Common Page は実際に Material 参照される MAT (= 参照先の描画 MAT) 側で設定するのが正しい運用
  • Common Page の Cull FaceBoth Faces になっていないかも確認 (両面カリング = 何も描画されない)

参考資料 📚

その他 🔗

公式リソース 📖

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