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

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

Out MAT がカスタムマテリアル subnet の出力点として機能する図

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

概要 📖 – マテリアルの出力口になる

Out MATは、カスタムマテリアル subnet の出力点として、subnet 内部の最終 MAT を外部へ公開する中継 MATです。Container COMP や baseCOMP でカスタムマテリアル subnet を構築するときに、内部の最終 MAT を外部へ公開するために配置する出口ノードです。In MAT と対になり subnet の I/O 構造を成し、外部の Geometry COMP からはあたかも単一の MAT のように参照できる形でカスタムロジックをカプセル化します。

主な用途 🎯

  • カスタムマテリアル subnet (baseCOMP / Container COMP) の最終出力 MAT を subnet 外に公開する出力点
  • In MAT と対になる接続点として subnet の I/O 構造を成立させる
  • マテリアルパススルーとして subnet 内部の最終 MAT を外部の Geometry COMP に提供
  • 再利用可能なカスタム MAT subnetのレンダリング結果を一本化して外部へ公開します
  • Deform 連携でボーンキャプチャ情報を subnet 内から外部の MAT へ受け渡す中継点

データフロー 🔄

入力: subnet 内部の MAT (Phong / PBR / Constant / GLSL 等)

Out MAT が subnet 出力ピンに公開

subnet 外の Geometry COMP / 他 MAT が参照

出力: 通常のレンダリングパイプラインへ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Out Page 📤

Label .label 🏷️

Component 出力ピンに表示されるロールオーバーラベル:

  • Label: label この Component 出力にカーソルがロールオーバーした際にポップアップ表示される識別ラベル

Deform Page 🦴

Deform .dodeform 🦴

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

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

Get Bone Data .deformdata 📍

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

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

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 のパス

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: カスタムマテリアル subnet の出力点として配置 📤

subnet 内部の MAT (Phong/PBR/Constant/GLSL) → Out MAT (subnet 内) → baseCOMP の出力ピン → 外部の Geometry COMP / 他 MAT

再利用可能なマテリアル処理をカプセル化したカスタム MAT subnet を構築するとき、subnet 内部で組み立てた最終 MAT を外部へ公開するための出口として Out MAT を配置します。In MAT と対になり subnet の I/O 構造を成立させる、最も基本的な使い方です。

  1. baseCOMP または Container COMP を作成しダブルクリックで内部へ入る
  2. subnet 内部で必要な MAT 群 (Phong MAT / PBR MAT / GLSL MAT 等) を配置し、カスタムロジックを組み立てる
  3. subnet の最終出力となる MAT に Out MAT を接続 (作成すると COMP の外側に出力ピンが追加される)
  4. subnet 内部に In MAT を配置している場合は対の I/O 構造になっていることを確認
  5. subnet 外側で、Geometry COMP の Material パラメータに baseCOMP を割り当てる、または baseCOMP の出力ピンを後段の MAT に接続

Example 2: ボーンキャプチャ元 SOP/MAT のボーン情報を中継 🦴

参照元 MAT (subnet 内) → 内部レンダリング MAT → Out MAT → subnet 外の参照側 MAT が Get Bone Data=From MAT で受取

サブネット化したマテリアルでスキニングアニメーションを扱うとき、subnet 内部で取得したボーンキャプチャ情報を外部の他 MAT に渡したい場合があります。Out MAT は Get Bone DataFrom MAT に設定して subnet 内のデフォームデータを外部へ公開できます。

  1. subnet 内部に capture 属性を持つ SOP / 参照元 MAT を配置し、SOP の capture 属性からボーン情報を取得
  2. subnet 内のレンダリング MAT (Phong / PBR) で Get Bone DataFrom MAT に設定し参照元 MAT を参照
  3. subnet 出力側に Out MAT を配置、Deform をオン、Get Bone DataFrom MAT に設定して内部 MAT を参照
  4. subnet 外側で別の MAT が Out MAT を Get Bone Data = From MAT + MAT パラメータで参照すれば、subnet 内のボーン情報が伝達される

Example 3: 複数出力MAT subnetで分岐 🔀

subnet 内部の MAT A / MAT B (Phong / PBR / GLSL 等) → Out MAT 1, 2 (subnet 内) → baseCOMP の出力ピン 1, 2 → 外部の異なる Geometry COMP がそれぞれ参照

