●3Dモデルに適用する質感やテクスチャを設定する為のファイル。
どのテクスチャを貼るか、影色や輪郭色の指定、光が当たった時の処理、透過する度合い等を設定する。
menuファイル内で
マテリアル変更
を記述することで有効になる
・初期のmate編集ツールでは値1〜4が何の事なのかわかりにくいが、最新編集ツールでは改められている。

Trans(透過)シェーダーの場合は、pmat内でマテリアル名と紐づけてあるRQ値(描画優先度)が高いほど前面に描画される。
マテリアル名と同名の専用pmatが無い場合、RQはデフォルト値となる(不透明なら2000、透過なら3000)。
.pmatを自作しない場合は同カテゴリの公式pmatファイル名を指定するとよい
.pmatでRQを設定していないファイル名だと汎用の設定値が使用される為、そのカテゴリで最適な状態にならない場合もある。
直接数字を書いてもファイル名と認識されるほか、大文字小文字を区別するため、きっちり指定する必要がある。
もう少し詳しい話は「pmat」のページを参照。

- 値1(マテリアル名):基本的にファイル名と同じ名前を指定する。
- 値2(pmat):アイテムの描画順を決めるマテリアル名を指定する。他のマテリアル名を書けば、その描画順が適用される。
Trans(透過)シェーダーの場合は、pmat内でマテリアル名と紐づけてあるRQ値(描画優先度)が高いほど前面に描画される。
マテリアル名と同名の専用pmatが無い場合、RQはデフォルト値となる(不透明なら2000、透過なら3000)。
.pmatを自作しない場合は同カテゴリの公式pmatファイル名を指定するとよい
.pmatでRQを設定していないファイル名だと汎用の設定値が使用される為、そのカテゴリで最適な状態にならない場合もある。
直接数字を書いてもファイル名と認識されるほか、大文字小文字を区別するため、きっちり指定する必要がある。
もう少し詳しい話は「pmat」のページを参照。
- 値3,値4(シェーダー1,2):それぞれシェーダー1、2を指定する。model内のマテリアル設定と同じシェーダー1、2にしないとエラーが出る。
シェーダー1 | シェーダー2 | 概要 |
---|---|---|
CM3D2/Man | CM3D2__Man | ご主人様やNPC男のシルエット表示 |
CM3D2/Mosaic | CM3D2__Mosaic | モザイク |
CM3D2/Toony_Lighted | CM3D2__Toony_Lighted | トゥーン |
CM3D2/Toony_Lighted_Outline | CM3D2__Toony_Lighted_Outline | トゥーン・輪郭線 |
CM3D2/Toony_Lighted_Outline_Trans | CM3D2__Toony_Lighted_Outline_Trans | トゥーン・輪郭線・透過 |
CM3D2/Toony_Lighted_Trans | CM3D2__Toony_Lighted_Trans | トゥーン・透過 |
CM3D2/Toony_Lighted_Trans_NoZ | CM3D2__Toony_Lighted_Trans_NoZ | トゥーン・透過・NoZ |
CM3D2/Toony_Lighted_Hair | CM3D2__Toony_Lighted_Hair | トゥーン・髪 |
CM3D2/Toony_Lighted_Hair_Outline | CM3D2__Toony_Lighted_Hair_Outline | トゥーン・髪・輪郭線 |
CM3D2/Toony_Lighted_Cutout_AtC | CM3D2__Toony_Lighted_Cutout_AtC | トゥーン・カットアウト COMで追加されたシェーダー。CM3D2で使う場合はセルフシャドウがメッシュ形状になる |
CM3D2/Lighted | CM3D2__Lighted | トゥーン無し。スポットライトやポイントライト時と同じ状態 |
CM3D2/Lighted_Trans | CM3D2__Lighted_Trans | トゥーン無し・透過 |
Unlit/Texture | Unlit__Texture | 光源の影響なし・セルフシャドウなし texを元のまま表示するので発光表現に使える。 |
Unlit/Transparent | Unlit__Transparent | 光源の影響なし・透過・セルフシャドウなし |
Diffuse *Unity5版では使用不可 | Diffuse *Unity5版では使用不可 | リアル調。 光源の影響を強く受ける。 |
Legacy Shaders/Diffuse *上記のUnity5版 | Legacy Shaders__Diffuse *上記のUnity5版 | リアル調。 (model側はDiffuseを指定) |
Transparent/Diffuse | Transparent__Diffuse | リアル調・透過 |
CM3D2_Debug/Debug_CM3D2_Normal2Color | CM3D2_Debug__Debug_CM3D2_Normal2Color | 法線をグラデーション表示 |
menuで直接シェーダー指定する場合、Unlitは使えない。
メインテクスチャー名の指定。
Colorの設定値の変更はMainTexにだけ適用される。
テクスチャパス仕様は最近のアップデートで変更されたらしい。
Colorの設定値の変更はMainTexにだけ適用される。
テクスチャパス仕様は最近のアップデートで変更されたらしい。
旧バージョン | テクスチャパスはファイル名のみ参照されていて、存在しないファイル名が入っているとエラーになる。 ファイル名が入っていなくても問題ないので、ファイル名は消しておくのが無難。 |
最新バージョン(COM 2.6以降?) | パスのファイル名も全く参照されなくなったようで、何が入っていても問題なし。 |
精密なモデルと正確な光源計算は処理が重く、エロゲ塗りやアニメ調の表現にも向かない為、ゲームでは
軽めの処理でリッチな質感を疑似的に表現するトゥーンシェーダーがよく用いられる。
これによりセルフシャドウ無しでもある程度の陰影や質感が表現できる(参考記事)

