簡単な使い方。我流です注意。
HAToonの真髄はジェネレータにあります。ジェネレータで影の長さ、影の濃さ、色、リムライトなど自由自在に設定できます。驚異的な自由度です。しかもシェーダを作ってしまえば細かい設定はMMD内でやる必要がありません。素晴らしいです。
しかし、ジェネレータの使い方はなかなか検索しても出てきませんでした。初心者の方の中にはさっぱり使い方がわからないという方も多くいらっしゃるのではないでしょうか。それは大変にもったいないです。
とはいえ僕もジェネレータを完全に使いこなしているとは言い難いのでご了承下さい。
※この記事を読むにあたり、補助教材としてサンプルを用意しておきました。中身はHAToonの改変です。これを利用して自分でエフェクトを調整して使ってみてもいいかもしれません。(その場合僕のクレジットは不要です。自作改変ということにしても構いません。ミーフォ茜さんのお名前はクレジットして下さい。)
こちらからどうぞ。パスワードは「ネコファク」です。
HAToonとは
テクスチャ画像を設定値とし、それに従って色を決定するシェーダであり、それのジェネレータです。
設定値のテクスチャはモデルの Toon テクスチャのようなものですが、縦と横の軸に任意の意味を持たせ、対応する色を任意の方法で材質の色に合成できます。
HAGenerator.txt
このようにHAToonは本来非常に自由度が高いのですが、今回は影の付き方を自分で調節するといったことに焦点を当てていきたいと思います。
プリセットを見てみよう
そしてReadMeにも書いてあるとおりテクスチャが重要です。スタンダードプリセットをいじりながら見ていきましょう。
HAGenerator.exeを起動します。左上のファイル > 開くから「スタンダード.fx」を選択しましょう。
ジェネレータの最初の画面。ここで大体が決まります。
スタンダードは2つしかテクスチャがありません。Satはオプションみたいなものなので超重要なのはDiffuseMulだけです。このテクスチャさえ作れればHAGeneratorは大体使いこなせます。
DifuseMulのRGBを乗算にしよう
1つ目のDiffuseMulは影をつけています。
プリセットでは自己乗算なのでちょっとやり辛いです。影の色のとり方の法則が違うので。乗算に変えてしまいましょう。
あとDiffuseBySatは一旦オフにしておきましょう。
テクスチャを作ろう
DiffuseMulSelf.pngをいじって影をコントロールしましょう。もちろん保存は別名で。作ったテクスチャはスタンダード.fxと同じフォルダにおいておきましょう。
改変テクスチャのサンプルとしてDiffuseMulSampleを用意しておきました。DiffuseMulSample1.pngをスタンダード.fxと同じフォルダに入れておいて下さい。
ジェネレータにて、参照からorテクスチャの名前を入力して適用させてみましょう。プレビューの影のかかり方が変わったかと思います。
以下は上で配布したサンプルの比較です。図のように色を濃く影部分を長くすれば、シェーダのかかり方も変わります。
肌は短い影、服は濃くて長い影というのが個人的にはおすすめです。他のサンプルも試してみて下さい。
DiffuseMulBySat
あまり良くわかってないのですが、白い材質の時にピンクを抑えたりしてくれるもののようです。DiffuseMulの長さに合わせておかないと表示が変になるのに注意。
その辺はサンプルテクスチャを見てもらえるとわかるかと思います。
他のタブも見てみよう
鏡面反射
スタンダードではSpecularMul.pngが設定されています。テカリが入ります。
僕はオフにしてることが多いですが、靴とかにかけるといい感じになりますね。
加算スフィア
スフィアを入れられるみたいですね。個人的にはあまりわかってないです。使ってないことが多いです。
エッジ
シェーダをかけたときにエッジがつくようになります。Croquisなどの輪郭抽出エフェクトによるエッジとは付き方が違います。0.2くらいがオススメ。 うまいことやれば面白いエッジがつけられるかも…?
オプションを設定しよう
最後のタブ、オプションは重要です。見ていきましょう。
法線マップ
ノーマルマップを設定できます。 ノーマルマップを使うと凹凸が表現できてリアルになります。トゥーンではあまり出番はないかも。
LocalShadow
嘘影のことです。顔材質によく使いますね。
LocalShadowは本来シェーダに組み込んで使わなきゃいけないタイプのものなのですが、その適応作業をやっておいてくれるわけです。便利ですね。
注意点として、LocalShadow_Header.fxhをシェーダと同じフォルダ内においておかないとエラーが起きます。嘘影を使うならLocalShadowを針金Pのブログから落としてきてfxhファイルをコピペしておきましょう。
HgShadow
影を綺麗にしてくれるシェーダ組み込み型のエフェクトです。これもHgShadow_ObjHeader.fxhがフォルダ内にないとエラーが起きるようです。
ExcellentShadow
ExcellentShadowも影を綺麗にしてくれるエフェクトです。LocalShadow同様、シェーダ側で適応作業を行わないと使えないエフェクトですがこちらもジェネレータ側で対応してくれます。ExcellentShadowは重いので注意。
Toon未指定材質をシェーディングする
HAToonをかけてもなにも影がかからないぞというときは大体これが原因です。(もしくはセルフ影のチェックがオフになっているか)
PMXEditorを開いて材質の欄を見てみましょう。
このToonがなにもないのがToon未指定材質です。チェックをつけておくと未指定材質もシェーディングしてくれるようになります。
逆にこれを利用してシェーダのかかってほしくないところ(白目やハイライトなど)のToonをなしにするとその分MMDでのサブセット展開が楽になります。
拡散反射の最低値を環境光まで制限する
使ったことのない機能なので仕様がよくわかりません。PMXEditorで見るここの値に制限されると思われます。うまく使えば白飛びが防止できるかも…?
HAHead.hlsl及びHACore.hlslを同じフォルダにコピーする
チェック推奨。これがないとHAToonは動きません。
お借りしたもの
- モデル:市NB(ゆきはね様)
- ポーズ:セクシーポーズ集(涼一様)
- HAgenarator(ミ―フォ茜様)