夜風のMixedReality

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

fbxの保持できる情報とUnityでのfbxからマテリアルのエクスポート

本日はUnity枠です。

先日お仕事でほかのエンジニアと話している中で、Unityにインポートしたfbxのマテリアルがパラメータの変更やShaderの変更ができないという話題になりました。

fbxという形式やUnity内でのマテリアルのUnpackに関して今回まとめます。

〇FBXとは?

FBXはFilmboxというファイル名でその名の通りFilmboxというソフトで扱われるデータ形式でした。(Wardにおける .wordのようなもの)

これはカナダの会社の製品でしたが、Autodesk社によって買収され、現在はMotionBuilderとして提供されています。

area.autodesk.jp

MotionBuilderはアニメーション作成やモーションキャプチャのデータに特化したソフトウェアで、映画撮影や3Dのゲーム等で用いられています。

fbxはこのモーションキャプチャデータを扱うためにもともと使用されていた拡張子になります。

2022年現時点でfbxは次の情報を保持できます。

メッシュ

アーマーチュア

ライト

カメラ

マテリアル

テクスチャ

アニメーション

fbxをUnityなどにインポートすることによってそれぞれ対応するコンポーネントに置き換えられます。

例えばカメラはUnityのカメラコンポーネントに置き換わります。

またBlender等で作成したモデルをエクスポートするときなどにも関わってくるのですが、fbxではShader情報をエクスポートすることはできません。(その他ほぼすべての拡張子も同様)

Shaderは実行環境やソフトウェアに依存しているため、BlenderではBlenderのUnityではUnityの独自のShaderに置き換えられます。

Unityの場合デフォルトでUnityStandardShader、URPの場合はUnivarsal/Litシェーダーに置き換えられます。

〇Unityでのfbxの扱い

Unityへfbxモデルをインポートすることでマテリアルもインポートされます。

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

しかし、デフォルトの状態ではインポートされたマテリアルのパラメータを編集することができません。

Unity内でfbxが保持しているマテリアルをエクスポートするためにはAssetsフォルダ内でfbxファイルを選択しインスペクターウィンドウから[Material]タブ→[Extract Materials]を選択します。

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

フォルダが開き、エクスポート先を指定します。

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

これによってAssets内の指定したフォルダにマテリアルがエクスポートされます。

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

一度[Extract Materials]を実行することでfbxからマテリアルが完全にエクスポートされるため、以前は変更不可であったマテリアルパラメーターが編集可能になっています。

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

以上でfbxの保持できる情報とUnityでのマテリアルのエクスポートに関してまとめました。