バッテラが如く

プログラミングしましょ!

【Unity】BlenderのマテリアルはUnityで引き継ぎげるのかを検証してく

この記事の情報は次のバージョンで動作確認しています。

  • MacOS Monterey (12.1)
  • Unity (2021.3.2f1)
  • Unity

    はじめに

    どうも、バッテラです。

    FBXファイルをUnityにインポートしたときにマテリアルの扱いに悩まされたので備忘録として残しておきます。

    前提

    検証方法について

    こちらの記事で作ったキューブをでどこまで引き継げるのかを検証していきます。

    www.m2game.net

    サーフェース

    ベースカラー

    ベースカラー だったところが Albedo として引き継がれていました。

    ノーマル

    ノーマル だったところが Normal Map として引き継がれていました。

    モデルインポート時にこのような警告が表示されました。

    [Fix now]とすることでTexture TypeNormal mapに変更されました。

    ノーマルマップ用のテクスチャ設定があったんですね。知らなかった。

    粗さ

    引き継げませんでした。

    ディスプレイスメント

    引き継げませんでした。

    まとめ

    カラー以外はほとんど引き継げなかった。残念な結果です!!

    理由もなんとなく分かりました。

    Blenderで作ったモデルをUnityでインポートするとStandard シェーダーが適用されます。しかしStandard シェーダーはあくまでもUnity用でありBlenderが使うシェーダーとは互換性がありません。まさにこれが答えですw

    マテリアルは"シェーダー + パラメータ"の複合体です。つまりシェーダーに依存した存在なんです。

    Blenderで使ったシェーダーをUnity用にエクスポートする機能が備われば解決するのかもしれませんが、それはUnityさん次第ですからね。今はどうしようもないです。