ゲーム3Dモデルの凹凸の正体。Blog第1メニューホームメニューホームゲーム3Dモデルの凹凸の正体。2017年10月27日はじめまして!3Dデザイナーの押見です。場合によって色々やってます。今回は近年ゲームでよく使われているノーマルマップというテクスチャのお話をしようかと思います。ゲームのリアルタイム3Dモデルは基本ポリゴンで作成されており、モデラーは日々データ容量制限と戦っています。その中でも特に頂点は多くの情報を含み、増えれば増えるほどゲームの世界を圧迫しまくり、モデラー的にも数十万に頂点が膨れ上がってしまうと管理が大変です。凹凸をテクスチャで表現できる「ノーマルマップ」が使われ始めました。(「法線マップ」などと言ったりすることもありますが、ここではノーマルマップで統一させていただきます)ちょっと画像を見ましょう。↓は、適当なキューブに対して面取りと十字に溝を入れたモデルです。ワイヤーフレームを見ると、形状を頂点で表現しているのがわかりますね。これをハイポリゴン(以下ハイポリ)とします。↑のハイポリの面情報をノーマルマップとして焼き付けました。ローポリモデルはポリゴンを割っていないのに、フチにハイライトが走っていたり、十字に溝の印影が出ていて、まるでポリゴンで溝や角の丸みを作っているように見えますね!これが基本的なノーマルマップの効果です。大体はハイポリモデルをハイポリ作成用のツールなどで作った後、ゲーム用のローポリモデルにノーマルマップのテクスチャとして焼き付けて作成しているかと思います。この凸凹を表現しているノーマルマップのテクスチャは以下のようになっています。このような不思議な紫色になっているかというのは、RGBチャンネルを見るとわかります。↑は先程のテクスチャのRチャンネルです。ピクセルが左右のどちらを向いているかを担当しています。黒くなるほど白と逆方向に横を向いている表現になります。↑は先程のテクスチャのGチャンネルです。ピクセルが上下のどちらを向いているかを担当しています。白くなるほど上を向いていて、黒くなるほど下を向いている表現になります。↑は先程のテクスチャのBチャンネルです。深さ情報を担当しています。黒くなるほど深く凹んでいるという感じです。B255は何も凸凹が無い状態と認識していただいて大丈夫かと思います。ハイポリからローポリへのノーマルマップの焼きこみが上手くいかず、おかしな陰影になってしまった箇所を修正するのに役立ちます。極まると、修正だけでなくノーマルマップの手描き作成も可能になりますね!(コストに見合わないのであまりやりませんが......)なお、これはあくまで基本的な構成の話なので、モノによって扱いはガラッと変わります。特殊なシェーダーの実装方法などなどによって仕様はさまざま、凸凹を表現する方法もさまざまです。ゲームのキャラモデルはビジュアル畑でありつつ、こういう数値的で論理的なところが面白いですよね!普段何気なく見ているゲームキャラですが、その何気ない表現も中身を見ると様々な処理を行っていたりします。ゲームの3Dデザイナーを目指す方は、ぜひぜひこのような仕組み周りにも興味を持っていただけたらとっても嬉しいです!ではでは。長くなりましたがこのへんで。today)PREVようやくドラゴンクエストNEXTオデッセイコメント投稿は締め切りました。年末ポケモン大会が開かれた話。