【Blender】ハイポリゴンから AlbedoMap NormalMap HightMap AOMap 作るメモ その1
将棋の駒をモデリングするため、Blender で四苦八苦したので過程をメモしておきます。
概要
ハイポリゴンを作成して、そこから各マップをベイクしテクスチャを作成ししていきます。最終的にUnityで利用できればOkとします。
プログラマー目線からの Blender 目録のため、Blenderマスターの方はあくびが出る内容かもしれません。ご了承ください。
- ローポリを用意する
- ハイポリの文字を作成する
- 地になるテクスチャと法線マップを作る
- 地テクスチャーとハイポリをマージする。
- AlbedoMap,NormalMap,HightMap,AOMapを出力する
- Unityでローポリに貼り付けて豪華に見せかける
- ついでにドミノ倒しする。
駒のモデルを用意する。
駒モデルはローポリのモデルで問題ないです。
UV展開しておきます。
編集モードにして、3Dビュー > 選択 > すべてを選択(解除)からメッシュを選択状態にします。
3Dビュー > メッシュ > UV展開… > 展開 を選択しUV座標を設定します。
UV画像エディター窓がこの様になっていれば成功です。
駒モデルは完成です。保存して置きます。
テクスチャー用のハイポリゴンを作成する。
挫折したハイポリゴン文字
最初は Blender の Font 機能を利用し 作成したメッシュを押し出しから細分化でなめらかにしたかったのですが、穴が空いたり、変なシワが出来たりで挫折しました。
回避方法が見つからなかったので、アプローチを変えることにします。
ディスプレイスを利用しハイポリゴン文字を作成
文字用のテクスチャーを用意する。
1024×1024 程度の文字がセンタリングされている画像を作成します。
Blender でハイポリゴンの平面を作成する。
画像からハイポリゴンのメッシュを作成することにします。
プリミティブ追加 > 平面 から平面を作成し、編集モードから 3Dビュー > メッシュ > 辺 > 細分化 を選択し 分割数 に 100 を入力します。
100 x 100 のマトリックスが出来ましたがこれでは解像度が足りないので 再度 細分化を選び 4~5 辺りで分割します。仮に606 x 606 のマトリックスにします。
606 x 606 のマトリックス で メモリ使用量 が 約 500 M ほどになります。
ディスプレイスを利用し文字を浮き上がらせる。
プロパティ窓からテクスチャを選択し、新規作成ボタンを押します。
画像から開くを押し、先程作成した文字画像を選択します。
次に プロパティ窓から モデファイアー を選択し
追加から ディスプレイスを選択します。
ディスプレイスはハイトマップからメッシュを作成するものと認識してます。
テクスチャの項目のチェックアイコンを押し 先程読み込んだ 文字画像を選択します。
中間レベルは 0でいいでしょう。0起点で盛り上げます。
強さは 0.1 位がちょうどいいです。
この時点ではまだ適用されていません。ビューに変化がない場合は編集モードになっていないか確認してください。オブジェクトモードでないと確認できません。
問題なければ適用ボタンを押してください。メッシュ化されます。
スムージングしなめらかにする
次にスムージングします。
編集モードにし、3Dビュー > メッシュ > 頂点のスムーズ を選択。
頂点スムーズ設定が出るので、
スムージング 1.0
リピート 50
くらいに設定します。
スムージング処理はメッシュをとろけさせるような処理で、リピートは何回繰り返すかになります。この処理は結構時間がかかるのでリピート数を上げすぎるとかなりの時間がかかります。
下の画像のように滑らかになっていれば成功です。
スムージングすると若干中心に収縮するので、寸法を x 2.0 y 2.0 z 0.1 に設定してサイズを合わせます。
その後 Ctrl + A で メニューを開き 適用 > 拡大縮小 を選択し、メッシュに反映させます。