1 つの subnet 内で複数のマテリアルバリエーションを生成し、外部から用途別に選択して使いたい場合、subnet 内に複数の Out MAT を並べることで出力ピンを複数生成できます。各 Out MAT は Label で識別され、ピンの順序は subnet 内の配置順に従います。

  1. subnet 内部にバリエーションごとの MAT (例: ベース塗り / オーバーレイ / ハイライト) を配置
  2. Out MAT 1 を配置し Label パラメータに「base」等の識別名を入力、最初の MAT を接続
  3. もう一つ Out MAT 2 を配置し Label を「overlay」等に設定、二番目の MAT を接続
  4. subnet 外側の baseCOMP に 2 つの出力ピンが現れる (順序は subnet 内の配置順)
  5. 外部の異なる Geometry COMP の Material 入力に各ピンを割り当てれば、用途別マテリアルを 1 subnet から提供できる

関連オペレータ 🔗

類似機能OP 🔍

  • In MAT — subnet の入力点。Out MAT と対になり subnet の I/O 構造を成立させる

組み合わせ推奨OP 🔄

  • In MAT — Out MAT と対の入力点として subnet の I/O を構成、必須の組み合わせ
  • baseCOMP — Out MAT を内包するカスタム MAT subnet のコンテナ
  • Container COMP — UI を伴う subnet を作る際の代替コンテナ
  • Geometry COMP — subnet 化されたカスタム MAT を最終的に Material 指定する先

前処理・後処理MAT 🎯


Info情報 📊

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

汎用オペレータ情報 🔄

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

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

よくある問題と解決策 🔧

❌ Problem: Out MAT を配置しても subnet の外側に出力ピンが現れない
✅ Solution:

  • Out MAT は baseCOMP / Container COMP の内部に配置されている必要がある。Root (/) や Geometry COMP の内部に置いても出力ピンは生成されない
  • ピンの順序は subnet 内の Out MAT の配置順 (左から右、上から下) に従う。意図した順序にならない場合は Out MAT を一旦削除して再配置するか、内部名 (out1 / out2) を確認する
  • 親 COMP の Outputs パラメータ (Component Editor) でピン構成を確認すると、実際に何本の MAT 出力が生成されているか分かる

❌ Problem: 外部の Geometry COMP に subnet を Material 指定しても何も表示されない
✅ Solution:

  • Out MAT に subnet 内の最終 MAT が接続線で繋がっているか確認 (パラメータ参照ではなく、ノードの入力に接続する)
  • subnet 内部の最終 MAT が単体で正常にレンダリングできるか、subnet 外に取り出して Geometry COMP に直接割当てて確認
  • 外部の Geometry COMP の Material パラメータが baseCOMP 自体を指しているか、特定の Out MAT を指しているかを確認 (複数出力時は明示指定が必要)

❌ Problem: Deform データが Out MAT 経由で subnet 外へ伝達されない
✅ Solution:

  • Out MAT 側で Deform をオン、Get Bone DataFrom MAT に設定し、subnet 内の参照元 MAT または同等の MAT を MAT パラメータで参照
  • 外部側で受け取る MAT も Get Bone Data = From MAT にして MAT パラメータに Out MAT のパスを指定
  • subnet 内側の capture 属性を持つ SOP / 参照元 MAT が正しくボーンキャプチャ情報を保持しているか、SOP with Capture Data / pCaptPath Attrib / Skeleton Root Path を確認

❌ Problem: Common Page のブレンディング / デプステスト設定が効いていないように見える
✅ Solution:

  • Out MAT 自体はパススルー的な中継ノードなので、最終的なレンダリングに使われるのは subnet 内の参照元 MAT の Common Page 設定であることが多い
  • subnet 内の参照元 MAT (Phong / PBR / GLSL 等) の Common Page を実際に調整し、その状態が Out MAT を経由して外部に公開されるか確認
  • Out MAT の Common Page で明示的に書き換えた値が優先されるケースもある。意図しない上書きを避けるには、Out MAT の Common Page をデフォルト維持にしておく

参考資料 📚

その他 🔗

公式リソース 📖

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