ページ

2013/10/27

【MMD】反射エフェクトAutoMetallic配布

○反射エフェクトAutoMetallic!

尋常じゃなく使ってないブログですが、ここで配布しようと思います。

いままでMMDやってなかったわけではないのですが、どうもこう動画を投稿するきっかけがつかめず、気づいたらエフェクトをいじっていて・・・

配布するエフェクトについて説明いたします。
「AutoMetallic」という名前です。
こんな感じです!

3代目カマロ。砂漠ステージですが海辺っぽくしました。

今までに無いくらいキレイな反射だと思っています!
ビームマンPさんの「Full_and_MetallicDP」をベースに作りました。


○リアルに見せるための工夫

 まず、計算式が変わっていて、簡単に言えば、ビームマンPさんのFull_and_MetallicDPでは「元の色*反射の色」となっていますが、AutoMetallicでは「元の色+元の色の白黒反転*反射の色」としています。
これを分かりやすく説明するならば、「明るい面ほどよく反射する」のを、「暗い面ほどよく反射する」に変えたということです。
パトカーの画像なんかを見ていただければよく分かると思います。

また、面を斜めから見るほど反射が強くなる「フレネル反射」もどきを実装しています。これに関しては無くても気づかないかもしれません。
反射が強くなるだけでなく透明度も上がるので、ガラス表面の全反射も再現できます。
これの実装に際してはデータPの「AdultShader」を参考にしました。
本当はちゃんとした計算式があるんですが、他のエフェクトを見ても分からなかったので、実装しませんでした・・・。


○便利な機能

反射のテストをしている際に、「これ、モデル全体が同じように反射するのは不便だなぁ・・・」と思いました。
そこで、このエフェクトには、あらかじめモデルに細工をしておくことで材質ごとに反射強度を設定できる機能をつけました!

その手順を説明します。

①ボーンの設定から、車体中央に「DP_Center」という名前のボーンを追加。
②材質設定から、「反射強度」の小数点以下に、反射させる強さを入力。
 (反射強度を1で割ったあまりが、反射の強さの割合になる。元の反射強度が10で、反射の強さを25%に設定したいなら、反射強度を10.25にする)

これだけです!
・・・まぁ、これだけと言ってしまえば確かに2つしかステップは無いんですが、PMD/PMXエディタを使い慣れていない方はよく分からないと思うので、動画で説明をしています。
一時停止しながら試してみてください。
(※まだできてません)

この方法は、そぼろ氏の「AutoLuminous」を参考にしております。
もちろんAutoLuminousと同時に対応させることも出来ます。
この「小数点をいじる」という方法ですが、他に同じ事をしているエフェクトが無かったので使ってみました。
反射強度をそんなに細かく設定している人はいないと思うので、たぶん殆どのモデルで問題は無いです。
もし、AutoMetallic対応モデルが増えてくれたらとても嬉しいです!

また、この細工の方法を考える上で大切にしたのが「エフェクトが無くてもモデルが正常に見えなくてはならない」ということです!AutoMetallic用のモデルを別に添付しなければならないとなると、容量がかさんだりでよくないと思ったからです。
ですから、このエフェクトには、反射と重なって変にならないようスフィアマップを消す機能もあります。(加算スフィアのみ消すのと、乗算スフィアも消す設定の二つあり、無力化することもできます。)


○車向けシェーダー?

標準のAutoMetallicに加え、AutoMetallic_plusもあります。
これは、陰影を付けたりするだけのシンプルなシェーダーです。
また、ガラスを裏面から見ると透明度が上がるので、車内視点にも便利です。


○応用

また、ちょっと上級者向けですが、他のシェーダーエフェクトに反射をつけることも出来ます。
(どれくらい簡単かはちょっと分からない)


○最後に

作ったきっかけは、キレイな反射を実現したいという思いからでしたが、HLSLの知識は殆ど無かったので、最初はどこがどう動いているのかを理解するのに時間がかかりました。
プログラミングに関しては初心者なので、コードの書き方が汚いかもしれないですが許してください・・・。
まだまだこのエフェクトには改善の余地がありそうです。
よりよいエフェクトにするために、手助けやアドバイスなどしていただけるとありがたいです。

第12回MMD杯のアナウンス動画が公開されましたね。
このエフェクトはその時までとっておこうかと思ったんですが、私はもう高校3年なので入試が控えているため、参加は出来なさそうなので、皆さんにぜひ使っていただきたいです。

追記:MetallicのつづりをMetalicと間違えていたので(しかもずっと)全て修正しました!恥ずかしい!


AutoMetallic_v1_1.zip
Download

※2015/04/29追記
旧バージョンを残しておいても混乱のもとになると思うので、非公開にしました。
旧バージョンを引き続き使用していただくことは可能ですが、こちらから最新版(2.2)をダウンロードすることをお勧めします。

7 件のコメント:

匿名 さんのコメント...

静画から参りました。配布してくださって
ありがとうございます!
さっそくDLさせていただきました。

(4) -かっこよん- さんのコメント...

初めまして。
AutoMetallic使わせて頂いたんですが、どうやら一部の材質モーフと相性が悪いようです。

小数で反射強度を調節する性質ゆえ、モーフのスライダを動かした時、一緒に反射強度も変化してしまいました。
具体的には、AutoLuminous対応モデルのヘッドライトを点灯させる時、例えば反射強度100→105へとスライダを動かす間に、
100.01~100.99にかけて段々反射が強くなり、101で反射がなくなり、101.01~101.99にかけて…以下繰り返し。
そんな感じで「ライトがチカチカ」してしまいます。

今後のVerUPの参考にと思い、報告させて頂きます。

柄杓 さんのコメント...

:(4)さん
気づいてはいたんですが、ゆっくり変えることは無いかと思い放置してました・・・;
次のアップデートでは100以上で反射しないようにしてみます!

(4) -かっこよん- さんのコメント...

素早いレスありがとうございます。今後のアップデート期待しております。
余談ですがAutometallic対応モデル配布してみましたので、お時間がありましたら是非お立ち寄りを。
http://seiga.nicovideo.jp/seiga/im3538980

柄杓 さんのコメント...

:(4)さん
早速ありがとうございます!
せっかくなので動画のほうで使わせていただきました!
あと、ヘッドライト等が点滅してしまう件を修正しました。反射色(0,0,0)、反射強度100以上では反射が起こらないようになりました。
今後もよろしくお願いします!

匿名 さんのコメント...

MikuMikuMovingで読み込むとエラーが出るのですが

\MikuMikuMoving\memory(1311,16): error X3003: redefinition of 'ShadowColor'

だそうです。

匿名 さんのコメント...

86を編集したらホイールが消滅するしきれいにならないorz