アプリつくってみっか!趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。この広告は、90日以上更新していないブログに表示しています。オープンワールドレーシングゲーム私がノーマルマッピングを初めて体験したのはXBOX360のバイオショックというゲームでした。壁のタイルがデコボコして縁がテカテカしているように見えるのを「これがノーマルマッピングかー」と感動しながら視点をグリグリ動かして遊んでいました。そんな感動的なノーマルマッピングを自分がモデリングした物体に施せる日が来るとはその時は思いもしませんでした。これまでモデリングしてきたCR-Xですが、正直ノーマルマッピングを試せるような場所はほとんどありません。いうことで今まで忘れていたナンバープレートを急遽取り付けてみました。ついでに今までテクスチャで汚く反射を書き込んで誤魔化していたヘッドライトの具もモデリングし、完成したモデルがこちら。肝心のナンバープレートは残念ながら解像度が足りなかったせいか少しいびつにデコボコしているように見えます。今回は白黒で高さを表すハイトマップを手書きで作成し、それをUnityに取り込む時点でノーマルマップ化しています。こちらがハイトマップ。白いほど高い所、黒いほど低い所です。ここではナンバープレートとホイールナットだけ白くしています。Grayscaleにチェックを入れればUnityが内部的に青紫色のノーマルマップとして扱ってくれます。Mapスロットにドラッグするとデコボコするはずです。Mapスロットのパラメーターで設定できますので、いい感じに設定してあげます。Mapのパラメーターは1のままBumpinessを0.01にするといい具合になりました。Bumpinessの値を変更したあとはApplyボタンを押さないと反映されないので注意です。拡大するとこんな感じです。ノーマルマッピングなしの場合ノーマルマッピングありの場合あんまり綺麗じゃありませんでしたね。Blenderの場合は新たにテクスチャスロットを作ってそこにグレースケールのハイトマップを開き、Influence設定のGeometry:Normalにチェックを入れ、こちらもパラメーターを変化させて丁度良い具合にします。Blenderでレンダリングした場合はUnityよりは少し綺麗に見えます。地面に反射したナンバープレートはおかしく表示されてしまいました。ライトのモデリングですが、こうなっています。前回の百式のくだりで書いた通り、UnityではスペキュラーマップのRGBチャネルの値によってMetallicパラメーターを設定できます。tf.hateblo.jpライトの反射鏡のようなパーツは不透明の白(RGBアルファ全部最大値)にすれば綺麗な鏡面になります。あとはライトのガラスを表現すれば完成ですが、透き通った材質を表現するにはマテリアルを分け、そのマテリアルのシェーダーのパラメーターを変える必要があります。ModeをTransparentにします。あとはテクスチャーを設定してやればOKです。マテリアルが違っても同じテクスチャを共用することは可能です。最後に、Smoothnessの値を調整して太陽の光が当たった時にいい感じに反射するようにしてみました。今回でCR-Xのモデリングは完成となります。この1台作るのに1ヶ月以上かかったと思います。ペースアップが必要ですね。7198となりました。アプリこの商品を含むブログを見るプロフィールid:takujidev個人でiPhone/Androidゲームを開発しています。ミツバチ軍団vs昆虫軍団の縦スクロールシューティング。