PAToon2.90の更新と設定と

PAToon2.90に更新しました。

https://bowlroll.net/file/104601

PAToon2.90の大きな変更点は以下。
・デフォルトの色調・エッジ設定の変更
・材質Toon色優先設定の追加
・HgShadow対応

今回の更新に絡めてfxファイルでの設定の仕方と、
おそらくあまり使われてないPAToonKey(推奨)の使い方を紹介します。

・PAToonKey
PAToonKeyはPMXEでキーイングした材質にだけ嘘影設定するというシェーダーです。
(もともとLocalShadowの機能です)

PMXEでモデルに下準備をしないと効果がないので初心者殺しですが、
一度設定してしまえばシェーダーかけ分けやかけ直しがかなり楽になります。
PAToon用にモデルにボーンを埋め込む際に設定しておくのがオススメです。

まずPMXEにモデルを読み込みましょう。
嘘影を使いたい材質を選択して、反射強度の小数点以下を~.039(ミク)にします。
顔や顔のパーツを一括選択をして数値を一括入力してしまってもいいと思います。
(反射強度の数値はオートルミナス以外ではあまり使わない)




キーイング設定はこれだけ。
MMDにモデルを読み込んでモデルにPAToonKeyを適用します。
モデル全体に同じシェーダーをかけていても嘘影と標準影の材質に分かれます。
ExcellentShadowを読み込めば標準影のギザギザが綺麗になります。


(顔が正面方向の影、体がMMD標準方向の影になっています)

以前に比べるとデフォルトの影の彩度が弱くなっていてわかりにくいかもしれません。
影の色設定はpmx形式の外部コントローラーを読み込むか、
モデルに専用のボーンを埋め込んで調整します(一応、ボーン埋め込みが推奨)。



モデルに埋め込んだボーンの「影 HSV」で彩度と明度を調節するとこんな感じ。
ボーンの移動XYZがそれぞれHSV(色相、彩度、明度)に対応しています。
ボーン埋め込み推奨ですが、埋め込み忘れてたら外部コントローラーでも問題ありません。

上の画像だとセルフ影マップが足元にあるままなので前髪影が出ていません。
「照明方向/位置」のボーンを上に上げるとセルフ影マップが前髪にかかります。
埋め込みボーンの場合はモーフの「表示」でマップのモデルが出て来ます。
外部コントローラーの場合は逆に「透明」で非表示にできます。




・ボーンの埋め込み方
モデルにボーンを埋め込んでみます。
PMXEにモデルを読み込んだ後に「モデル埋め込み用ボーン」をD&Dするだけです。
この際にインポート方式で「追加」を選んでください。



コントローラーの材質は不要なら削除してしまって構いません。
慣れればセルフ影マップの位置と向きは自然にわかるようになります。

簡易に使いたいならこの時点で埋め込みボーンの親と位置を設定してしまいます。
だいたいグルーブ(センター)を親にするか、頭を親にするかの2択。
(顔の影を完全に固定してしまいたいなら頭を親にした方がいいでしょう)

照明方向~セルフ影ボーンを一斉選択してY値を頭のあたりの高さにしておきます。
TransformViewで照明方向ボーンを移動して形状変化を保存するのがいいでしょうか。
セルフ影マップの位置と方向はセルフ影ボーンの位置(≠入力値)で決まります。

色調ボーンは原点から動かしてしまうと色調の初期設定がおかしくなるので要注意。


・モデルのToon色設定。

PAToonKeyは以前から同梱していたのですが、私もメインでは使ってませんでした。
一番大きな理由は単一シェーダーだと肌以外の影色が色によって微妙と思ってたからです。

今回、デフォルトで材質のToon色を優先的に適用するようにしたので、
材質ごとのToon設定がちゃんとしてあればその辺は心配いらなくなっています。

Toon設定をしたことない方もいるかもしれませんが基本は簡単です。
肌・顔・目など血の色を反映させたい材質 → Toon2, Toon5, Toon4(薄め)
それ以外の材質             → Toon1, Toon3(濃い), Toon4(薄め)


Toon2を肌に適用した場合


Toon1を全体に適用した場合

Toon6は変則、Toon7~Toon10は白テクスチャで影なしです。
Toonは自作してもよく、丁寧に設定しておけばシェーダーかけ分けは不要です。
グラデやトゥーン幅はセルフ影を使うと無視されるのでこだわっても無意味かと。
(セルフ影なしやMMEなしで使う人用です)


