夜風のMixedReality

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

Blenderで影のみをベイクし、Unityで表示する

本日はUnity×Blender調査枠です。

Untiyでは様々なShaderを使用することができます。

この中で最も軽いShaderと呼ばれているShaderがUnlitなシェーダーです。 

これはライトの処理を計算しないため非常に軽量と呼ばれています。

今回はこのUnlitで影を表示する表現を行っていきます。

〇影のテクスチャ

Unlitで影を映りこませるためにはあらかじめ影をテクスチャに焼きこみそのテクスチャを使用する方法があります。

Blenderではこの作業をベイクと呼びます。

①Blenderでキューブを作成し今回はこのキューブを使用します。

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

②UV展開を行います。

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

Shardingタブへ切り替え[画面テクスチャ]ノードを作成します。

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

④新規テクスチャを作成します。解像度は大きい方が良いですが、それだけ処理の時間もかかるため今回は1024×1024で行います。

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

⑤レンダーエンジンを[Cycles]へ切り替えます。これはBlenderでテクスチャへの焼きこみを行うためには2.8以降の[EEVEE]では現在できないためです。

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

⑥ ③で作成したノードを選択した状態でベイクタブからベイクタイプを[]に設定し、[ベイク]ボタンを選択します。

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

⑦ベイクが完了すると画像エディタに結果が表示されます。

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

外部のフォルダに保存します。

⑧CubeをエクスポートしUnityへ配置します。ここではUnlit/TextureのShaderを使用しています。

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

⑨最後にマテリアルのテクスチャとして⑦で作成した画像をアタッチすることでUnlitで光の影響を受けないながらも影を表示することができました。

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

今回は一番簡単な形状の一つであるキューブでしたが、複雑な形状のモデルで行うことで負荷軽減を行うだけではなく、Blenderのレンダリング結果をそのまま使用することができグラフィックが向上します。