・CM3D2/COMでは光源とモデル法線(面の向き)の角度関係に基づき、指定した長方形のToonテクスチャが合成される。
帯状Toonの右端が光源正面、左端が背面となる。
・乗算合成なのでToonの白色部分は変化なし(RGB各値で 〇〇×1=〇〇 という事)。
Toonの黒色部分は黒色のまま(RGB各値で 〇〇×0=0 という事)。
・パーツの色に合ったToonを使うと馴染みやすい。自作Toonも指定可能。
・ToonRampが不要な場合は「noTex」を指定すればよい(真っ白のtoonなので変化しない)。
・原理的に単一方向の光源でないと成立しないので、光が放射状に広がるスポットライトやポイントライトでは無効になる。
・公式Toonの種類は本体アップデートで随時増えているので、定期的にチェックするのがよい。
・toon名は公式mate設定の表記では大文字と小文字が混在しているが、全て小文字でも問題なし。

軽めの処理でリッチな質感を疑似的に表現するトゥーンシェーダーがよく用いられる。
これによりセルフシャドウ無しでもある程度の陰影や質感が表現できる(参考記事)

・CM3D2/COMでは光源とモデル法線(面の向き)の角度関係に基づき、指定した長方形のToonテクスチャが合成される。
帯状Toonの右端が光源正面、左端が背面となる。
・乗算合成なのでToonの白色部分は変化なし(RGB各値で 〇〇×1=〇〇 という事)。
Toonの黒色部分は黒色のまま(RGB各値で 〇〇×0=0 という事)。
・パーツの色に合ったToonを使うと馴染みやすい。自作Toonも指定可能。
・ToonRampが不要な場合は「noTex」を指定すればよい(真っ白のtoonなので変化しない)。
・原理的に単一方向の光源でないと成立しないので、光が放射状に広がるスポットライトやポイントライトでは無効になる。
・公式Toonの種類は本体アップデートで随時増えているので、定期的にチェックするのがよい。
・toon名は公式mate設定の表記では大文字と小文字が混在しているが、全て小文字でも問題なし。
・ToonRamp 一覧 (M,MM,MMMが付く物は金属質感) | |||||||
---|---|---|---|---|---|---|---|
toonBlackA1 | toonBlackM1 | toonBlackMM1 | toonBlueA1 | toonBluA2 | toonBrownA1 | toonGoldM1 | |
toonGrayA1 | toonGrayM1 | toonGrayMM1 | toonGreenA1 | toonGreenA2 | toonGreenA3 | toonOrangeA1 | |
toonPinkA1 | toonPinkA2 | toonPurpleA1 | toonPurpleM1 | toonPurpleMM1 | toonRedA1 | toonRedA2 | |
toonRedM1 | toonRedMM1 | toonRedMMM1 | toonSilverA1 | toonYellowA1 | toonYellowA2 | toonYellowA3 | |
toonFace | toonFace002 | toonSkin | toonSkin002 |

メインテクスチャーの影になる部分のテクスチャー指定。
公式ファイルでは*_shadow.texと末尾に付いている。
MainTexを暗くした物が使われている。

ShadowRateToonの影側の範囲に合成されるが、Toonシェーダーは平行光源が前提の為、
スポットライトやポイントライト使用時は無効になる。

ShadowTexは疑似的な陰影表現としてToonRampと役割が被り気味で、公式ShadowTexは色が暗すぎる物も多い為、
あえてShadowTexは使わないという選択もアリ。その方法としては以下の2つ。
・ShadowTex指定にMainTexと同じ物を使う
・ShadowRateToon指定を「noTex」にする(真っ白のtoonなのでShadowTexが描画されない)
mateのcolor変更はMainTex側にのみ有効なので、汎用性を考えると後者がオススメ。
テクスチャパス仕様はMainTexと同様に、最近のアップデートで変更されたらしい。
公式ファイルでは*_shadow.texと末尾に付いている。
MainTexを暗くした物が使われている。

