PAToon2.1に更新

Kirikoさんに嘘影シェーダーとしてご紹介いただき、
ついでに自分で見直したら改変しにくいことに気付いたのでで修正しました。

PAToon2.1 https://bowlroll.net/file/78759

前バージョンで不都合を感じていなければ差し替える必要はありません。
(基本性能はまったく変わってませんので。)

修正点は以下3点。
① HAToon2デフォの設定例をPAToon化したものを同梱
②「PAToonSystem」を同梱し、既存のHAToon2シェーダーに組み込みやすくした
③ LocalShadow対応シェーダーに組み込まれていた1行を「HACore.hlsl」に移す

今回の更新は②③が目的でして、①
はそのオマケなのですが、
シェーダーを改変する方以外はそのまま使える①が一番大きいと思います。

①HAToon2デフォの設定例のPAToon化

HAToon2は表向きトゥーンですがAlternativeFullと並ぶ万能シェーダーです。
たとえば①の設定例の中にある「グラデトゥーン」はグラデーション影。
さらにノーマルマップも設定できるのでかなりリアルにできるはず。

嘘影はトゥーン調じゃないと需要ないかなと思ったのですが、
モデルと背景で光源方向を変えることができたりします。
別出力して合成すれば同じことはできますが・・・

PAToonのシェーダー自体はHAToon2設定例と微差です。
実は影を動かすのもLocalShadowにチェックを入れればHAToon2本家でできます。
PAToonの利点はセルフ影/シェーダー影/スフィアを別に動かせること。
まあこれをきっかけにHAToon2や嘘影設定に挑戦していただければと思います。

HAToon2のジェネレーター設定がわからないとかあるかと思いますが、
一番簡単な調整はシェーダー同梱の画像を差し替える方法です。
だいたい「DiffuseMul~」とかその辺の画像を色調するだけでOK
もちろんジェネレーターに読み込めばもっといろいろ設定できます。


②「PAToonSystem」について

既存のHAToon2にフォルダ内のファイルを一式コピペ上書きすればPAToon化します。
ただし現在配布されているHAToon2の設定に準拠している必要があり、
LocalShadowの使用にチェックが入っていないとダメです。

HAToon2ジェネレーターに読み込んで設定し直すか、
シェーダー内に「#define USE_LOCALSHADOW」の一行があるか確認してください。
「 //#define~ 」になっている場合は冒頭の「 // 」を取ってください。

前バージョンのPAToonに「PAToonSystem」に読み込む必要はありません。
読み込むとエラーを起こします、直し方は③を見てください(そもそもする必要ないですが)

既存シェーダーをPAToon化する場合は必ずバックアップを取っておいてください。
一応、「HACore.hlsl」をデフォに上書きしなおせば元に戻るはずですが~


③更新に伴うコードの書き換えについて

冒頭に書きましたが「#include "LocalShadow_Header1.fxh"」の場所だけです。
前バージョンのPAToon2.0ではモデルに当てるシェーダーにありましたが、
PAToon2.1では「HACore.hlsl」内に移動しました。

これによってシェーダー単体の差し替えが簡単になったはずです。
ただし②に書いたようにシェーダーも書き換えないとダメな場合が多いかも。

あとPAToon独自の書き換え個所の前に「 //PAToon~ 」の説明を加えました。
見ればわかると思いますがPAToon用の書き換え部分は数行程度です。

LocalShadowの方もコントローラー用に多少書き換えています。
埋め込み版はLocalShadow本家だとモデルの材質設定ごとに自動オン/オフできます。
私が使わないからその設定を潰していますので忘れないうちに念のため。