
概要 📖 – マテリアルの出力口になる
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 が参照
↓
出力: 通常のレンダリングパイプラインへ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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:
targetsoppCaptPath/pCaptData属性を持つ SOP のパスを指定 - pCaptPath Attrib:
pcaptpath使用する pCaptPath 属性名 (Bone Group SOP 通過後はpCaptPath0/pCaptPath1等に分割される) - pCaptData Attrib:
pcaptdata使用する pCaptData 属性名 (pCaptPath と対になる) - Skeleton Root Path:
skelrootpathスケルトンのルート COMP のパス - MAT:
matGet Bone DataがFrom 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 構造を成立させる、最も基本的な使い方です。
- baseCOMP または Container COMP を作成しダブルクリックで内部へ入る
- subnet 内部で必要な MAT 群 (Phong MAT / PBR MAT / GLSL MAT 等) を配置し、カスタムロジックを組み立てる
- subnet の最終出力となる MAT に Out MAT を接続 (作成すると COMP の外側に出力ピンが追加される)
- subnet 内部に In MAT を配置している場合は対の I/O 構造になっていることを確認
- 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 Data を From MAT に設定して subnet 内のデフォームデータを外部へ公開できます。
- subnet 内部に capture 属性を持つ SOP / 参照元 MAT を配置し、SOP の capture 属性からボーン情報を取得
- subnet 内のレンダリング MAT (Phong / PBR) で
Get Bone DataをFrom MATに設定し参照元 MAT を参照 - subnet 出力側に Out MAT を配置、
Deformをオン、Get Bone DataをFrom MATに設定して内部 MAT を参照 - 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 内の配置順に従います。
- subnet 内部にバリエーションごとの MAT (例: ベース塗り / オーバーレイ / ハイライト) を配置
- Out MAT 1 を配置し
Labelパラメータに「base」等の識別名を入力、最初の MAT を接続 - もう一つ Out MAT 2 を配置し
Labelを「overlay」等に設定、二番目の MAT を接続 - subnet 外側の baseCOMP に 2 つの出力ピンが現れる (順序は subnet 内の配置順)
- 外部の異なる 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 DataをFrom 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 をデフォルト維持にしておく
参考資料 📚
その他 🔗
- TouchDesigner Wiki — MAT 概要
- TouchDesigner Wiki — Category:MATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

