夜風のMixedReality

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

Blenderでテクスチャをモデルファイルに埋め込んでエクスポートする

本日はBlender枠です。

今回はBlenderでモデルをエクスポートする際にテクスチャを埋め込んでエクスポートしていきます。

 通常BlenderからエクスポートしたモデルをUnityなどで使用する場合は別途テクスチャをインポートして、マテリアルに紐づけモデルに適応するという手順が行われます。

 これはソフトウェア間でモデルの扱いのルール(レンダリングパイプライン)が異なるため、マテリアルのデータを互換を持って使用できないためです。

 しかしある制約下ではモデルにテクスチャを埋め込んで一つのデータとしてエクスポートすることができます。

 これはテクスチャを別途ソフトウェアにインポートする必要がないため非常に取り回しが良くなります。

今回はどのような条件でBlenderからエクスポートする際にテクスチャが埋め込まれ、どのような条件下でテクスチャの参照が外れてしまうのかが気になったので調べてみることにしました。

〇テクスチャを埋め込んだモデル

 テクスチャを埋め込んだモデルはglbやfbxの形で入手することができます。

 簡単な例としてはWindows標準搭載のペイント3Dから入手するモデルです。

 

 このモデルをglbの形で出力しダブルクリックすることでテクスチャ込みのモデルを出力できます。

出力されたモデルはglbファイルの中にテクスチャも格納されていることで別途テクスチャを参照する必要がなくなります。

 これをBlenderで作るためには以下の条件を満たしている必要があります。

 ・Shadingウィンドウでテクスチャ→プリンシプルBSDFシェーダーのBaseColorに接続→マテリアル出力

 具体的には次のような状態を指します。

 

また次のようなノーマルマップのNormalMapノードであれば問題なく埋め込むことができます。

逆にこのように複数のシェーダーを使用していたり複雑なノードを使用している場合はテクスチャがモデルに含まれません。

当然ですが独自のシェーダーを使用している場合も埋め込まれません。

結論としてプリンシプルBDSFシェーダーとシンプルな構造のマテリアルを使用している場合のみテクスチャが埋め込まれたモデルで使用できます。

このあたりのドキュメントがあればよかったのですが見つけることはできませんでした。

本日は以上です。