ShadowRateToonの影側の範囲に合成されるが、Toonシェーダーは平行光源が前提の為、
スポットライトやポイントライト使用時は無効になる。

ShadowTexは疑似的な陰影表現としてToonRampと役割が被り気味で、公式ShadowTexは色が暗すぎる物も多い為、
あえてShadowTexは使わないという選択もアリ。その方法としては以下の2つ。
・ShadowTex指定にMainTexと同じ物を使う
・ShadowRateToon指定を「noTex」にする(真っ白のtoonなのでShadowTexが描画されない)
mateのcolor変更はMainTex側にのみ有効なので、汎用性を考えると後者がオススメ。
テクスチャパス仕様はMainTexと同様に、最近のアップデートで変更されたらしい。
旧バージョン | テクスチャパスはファイル名のみ参照されていて、存在しないファイル名が入っているとエラーになる。 ファイル名が入っていなくても問題ないので、ファイル名は消しておくのが無難。 |
最新バージョン(COM 2.6以降?) | パスのファイル名も全く参照されなくなったようで、何が入っていても問題なし。 |
Hairシェーダー使用時の、髪のハイライト用テクスチャ。公式ファイルでは*_s.texと末尾に付いている。
ShadowRateToonをマスク範囲として、光源側だけ表示される。
これが無いと髪の影側に黒塗りが発生するので、不要な場合は透明のダミーを必ず用意する(8x8の透明texでOK)。
ShadowRateToonをマスク範囲として、光源側だけ表示される。
これが無いと髪の影側に黒塗りが発生するので、不要な場合は透明のダミーを必ず用意する(8x8の透明texでOK)。
テクスチャの光源側(MainTex)と影側(ShadowTex)の合成範囲を決めるToon。
リムライトや髪のハイライトも影側には描画されない。
帯状Toonの右端が光源正面、左端が背面。Toonの白色がMainTexで黒色がShadowTex。グレーは比率に応じた合成。
公式の物は境界がぼかしてあるが、境界がハッキリしたToonを自作して使う事も可能。

・toon名は公式mate設定の表記では大文字と小文字が混在しているが、全て小文字でも問題なし
リムライトや髪のハイライトも影側には描画されない。
帯状Toonの右端が光源正面、左端が背面。Toonの白色がMainTexで黒色がShadowTex。グレーは比率に応じた合成。
公式の物は境界がぼかしてあるが、境界がハッキリしたToonを自作して使う事も可能。

・ShadowRateToon 一覧 (M,MMが付く物は金属質感。noTexは影側なし(真っ白のテクスチャ)。) | |||
noTex | toonDress_shadow | toonDressm_shadow | toonDressmm_shadow |
toonFace_shadow | toonSkin_shadow |

テクスチャ色の加算と減算を行う。半透明シェーダーの場合は透明度の設定も可能。
4値はRGBAの順に並んでいる。光の三原色R(レッド),G(グリーン),B(ブルー)と、
半透明シェーダーの場合はアルファチャンネル(透明度)が加わる。それぞれ256階調。
RGB各値の初期状態は1.0。 0.0〜1.0でテクスチャ色から減算、1.0を超えるとテクスチャ色から更に加算される。
・RGBは0,0,0が#000000(黒)、1,1,1が#FFFFFF(白)に対応。
・Alphaはマテリアルの値3,値4がTransシェーダー(半透明)の時に使用する。0.0がテクスチャの透明度0(透明)、1.0が100%(不透明)。
・半透明シェーダーは深度(奥行き)が無効で描画順が固定なので、同一のオブジェクト内で描画順が同じだと
奥の面が手前に描画される事もあり得る。
・Color値の変化が適用されるのはMainTexだけ。ShadowTexには適用されないので
極端にColorを変更すると影側の色が合わなくなる。
その場合、MainとShadowの境界を決めるShadowRateToonを「noTex(真っ白のtoon)」に設定すれば、
Shadow側は描画されないので誤魔化せる。

