この記事では、リトポロジー後のモデル用に、元のモデルからテクスチャを作成する「ベイク」の過程をご紹介します。
なぜベイクが必要なのか
以前の記事で、頂点数を減らすリトポロジーの方法についてご説明しました。
リトポロジー後のモデルは、テクスチャがない状態です。
元のモデルと違うUV配置を持つことになるので、元のモデルのテクスチャをそのまま適用してもうまくいきません。
そこで使うのが、Blenderの「ベイク」という機能です。
ベイクはライトなど重い演算処理がある場合に、あらかじめ陰影をモデルのテクスチャとして焼き付けておくことで演算の負担をなくす、といった用途でよく使われます。
今回はこの機能を使って、元のモデルのテクスチャをリトポロジー後のモデルのテクスチャに焼き付けていきます。
作業手順
※元のモデル=ハイポリモデル、リトポロジー後のモデル=ローポリモデル、と表記します。
ローポリを読み込みUV展開
「File」の「Import」からローポリモデルをインポートします。今回はInstant Meshesで約3,000頂点に抑えたモデルを利用します。
続いてUV展開を実行します。「UV Editing」のタブに移動し、編集モードに切り替え頂点を全選択します。「UV」から「Smart UV Project」を選択します。
ローポリモデル用に新しくテクスチャを作成します。画面左側の「New」をクリックします。
画像サイズは、ハイポリモデルのテクスチャサイズと同サイズにします。
マテリアルにテクスチャノードを追加
「Shading」タブに移動します。ここではマテリアルノードの編集ができます。
下画面(ノードエディタ)上で、Shift+Aキーを押し「Texture」から「Image Texture」を選択します。
Image Textureノードが追加されました。「New」の左にある画像アイコンをクリックし、先ほど追加したテクスチャの名前を選択します。
テクスチャノードとマテリアルノード(プリンシプルBSDF)を接続する必要はありません。
ハイポリを読み込む
「File」の「Import」からハイポリモデルをインポートします。
ハイポリモデルがローポリモデルに重なって読み込まれました。位置は必ず2つのモデルが重なるようにしてください。
ハイポリモデル、ローポリモデル両方とも右クリックで表示されるメニューから「Shade Smooth」を選択しておきましょう。
これにてベイクの準備は完了です。
ベイク
オブジェクトモードでハイポリモデル→ローポリモデルの順に選択し、画面右側からカメラのアイコンをクリックします。
「Bake」の項目から「Selected to Active」を選択します。「Ray Distance」は高低をどこまで再現するかという項目です。綺麗にベイクできなかった際に値を上げて試してみてください。今回は「0.1m」に設定します。
「Bake」をクリックすると、ベイクが開始されます。画面最下部に進捗バーが出ることを確認してください。
進捗バーが100%になったらベイク完了です。「UV Editing」タブから作成されたテクスチャを確認できます。
テクスチャノードを接続する
左画面の「Image」から「Save As…」を選択し、テクスチャを外部ファイルとして保存します。外部ファイルとして保存することで、テクスチャがファイル内部で失われないようにします。
テクスチャノードとマテリアルノードを接続します。テクスチャノードのファイルアイコンから、先ほど外部に保存したテクスチャファイルを読み込みます。
※Blender2.80の場合、「Linear」の上の項目が「Color」になっていることを確認してください。
テクスチャが反映されました!
ハイポリモデル(左)と比較しても、違和感なくテクスチャが貼り付けられていることが確認できました。
おつかれさまでした。これでベイクは完了です。
Blender上の3DモデルをSTYLYにアップロードできます。その方法は以下の記事をご参照ください。