・fxファイルの設定
シェーダーのfxファイルを設定を変更してみましょう。
改変元のHAToon2はジェネレーターに読み込んで設定できるのですが、
PAToonはver2.0以降ですでに互換性を失っているのでfxを直接書き替えます。

fxファイルを開くとこうなっています。
PAToonの種類によって使わなさそうなフラグは下の方に移動してます。



フラグの有効無効は「#define」の前の「//」の有無で設定します。

フラグを有効にする場合はこう。

 //ExcellentShadowのフラグ(キーイング材質以外に適用。HgShadowとどちらかを適用)
 #define USE_EXCELLENTSHADOW

フラグを無効にする場合は「#define」の前に「//」を付けてこうなります。

 //ExcellentShadowのフラグ(キーイング材質以外に適用。HgShadowとどちらかを適用)
 //#define USE_EXCELLENTSHADOW

さて、PAToon2.90のデフォルト設定の変更点が以下です。

 //ハンドルエッジのフラグ(オンにするとコントローラーで色が変えられるがpmxのエッ ジ設定が使えない)
 //#define HANDLE_EDGE

このフラグを有効にしないとエッジをコントローラーで色調できません。
しかし有効にすると本来はエッジが出ないはずの材質にもエッジが出てしまいます。
いろいろ考えたのですがMMEの仕様上この問題は解決できないので、オフでいいかなと。

pmxのエッジ設定を生かしながらエッジ色をコントローラー制御したい場合は、
モデルに自分で材質モーフを追加した方がいいようです。
RGBをモーフで調整しようとするとモーフ数が一気に増えるのが難点ですが。


もう1つの変更点が先にも触れた材質Toonの優先設定

 //モデルの材質Toon設定の優先設定
 #define MODEL_TOON

これをオフにするとPAToon2.8の色調に近くなります。
オフにすると肌材質以外も全体に赤味がかかりやすくなるのが特徴です。

オンにして材質Toon設定を優先する場合は、
モデル設定の際に材質Toonを丁寧に設定してやると見映えがよくなります。
シェーダーを1つずつ設定するのと基本的な手間は同じなので、
モデルを設定してやった方が軽いし推奨だと思います。

PAToon2.8の色調に戻すためにはその下にあるパラメーター設定もいじります。

//#define BLENDDIFFUSE1TEXTURE "DiffuseMulBySat.png"
#define BLENDDIFFUSE1TEXTURE_X 256
#define BLENDDIFFUSE1TEXTURE_Y 256

この「//」を取って有効にすると、肌以外の材質の影が青みがかります。
このフラグはあった方がいいような気もするのですが、
テクスチャの色味やグラデによって小さな干渉をする場合があります。

PAToonの設定はHAToon2のトゥーンフラットを下敷きにしています。
HAToon2の設定例はミクモデルの見栄えがよくなるように設定されているので、
全体の色味が違うモデルは本当は要調整なんですね。

ついでにもう1つ

//#define BLENDADDSPHERE1TEXTURE "AddSphereRepl.png"
//#define BLENDADDSPHERE1TEXTURE_X 256
//#define BLENDADDSPHERE1TEXTURE_Y 1

ここの「//」を取ると加算スフィアがトゥーン処理されるようになります。
ちなみにオフにするときは最初の1つに「//」を入れるだけで十分です。
上の例で3つ「//」があるのは気分で設定したのが残ってるだけです・・・

その他、代表的なものを挙げておくと、

色調のRGB/HSV変換、グラボによってオンで不具合が出る?(Quadro?)
#define BLENDDIFFUSE0TEXTURE "DiffuseHue.png"

トゥーン影のデフォルトの設定。材質Toon色を優先してる場合は色は関係ない
#define BLENDDIFFUSE2TEXTURE "DiffuseMulp2.png"

影になっている以外の部分を明るくする調整。オフにするとモデル設定そのまま。
#define BLENDDIFFUSE3TEXTURE "DiffuseAdd.png"

スペキュラのトゥーン設定。オンにするとトゥーン化した反射色が出るはず。
#define BLENDSPECULAR0TEXTURE "SpecularMul.png"

フラグ設定はもう少しスマートにできるかなと思ってたり。
その辺を含めて2.91に更新するかもしれませんが、使える機能は変わらないと思います。