4値はRGBAの順に並んでいる。光の三原色R(レッド),G(グリーン),B(ブルー)と、
半透明シェーダーの場合はアルファチャンネル(透明度)が加わる。それぞれ256階調。
RGB各値の初期状態は1.0。 0.0〜1.0でテクスチャ色から減算、1.0を超えるとテクスチャ色から更に加算される。
・RGBは0,0,0が#000000(黒)、1,1,1が#FFFFFF(白)に対応。
・Alphaはマテリアルの値3,値4がTransシェーダー(半透明)の時に使用する。0.0がテクスチャの透明度0(透明)、1.0が100%(不透明)。
・半透明シェーダーは深度(奥行き)が無効で描画順が固定なので、同一のオブジェクト内で描画順が同じだと
奥の面が手前に描画される事もあり得る。
・Color値の変化が適用されるのはMainTexだけ。ShadowTexには適用されないので
極端にColorを変更すると影側の色が合わなくなる。
その場合、MainとShadowの境界を決めるShadowRateToonを「noTex(真っ白のtoon)」に設定すれば、
Shadow側は描画されないので誤魔化せる。

立体感を出す為に輪郭部分に当てる光(リムライト)の色。R,G,B,A。
設定した値がモデルの輪郭部分に加算される。0,0,0,1でリム光無効。
ちなみにマイナス値だと減算表示されるので、白飛びしやすい部分に使うといいかも。
ただしCM3D2コンバーターやACCExプラグインでは未対応なので、mateファイルに手動で入力する。
設定した値がモデルの輪郭部分に加算される。0,0,0,1でリム光無効。
ちなみにマイナス値だと減算表示されるので、白飛びしやすい部分に使うといいかも。
ただしCM3D2コンバーターやACCExプラグインでは未対応なので、mateファイルに手動で入力する。
輪郭線と言っているが、実際にはモデルを一回り大きくして反転させた物を輪郭線に見せかけている。
法線方向に輪郭モデルの面を膨らませる値が「OutlineWidth」。ACCExプラグインで太さを極端に弄るとわかりやすい。
特別な処理なしに輪郭を出せるので昔からゲームでよく使われる手法。「背面法」とも呼ばれる(参考解説)。
CM3D2/COMではアウトラインシェーダー指定時に自動で処理される。
輪郭モデルにはToonRampとセルフシャドウが乗る。COMでは輪郭モデルにも専用テクスチャが貼れる。
法線方向に輪郭モデルの面を膨らませる値が「OutlineWidth」。ACCExプラグインで太さを極端に弄るとわかりやすい。
特別な処理なしに輪郭を出せるので昔からゲームでよく使われる手法。「背面法」とも呼ばれる(参考解説)。
CM3D2/COMではアウトラインシェーダー指定時に自動で処理される。
輪郭モデルにはToonRampとセルフシャドウが乗る。COMでは輪郭モデルにも専用テクスチャが貼れる。
辺分離してある部分は輪郭モデルに隙間が出来てしまう。
一回り大きい輪郭モデルの裏面を見せているので、本体モデルに埋まってしまい線が見えない場合もある。
輪郭が見えるようにワザと隙間を開けたり、テクスチャに輪郭線を描いてしまうといった工夫も必要。
一回り大きい輪郭モデルの裏面を見せているので、本体モデルに埋まってしまい線が見えない場合もある。
輪郭が見えるようにワザと隙間を開けたり、テクスチャに輪郭線を描いてしまうといった工夫も必要。
リムライトの強さ。0〜100。0に近付くほど適用範囲外へ光が溢れる。100に近付くほど光が収束する。
"Rim Power", Range(0.1,30)
リムライトはカメラの向きに対して法線が直角の部分を輪郭(リム)と見なして、
そこを中心にRimColorを加算します。
ちなみにRimPowerがマイナス値の場合は、カメラに対して直角ではなく
正面が加算の中心になるので、硬質な表現に向いています。
"Rim Power", Range(0.1,30)
リムライトはカメラの向きに対して法線が直角の部分を輪郭(リム)と見なして、
そこを中心にRimColorを加算します。
ちなみにRimPowerがマイナス値の場合は、カメラに対して直角ではなく
正面が加算の中心になるので、硬質な表現に向いています。
リムライトの適用範囲。0が最小、5が最大。
したらば改造スレ その8より
"Rim Shift", Range(0,1)
_MultiColTex ("Multi Color Table (RGBA)", 2D) = "white" {}
[MaterialToggle] _UseMulticolTex ("Use MultiColor Tex", Float) = 0
したらば改造スレ その8より
182 ツイッターなんかでも話題のRimShiftだけど、これをマイナスにするのはNG
"Rim Shift", Range(0,1)
- HiRate
("Hilight Rate", Range(0,1)) = 0
- HiPOW
_MultiColTex ("Multi Color Table (RGBA)", 2D) = "white" {}
[MaterialToggle] _UseMulticolTex ("Use MultiColor Tex", Float) = 0
コメントをかく