MAYAで簡単にノーマルマップを作る方法 -気を付ける点と生成の応用例-

maya_normal_bake_topimage

複雑な造形をモデリングしたハイポリモデルでは実際のデータとして使うには重すぎる

そんな時に使われるのがノーマルマップ

ノーマルマップを作る方法は無料有料様々ありますが
今回はMayaの Transfer Maps を使ってノーマルマップを生成する手順を紹介します。

Transfer Mapsで手軽にノーマルマップを生成することはできますが、
少しコツも必要なのでその部分も紹介できたらと思います。

参考記事:
[Tips]ノーマルマップの立体感が増す効果的なカラーマップテクスチャーの描き方

Mayaでノーマルマップを生成する手順

ノーマルマップを適用したいローポリモデルとノーマルマップを生成するハイポリモデルとを用意

※ノーマルマップを生成するモデルがハイポリモデルとは限りませんが便宜上ハイポリモデルと記述します。

LowPoly_HiPoly_model01

ローポリモデルをUV展開します

UV展開


Transfer Maps を開きます

Menu set を Rendering に変更します

Rendering


Ligthing/Shading > Transfer Maps…

Ligthing/Shading > Transfer Maps.
Target Meshes に ノーマルマップを適用したいローポリモデルを設定オブジェクトを選択して [Add Selected] をクリック

Source Meshes に ノーマルマップを生成したいハイポリモデルを設定オブジェクトを選択して [Add Selected] をクリック

Normal Map にチェクが入っている事を確認 
ファイルのフォーマットやファイル名、出力先を設定

Map space は Tangent space を選択

Map width  出力するノーマルマップの幅
Map height 出力するノーマルマップの高さ

Sampling quality 等 任意に設定して問題なかったら
[Bake] をクリック

Target Meshes


ノーマルマップが生成されました。

normalmap01


生成したノーマルマップをローポリモデルにアサインしてUnityで表示します。

シンプルなモデルに凸凹が追加されて表示されました。

Unity表示01


ノーマルマップを適用していないモデルをUnityで表示したのが以下の画像です。

not normal表示

ローポリモデルよりハイポリモデルが大きい場合

上記の例はノーマルマップを生成するハイポリモデルがローポリモデルからはみ出していません。

ノーマルマップを生成するハイポリモデルがローポリモデルからはみ出していません


ローポリモデルをはみ出す造形のハイポリモデルでノーマルマップを作るときは、手順が増えます。

ローポリモデルとローポリモデルからはみ出す装飾が追加されたハイポリモデルを用しました。

ローポリモデルとローポリモデル02


先ほどと同じ手順でノーマルマップを生成します。

うまく生成されてない部分があります。

normalmap02


ハイポリモデルがローポリモデルより大きくてノーマルマップの生成範囲からはみ出してしまっているのが原因です。

ノーマルマップの生成範囲からはみ出してしまっているのが原因です


Target Meshesの Display から Envelope を選択します

Envelope

ローポリモデルを基にしたピンクの枠が出てきました。

ローポリモデルを基にしたピンクの枠が出てきました


このピンクの枠をノーマルマップの生成範囲に収まるように調整します。

Search envelope を1.9にしました。

Search envelope


大きくしすぎるとローポリモデルに合致した綺麗なノーマルマップにならないのでちょうど収まる所を探します。

はみ出す部分がなく全て囲われました。

Envelope setting


ノーマルマップを生成してみましょう。

Transfer Maps を設定して [Bake] をクリック

ハイポリモデルの造形を元に綺麗にノーマルマップが生成されました。

normalmap03


生成したノーマルマップをアサインしてUnityで表示してみます。

追加した造形が浮き出て表示されました。

Unity表示02


ノーマルマップ生成範囲のピンクの枠は頂点を移動できるので、部分的な範囲調整も可能です。

Envelope vertex setting

モデリンングをした後でノーマルマップの追加する方法

上記の例はどちらもローポリモデルとハイポリモデルは同じ位置に配置されています。

つまりノーマルマップを生成するためのハイポリモデルの基本造形はローポリモデルと似た造形になります。

ここで紹介するのは、ノーマルマップを適用するローポリモデルとノーマルマップを生成するモデルを完全に分ける方法です。

丸みを帯びた壁のモデルを用意しました。

丸みを帯びた壁のモデル

このモデル用にノーマルマップを生成しますが、この壁に合わせたハイポリモデルは作りません。

手順

  • 壁のモデルをUV展開
  • 凹凸の当たりを描いたテクスチャー
  • テクスチャーを基にモデルを用意してノーマルマップを生成


壁のモデルをUV展開します。

UV展開02


凹凸の当たりを描いたテクスチャーを用意します。

凹凸の当たりを描いたテクスチャーを用意します
凹凸の当たりを描いたテクスチャーを用意します


テクスチャーを基にノーマルマップ生成用モデルを用意

ポリゴンのプランモデルを生成して、凹凸の当たりを描いたテクスチャーをアサインします。

ポリゴンのプランモデルを生成して、凹凸の当たりを描いたテクスチャーをアサインします


テクスチャーを見当にして凹凸モデルを配置します。

配置したら Transfer Maps の Source Meshes に ノーマルマップ生成用モデルとして設定します。

テクスチャーを見当にして凹凸モデルを配置


ノーマルマップを生成するための疑似的なローポリモデルを用意します。

この疑似ローポリモデルをTransfer Maps の Target Meshes に 設定します。

Transfer Maps の Target Meshes に 設定


Transfer Maps を設定したら[Bake]をクリック。ノーマルマップを生成します。

生成されました。

normalmap04


生成されたノーマルマップを壁モデルにアサインしてUnityで表示してみます。

装飾が立体的に表示されました。

装飾が立体的に見えます


衣服の装飾物に後からノーマルマップを追加する場合や
大きな造形物にノーマルマップで細かな装飾を付加したい場合に有効な方法です。

装飾物を追加して、Arnoldで生成したアンビエントオクルージョンマップも追加しました。

装飾物追加

装飾物を追加して改めてUnityで表示します。

Unity表示 final

以前はアンビエントオクルージョンもTransfer Mapsで生成可能でしたが今その役目はArnoldに移っているようですね。

参考記事:

まとめ

MAYAでノーマルマップを生成する方法を紹介しました。

ノーマルマップを使用するローポリモデル
ノーマルマップを生成するハイポリモデル
上記2種類のモデルを用意

Transfer Maps を起動

ローポリモデルをTarget Meshesに設定
ハイポリモデルをSource Meshesに設定

Bakeをクリック生成

最近のCGではシンプルな絵柄のグラフィクでも何処かしらに使用されているほど欠かせない技術になっています。

そのため効率的にノーマルマップを作成する事が大事で、今回紹介した方法以外にも様々な方法があります。

高価なスカルプトモデリングソフトウェア。
比較的安価な写真からノーマルマップを生成することができるソフトウェアなどがあります。

スカルプトモデリングソフトウェアは超精細なノーマルマップを生成することが可能です。

写真からノーマルマップを生成する方法は専用のソフトウェアに任せることになるでしょう。

外部のソフトウェアを使用する方法と今回紹介したMAYAで生成する方法の利点を比べて、より効率的で精度の高い方を選んで使用すると良いと思います。

以上です。


おすすめの関連記事:


 

コチラの記事も読まれています

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください