トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

export_fbx_Shade_to_Unity

Shade to Unity > ShadeからFBX形式でエクスポート&Unityに読み込み


ShadeからFBX形式でエクスポート&Unityに読み込み

Shadeで形状を作成

Unityに渡す形状をShadeで形状を作る際のルールとして、以下のようなものがあります。

  • 単位はしっかりあわせる
  • 形状名は半角英字または数値を使用する
  • 形状に割り当てる表面材質はマスターサーフェスにし、マスターサーフェス名は半角英字または数値を使用
  • 1形状はできるだけ1つのポリゴンメッシュ
  • 1形状に割り当てるマスターサーフェスはできるだけ1つ
  • 1形状に割り当てるテクスチャは、できるだけ拡散反射 x 1、法線マップ x 1

単位の確認と形状名/マスターサーフェス名で半角文字を使用する以外は厳守事項ではないですが、Unity(ゲーム)の場合は多数の形状を配置する可能性があるため、1つの形状にたくさんのマテリアルやテクスチャ画像のリソースを使うのはあまり望ましくないです。

可能であれば、複数形状で使用するマテリアルは共有する(Unityでマテリアル設定を行って割り当てるのもありです)、テクスチャも同じマッピングは共有する、とするように心がけたほうがよいと思います。

また、形状にテクスチャを貼り付ける場合はUVマップを指定するようにし、1形状で使用する模様は1枚のテクスチャにおさめるようにします。

FBXエクスポート

メインメニューの「ファイル」-「エクスポート」-「FBX」を選択。

Shade 14.xの場合のFBXエクスポータのエクスポートダイアログでは以下のようなオプションになっています。

デフォルト設定でそのまま出力して問題無しです。大事なのは、

  • 上方向の軸はY軸にする
  • スケールは1.0にする
  • FBXの単位は「cm」にする
  • 「バイナリ/テキスト」で「バイナリ」を選択
  • 表面材質タブの「イメージをFBXファイルに埋め込み」をOnにする

の5箇所です。

特に「FBXの単位」については、FBXで保存しているシーン単位をUnityは読み込んでくれず、常にcmと判断します。この指定がmmになっている場合は、Unityでは正しいサイズで読み込まれずに10倍の大きさになってしまうので注意です。

また、「バイナリ/テキスト」で「バイナリ」を指定し、表面材質タブの「イメージをFBXファイルに埋め込み」をOnにないと、Unity側でFBXインポート時にテクスチャが張られない状態で読み込まれます。

UnityにFBXをインポート

UnityのProjectウィンドウのツリー表示部のAssetsを右クリックし、Import New AssetからFBXファイルを指定してインポートします。

インポート直後は、マテリアルのShaderは「Diffuse」または「Bumped Diffuse」(法線マップを指定している場合)のため、必要にあわせて「Specular」「Bumped Specular」のShaderを指定することで光沢が付きます。

マテリアルは、Projectsウィンドウ内の読み込んだAssetsのMaterialsフォルダに展開されます。各マテリアルのInspectorウィンドウよりShaderを切り替えることができます。

マテリアル名がイメージ名になっている問題を回避

Unity上にFBXを読み込んだ直後は、マテリアル名が貼り付けているテクスチャ名になります。なぜこうなってるのかはよくわかってませんが、、、。

こうすると、Shade上でユニークなマテリアル名(マスターサーフェス名)をつけていてもその名称が参照されないのと、複数マテリアルでテクスチャを共有している場合に不正なマッピングになってしまいます。

これを回避するには、Assetとして読み込んだ形状のInspectorウィンドウで「Material Naming」で「From Models Material」を選択するようにします。その後、「Apply」ボタンを押して確定。

こうすると、マテリアル名はFBXで保存されている名称が割り当てられます。間違いのないように、FBX読み込み時はこの指定を行うほうが無難かもしれません。


Shade to Unity > ShadeからFBX形式でエクスポート&Unityに読み込み

最終更新時間:2013年10月05日 20時03分43秒

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.