夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Blenderで複数のマテリアルを一つのマテリアルにまとめる。

本日はBlender調査枠です。

Blenderではベイクを行うことでそのオブジェクトのマテリアル情報をテクスチャに焼きこむことができます。

redhologerbera.hatenablog.com

ベイクを行うことであらかじめライト情報を含んだテクスチャを使用したUnlitな表現が行えるなど、軽量化、最適化においてアプリケーションのパフォーマンスを上げることができます。

今回はベイクを使用して複数のマテリアルを一つのマテリアルに統合します。

〇複数のマテリアルを一つのマテリアルにまとめる。

今回は以前作成した筆者のオリジナルガンダムの3Dモデルの頭部で行っていきます。

f:id:Holomoto-Sumire:20211018200306p:plain

〇ベイクの準備

①ベイク用にターゲットの頭部を包むように球を作成します。

f:id:Holomoto-Sumire:20211018200535p:plain

②球のメッシュを反転させます。

f:id:Holomoto-Sumire:20211018200657p:plain

③球のマテリアルのシェーダーを[放射]に切り替えます。

f:id:Holomoto-Sumire:20211018200930p:plain

以上でベイクするための光源が完成しました。

〇UV展開

ベイクを行ってテクスチャに焼きこむためにはUV展開を行う必要があります。

しかしすでにUV展開を行っておりテクスチャを使用している場合UV展開をやり直すことで見た目が大きく変わってしまうことがあります。そのため新たな[UVMap]を作成します。

①メッシュタブから[UVMap]を展開し、[+]アイコンを選択し新たに[UVMap]を追加します。

f:id:Holomoto-Sumire:20211018201518p:plain

これで新たなUVレイヤーが作成されます。

f:id:Holomoto-Sumire:20211018201650p:plain

②[UVEditer]を開きUVを作成した[UVマップ]に切り替えることで新たなUVとして使用できます。

f:id:Holomoto-Sumire:20211018201858p:plain

③新たなUVマップでUV展開を行います。 

f:id:Holomoto-Sumire:20211018202003p:plain

既に展開しているUVとは違うレイヤーのためすでにある見た目を変えることはないです。

〇ベイク

①オブジェクトにアタッチされているマテリアルを選択し[Shading]を開き[追加]で[画像テクスチャ]を作成します。

f:id:Holomoto-Sumire:20211018202441p:plain

②新規テクスチャを作成します。

f:id:Holomoto-Sumire:20211018202532p:plain

③すべてのオブジェクトにアタッチされているマテリアルに[画像テクスチャ]を作成し②で作成したテクスチャを設定します。

f:id:Holomoto-Sumire:20211018202757p:plain

④レンダータブから[ベイク]を選択することでベイクが始まります。

f:id:Holomoto-Sumire:20211018203606p:plain

処理が終わると結果が出力されます。

f:id:Holomoto-Sumire:20211018203715p:plain

⑤最後にメッシュタブから[UVMap]を開き、新たに作成したものではないUVマップを削除します。

f:id:Holomoto-Sumire:20211018203832p:plain

以上で複数のマテリアルを一つにまとめることができました。

Unityで見てみると一つのマテリアルと一枚のテクスチャだけで再現できていることが確認できます。

f:id:Holomoto-Sumire:20211018204330p:plain