ごきげんよう。みんなのmですw
年齢ゆえか飲みに行くとやっぱり結婚やらの話題が増えてきました。
~さん今年らしいよーとか、結婚どうしよう、などなど。
と、言いつつ飲みに行ったメンバー全員、きっと当面は自身には関係がなさそうな話題なのでした(ぉぃ
さて本題!
そうだ、Unityで読み込んだMMDのモデルをリアルにしよう
前回はMMDのミクをUnityに読み込みました。
(http://milk0824.hatenadiary.jp/entry/2016/06/06/224831)
今回はARなどの話題に移る前に、MMDのモデルをリアルにしたいと思います。
もう少し言うと、IBLという技術を使って周りの風景になじませるお話です。
今回お借りしたのは、この技術の時に必ず出てくるTda様の『Tda式初音ミク・アペンド Ver1.00』です。
モーションはデコスカP様の『リアルワールドモーション詰め合わせ』です。
読み込んだ状態はこんな感じ。
この状態でも十分美しいのですが、風景をつけると浮いた感じになります。
それを、周りの風景に溶け込む形にします。
この記事で扱うのはここまでですが、さらにテクスチャ(絵)に手を加えて光源や質感を操作しまくるとこんな感じになりますw
触りたいっ!!(ぉ
だいたいの手順
下ごしらえ. 前回の記事を参考に、MMDのお嫁さんをUnityに降臨させておく
- Materialsの中のMaterialを「Standard」にして、MetalicとSmoothnessの値を調整する
- HDRの画像を読み込んで「Cubemap」にする
- Materialを作成して、ShaderをSkybox > Cubemapにする
- window > Lightingのskyboxに先ほど作ったMaterialを設定する
- Directlightなどの光源を好みに調整する
- Edit > Project Settings > QualityのAnti Aliasingを「8x Multi Sampling」にする
- MMDモデルに物理演算をつける(ミクさんは髪の毛が動かないと怖いので…)
- 見て癒される
1. Materialを「Standard」にする
「リアルにする」というのは、例えば森にいたら緑っぽくなって、金ぴかの部屋にいたら金ぴかっぽい感じになるといった感じです。
周りの様子がモノに反映されます。
(光に画像を設定してそれを映し出す、というとややこしいですねw)
その周りの様子を反映される設定をMMDのお嫁さんにしていきます。
Materialsのフォルダ>それぞれのMaterialのShaderを「Standard」にする
MMDのモデルに反映している画像(Material)はMaterialsのフォルダに入っているかと思います。
そこに入っているMaterialのShaderを「Standard」に設定しましょう。
そのあと「Metalic」の値と「Smoothness」の値をいじります。
Metalicは1に近づくほど金属っぽくなります。テカテカします。
Smoothnessは0に近づくほど反射しなくなります。マッドな仕上げになりますw
この辺は好みの問題も出てきますので、自分の目で見ながら設定しましょう。
そして、このStandardの設定をそれぞれのMaterialに設定していきます。
このとき、私は肌系のMaterialと影系のMaterialはいじりませんでした。
肌もいじらないと周りになじまないのですが……設定が難しくてテカったりガングロ様になってしまって難しくて(^-^;
影に関しては変な色になってしまうのでやらないほうが良いです。
髪の毛の設定はがんばりたいところw
光物を設定したいときは「Emission」をそれっぽい色に設定すると、多少それっぽくなります。(もちろんやらなくてもよいです)
2. HDRの画像をダウンロードして、Cubemapにする
続いて、背景などに使用する画像を用意しましょう。
今回はHDRの画像を使います。
(HDR…明るいところと暗いところの諧調を残してくれてる写真。iPhoneとかでも設定がありますよ~)
以下のHDR Lab様の無料の画像をお借りしました。
http://www.hdri-hub.com/hdrishop/freesamples/freehdri
それをポンとAssetsに入れます。
Texture typeをCubemapに変更する
今持ってきた画像を「Cubemap」という形式にします。
これにすると背景にしたときにカメラをクルクル回転させてもちゃんと周りの画像を表示してくれます。
3. Materialを作って、それをSkybox > cubemapと設定する
先ほど設定したCubemapを使うためにはMaterialを作って、そのMaterialに反映させてあげて初めて使用できます。
ちなみにMaterialは、Assetsで
右クリック>Create>Material
です。
4. Lightingに背景を設定する
先ほど用意した画像を背景に設定します。
もう少し言うとIBLの設定をします。
……BLでしたら知ってるのですが、IBL(イメージベースドレンダリング)は詳しくは知りませんw
光源に画像を設定し、その画像をもとに光を計算するとのことですw
ま、難しいことは置いておいて!(ぉぃ
Window > Lightingと開きます。
そうしたら、Skyboxに先ほど作ったMaterialを設定します。
これで背景が表示されたかと思います。
ミクが全体的に森の色になったのがわかるかと思います。
……それと、肌にStandardを設定しなかったので浮きまくりなのもわかるかと思います(^-^;
5. 光源を好みに設定する
おそらくいじっていなければHierarchyにDirectional Lightがあるかと思います。
ここの「intensity」をいじることで明るさを変えられます。
……私は絵を描く人ですが、「困ったら暗めだったり逆光にすればそれっぽくみえる」法則が私の中にあって(私の絵を見ると逆光が多いのはソレw)、とりあえず0.2くらいまで明るさを下げました(爆
6. Edit > Project Settings > QualityのAnti Aliasingを「8x Multi Sampling」にする
もうこの辺からはきれいに見せるための調整作業です。
アンチエイリアスをかけたいと思います。(ギザギザをなくす処理)
Edit > Project Settings > QualityにAnti Aliasingという項目があるので「8x Multi Sampling」にしてみました。
Disableのときより断然きれいに見えますw
7. MMDのモデルに物理演算をつける
6までの工程で「できた!! 見てみよう!」と、躍らせてみると……。
ミク様の髪の毛が動かない!! まるで鉄パイプが入っているようだ!!
……まぁ、そうですよね……何もいじっていないですもの……。
なので、髪の毛がサワサワと動くようにします。
まずはMMDのモデルを選び、ModelタブのPhysics Engineを「Bullet Physics」に設定します。
そのあと、Physicsタブを選び、「Join Local World」のチェックを外し、「Frame per second」を70にします。
……Join Local Worldの設定はいらないかも。
そこまで設定したら「Generate Colliders」のProcessをクリック!
これで物理演算されるようになります。
8. 完成っ!!
これで完成ですっ!
しっかりと周りになじんでいますねw
番外編! もっと嫁をきれいにしたい!
mもやっていて「Motto!! Motto!!」と美しさを求め始めましたw
頑張れば以下のような感じまで持っていけますが、各種調整が大変……
さらにさらにテクスチャに手を加えています。
このやり方に関しては以下のUNICORN SQUARE GARDEN様を参照しました。
http://kosakasakas.github.io/blog/2014/10/18/unity-realtime-ibl/
Unity4.3時代は今の方法が使えないのでアセットで対応なさっています。
上記記事の一番下にGithubへのリンクが張られております。
そちらからアペンドミクのテクスチャをお借りしています。
さらに、上の説明では行わなかった肌の処理なども行って、調整をがんばるとこうなるわけですw