配布先
https://bowlroll.net/file/104601
更新内容
・HAToon2の設定例をPAToon化したものを同梱
・影傾向テクスチャ対応
・サブテクスチャをノーマルマップ or 影傾向テクスチャに使えるように対応
・モデル材質設定のToonをノーマルマップ or 影傾向テクスチャに使えるように対応
・fx側の追加色調にHSVを追加
①HAToon2の設定例のPAToon化
PAToonはHAToon2のトゥーンフラットがベースなのですが、細かく変わっているのも事実なのでトゥーンフラットも含めてPAToon化しました。
PAToon無印は嘘影、PAToonKeyはキー材質のみ嘘影、PAToonLiteは嘘影なし、です。
PAToon_トゥーン → 強制嘘影設定
PAToonKey_トゥーン → 反射強度 ~.039の材質のみ嘘影設定
PAToonLite_トゥーン → 嘘影なし
嘘影のないPAToonLiteはHAToon2そのままでは?と思うかもしれませんが、
色調コントローラーなどの操作は有効なので強化版HAToon2と思ってください。
設定例それぞれの比較はこんな感じです。
(画像はすべてExcellentShadowも読み込んでます)
グラデトゥーンとかプラとかトゥーン?って感じはありますね。
この後のノーマルマップなどを使って頑張れば、
嘘影に対応したリアル系シェーダーとして使うことができるかもしれません。
②影傾向テクスチャ対応
モデルのUVマップを元に影が出やすい/出にくい傾向を指定します。テクスチャはモデル材質に合わせて各自用意する必要があります。
PAToonの影傾向の設定はAlternativeFullを参考にしています。
灰色(0.5,0.5,0.5)が無傾向、黒(0,0,0)が影、白(1,1,1)が影なしです。
ただし白にしてもセルフ影に入ると影になります。
影になりやすさの設定なので0.2や0.8などにした場合、
照明方向によって影になったり影にならなかったりします。
PAToon無印かPAToonLiteのfx内で各自用意した影傾向テクスチャを当てるのが推奨です。
いい加減なマップも同梱してるのでそれを当ててみると傾向が分かるかもしれません。
影のなりやすさはモーフで調整するか、fx内部の数値設定で変更することが可能です。
デフォルト1.0は分かりやすく少し強めで、黒を当ててると順光でも影になります。
0.5くらいだと完全順光なら影にはならないと思いますが、調整は難しいと思います。
実際に使うのは首の影とか耳の影とか服のシワなどでしょうか。
鎖骨などにも影が出やすく出たりすることは可能ですが・・・
③サブテクスチャをノーマルマップ(影傾向)に使えるように対応
PAToonというかHAToon2はもともとノーマルマップを使えるのですが、NCHLシェーダーみたいにサブテクスチャにノーマルマップを設定できるようにしました。
・モデルにサブテクスチャを設定すること
・モデル材質の環境色の小数点以下にフラグを立てておくこと
・シェーダーfxファイル内でフラグを有効にしておくこと
の3つが条件になります。
フラグが複数存在するのは誤作動を防ぐための安全弁です。
PAToonは嘘影を使って材質掛け分けをするとMMEのタブが増えやすいので、
モデル側にマップ指定をする方法がそこそこ有効な場合があるかもしれません。
ただし基本的にはPAToonLiteのシェーダー側でノーマルマップを指定するのが推奨です。
(PAToonLiteなら掛け分けてもMMEのタブが増えるということはありません)
嘘影が不要な服なら嘘影なしのPAToonLite掛け分けで問題がない、そんな感じです。
※使いたい設定をfxファイル内で有効にします。(先頭の「 // 」を取る)
複数を有効にした場合は第一にマップの外部指定が優先されます。
次に環境色の小数点以下のフラグでどうするかが決まります。
※環境色Bの小数点フラグ
・小数点第5位が1ならサブテクスチャを影傾向テクスチャに使う
・小数点第5位が2ならサブテクスチャをノーマルマップに使う
上の画像は小数点第5位が1なのでサブテクスチャを影傾向テクスチャに使います
サブテクスチャを使うとそのままではスフィアが使えなくなるので注意してください。(スフィアも使いたい場合は④を参照)
④モデル材質Toonをノーマルマップ(影傾向)に使えるように対応
Toonテクスチャもノーマルマップや影傾向テクスチャに使えるようにしました。ただし以下のフラグが必要です。
・Toonテクスチャの右上1ドットが白(1,1,1)ではないこと
・モデル材質の環境色の小数点以下にフラグを立てておくこと
・シェーダーfxファイル内でフラグを有効にしておくこと
サブテクスチャと同様にこちらも誤作動を防ぐ安全弁です。
Toonテクスチャの右上1ドットが白い場合は通常トゥーンだと勝手に判断します。
影傾向テクスチャで端を白くする使い方ができないので注意してください。
トゥーンマップを使う必要があるのは以下の場合でしょうか。
・ノーマルマップ(or 影傾向テクスチャ)とスフィアを併用したい
・ノーマルマップと影傾向テクスチャを併用したい
fx側でマップを外部指定できる場合はトゥーンマップをわざわざ使う必要はありません。
※環境色Bの小数点フラグ
・小数点第6位が1ならトゥーンマップを影傾向テクスチャに使う
・小数点第6位が2ならトゥーンマップをノーマルマップに使う
上の画像は小数点第6位が2なのでトゥーンテクスチャをノーマルマップに使います
(ただし右上1ドットが白(1,1,1)の材質トゥーンは無視されます)
左下1ドットにトゥーン色を置いておけば反映させることが一応可能だったりします
⑤fx側の追加色調にHSVを追加
前バージョンからコントローラーでした色調をfx側でそのまま設定できるようにしてます。数値設定はコントローラーの数値の1/10なので注意してください。
というかコントローラーが10倍数値なだけで、fx側の方が(1.0, 1.0, 1.0)なのですが。
2.97ではRGBだけだったを2.98からHSVも追加しました。
数値で適当に追加色調できるようになったので、
影の色はfxで指定してるテクスチャを色調する必要はなくなったかもしれません。
(そもそもやってる人はほとんどいなかったと思いますが)
影濃い目とかそういう設定はfx側の追加色調数値で簡単にいじれるので、
自分なりによく使う設定にカスタムしておくことをオススメします。
以上、量が多いですが別に設定を使う必要はありません
PAToon自体は特にこういうの読まなくても使えるお手軽なシェーダーなのですが・・・