アート アセット ベストプラクティス ガイド
Maya からのオブジェクトのインポート

3D アプリケーションからモデルをどのようにインポートしますか?

Unity に3D モデルをインポートするときは,ファイルをプロジェクト ウィンドウへドラッグします。

Inspector の Model タブで: Unity は最も主要な 3D アプリケーションからのモデルのインポートをサポートします。

3Dフォーマット

Unityへメッシュをインポートする方法は主に2つのファイルで行うことが出来ます:

  1. エクスポートされた.FBXや.OBJなどの3Dファイルフォーマット
  2. .Maxの3D Studio Max, または.BlendのBlenderのファイル形式である 3Dアプリケーションの専用ファイル

どの方法でもUnityにメッシュに取り込むことができますが,どれを選ぶにあたって考慮すべき事があります。

エクスポートされた3Dファイル形式

Unityは.FBX ,.dae (Collada),.3DS,.dxf および.obj のFBXエクスポータファイルを読み込むことができ,FBXエクスポータはここ にある多くのアプリケーションでobjやColladaのエクスポーターを見つけることが出来ます。

長所:

  • 必要なデータのみエクスポート
  • 検証可能なデータ(Unityにインポートする前に3Dパッケージに再インポートできます)
  • 一般的にファイルサイズが小さい
  • モジュール単位のアプローチを推進できる(例.Collisionの型や相互関係性ごとにことなるコンポーネント)
  • 直接サポートしていないその他の3Dパッケージで独自形式があっても,この形式にすればサポートできます

短所:

  • プロトタイプや反復作業としては時間のかかるパイプラインとなります
  • ソース(作業ファイル)とゲームデータ(例えば,FBXでエクスポート)の間のバージョン管理を見失いないがちになります

独自の3Dアプリケーションファイル形式

Unityが変換を通してインポートできるファイル形式: Max , Maya , Blender , Cinema4D , Modo , Lightwave , Cheetah3D ,たとえば .MAX , .MB , .MA など

長所:

  • 反復作業の時間がかからない(ソースファイルを保存すればUnityが自動で再インポート)
  • 最初の作業がシンプル

短所:

  • Unityプロジェクトを使用しているすべてのマシンに当該ソフトウェアのライセンスをインストールする必要があります
  • ファイルは,不要なデータにより肥大化することがありえます
  • 容量の大きいファイルはUnityの更新を遅らせます
  • 検証が少ないデータ(問題のトラブルシューティングが困難)

3D パッケージごとの特定のインポート方法に関する内容については,次のページを参照して下さい:

テクスチャ

  • エクスポートされたメッシュの隣にある Textures と呼ばれるフォルダにテクスチャを格納する。 これにより,Unity は常にテクスチャを検索し,そのテクスチャを生成されたマテリアルに自動的に接続できます。 詳細については,Textures を参照してください。

3Dフォーマット

Unityへメッシュをインポートする方法は主に2つのファイルで行うことが出来ます:

  1. エクスポートされた.FBXや.OBJなどの3Dファイルフォーマット
  2. .Maxの3D Studio Max, または.BlendのBlenderのファイル形式である 3Dアプリケーションの専用ファイル

どの方法でもUnityにメッシュに取り込むことができますが,どれを選ぶにあたって考慮すべき事があります。

エクスポートされた3Dファイル形式

Unityは.FBX ,.dae (Collada),.3DS,.dxf および.obj のFBXエクスポータファイルを読み込むことができ,FBXエクスポータはここ にある多くのアプリケーションでobjやColladaのエクスポーターを見つけることが出来ます。

長所:

  • 必要なデータのみエクスポート
  • 検証可能なデータ(Unityにインポートする前に3Dパッケージに再インポートできます)
  • 一般的にファイルサイズが小さい
  • モジュール単位のアプローチを推進できる(例.Collisionの型や相互関係性ごとにことなるコンポーネント)
  • 直接サポートしていないその他の3Dパッケージで独自形式があっても,この形式にすればサポートできます

短所:

  • プロトタイプや反復作業としては時間のかかるパイプラインとなります
  • ソース(作業ファイル)とゲームデータ(例えば,FBXでエクスポート)の間のバージョン管理を見失いないがちになります

独自の3Dアプリケーションファイル形式

Unityが変換を通してインポートできるファイル形式: Max , Maya , Blender , Cinema4D , Modo , Lightwave , Cheetah3D ,たとえば .MAX , .MB , .MA など

長所:

  • 反復作業の時間がかからない(ソースファイルを保存すればUnityが自動で再インポート)
  • 最初の作業がシンプル

短所:

  • Unityプロジェクトを使用しているすべてのマシンに当該ソフトウェアのライセンスをインストールする必要があります
  • ファイルは,不要なデータにより肥大化することがありえます
  • 容量の大きいファイルはUnityの更新を遅らせます
  • 検証が少ないデータ(問題のトラブルシューティングが困難)

モデル

Unity プロジェクトの Assets フォルダに配置されたモデル ファイルは自動的にインポートされ Unity アセットとして格納されます。

モデル ファイルには 3D モデルとしてキャラクター,建物,家具などを含むかもしれません。モデルは複数のアセットとしてインポートされます。プロジェクト ビューで主なインポートされたオブジェクトがモデル プレハブとなります。通常は複数のメッシュ オブジェクトがモデル プレハブから参照されます。

モデル ファイルには,このモデルまたは他のモデルに使用できるアニメーション データを含む場合があります。アニメーション データはひとつ以上のアニメーション クリップとしてインポートされます。

 Mesh FilterとMesh Rendererの組み合わせによりモデルが画面に表示される
Mesh FilterMesh Rendererの組み合わせによりモデルが画面に表示される

メッシュのインポート設定

モデルファイルの Import Settings は,モデルが選択されたときに,FBXインポータインスペクタの Model タブに表示されます。この設定は メッシュ法線マップ ,インポートされた マテリアル に影響を与えます。設定はディスク上のアセットごとに適用されますので,別の設定を持ったアセットでが必要な場合は複製したうえで適切にリネームします。

最初はデフォルト設定で十分ですが,ゲームオブジェクトで実現したいことによっては,以下の設定を知る価値があるかもしれません。

たとえば,よくある設定変更を挙げると:

  • Scale - Scaleは,Unity世界での1単位と3Dモデリングツールの 1 単位を換算するために使用され,ファイル全体を拡大・縮小します。通常は,単に1に設定することができます。Unity の 物理エンジンでは 1 単位が 1 メートルに相当することに留意して下さい。正確な物理計算が必要な場合には元のモデリング アプリケーションで正しくスケールを行うことが重要です。もしそれが出来ない場合,メッシュの修正やモデルのスケールはここで調整することが出来ます。
  • Generate colliders - モデルが他のオブジェクトと衝突するようにするための衝突メッシュを生成します。
  • Material Naming と Search - マテリアルを自動的にセットアップ,テクスチャ認識するのに役立ちます。
FBXインポータ インスペクタ:Modelタブ
FBXインポータ インスペクタ:Modelタブ
プロパティ: 特徴:
Meshes
Scale Factor Unity の物理特性システムは,ゲーム世界での 1 メートルを,インポートされたファイルでの 1 単位と考えます。 異なるスケールでモデリングしたい場合は,ここで修正します。異なる3Dパッケージのデフォルトは次のとおりです。 (.fbx,.max,.jas,.c4d) = 0.01,(.mb,.ma,.lxo,.dxf,.blend,.dae) = 1,(.3ds) = 0.1
Mesh Compression この値を上げると,メッシュのファイル サイズが小さくなりますが,異常が生じる可能性があります。 メッシュが解凍後と違いすぎないように,できる限り高い値に設定します。これは,ゲームサイズの最適化 に便利です。
Read/Write Enabled ランタイム時にメッシュを書込可能とし,メモリ内でコピーが作成されます。このオプションをオフにすると Unity がゲームのメッシュデータをアンロードできるためメモリが節約できます。しかし実行時に不均等なスケールでメッシュをスケールまたはインスタンス化するとインポート設定で “Read/Write Enabled” を有効化しないといけない場合があります。それは不均等なスケールはメッシュデータをメモリ保持する必要があるためです。通常,ビルド時にこれは検知されますがメッシュが実行時にスケールまたはインスタンス化すると手動で設定する必要があります。そうしない場合ゲームのビルド時に正しくレンダリングされないかもしれません。
Optimize Mesh このオプションは,三角形メッシュが表示される順序を決定します。
Import BlendShapes メッシュに自動的メッシュコライダーをアタッチしてインポート。背景の物体の衝突メッシュを簡易にを生成するのに便利,一方で移動しない物体では避けるべきです。
Generate Colliders Lightmapped オブジェクトが間違えた UV チャンネルを選択した場合に使用します。 これにより,1 次および 2 次 UV チャンネルがスワップされます。
Swap UVs ライトマップされたオブジェクトが間違ったUVチャンネルを拾い上げている時に使用します。これはプライマリとセカンダリのUVチャンネルを入れ替えます。
Generate Lightmap Lightmapping に使用する UV2 を作成するために使用します。
        Advanced Options ライトマップUV を参照して下さい。.
Normals & Tangents
Normals 法線を計算するかどうか,およびどのように計算するかを定義します。これは,ゲームサイズの最適化 に便利です。
        Import デフォルトのオプション。ファイルから法線をインポートします。
        Calculate Smoothing angle」に基づいて,法線を計算します。選択すると,「Smoothing Angle」が有効になります。
        None 法線を無効にします。 このオプションは,メッシュがマップされた法線およびリアルタイムのライティングの影響を受けている法線でない場合に使用します。
Tangents 接線および従法線を計算するかどうか,およびどのように計算するかを定義します。これは,ゲームサイズの最適化 に便利です。
        Import ファイルから接線および従法線をインポートします。このオプションは,FBX,Maya および 3dsMax ファイルにのみと,法線がファイルからインポートされる時にのみ使用できます。
        Calculate デフォルトのオプション。 接線および従法線を計算します。接線および従法線を計算します。このオプションは,法線がインポートまたは計算されるかのいずれかの場合でのみ使用できます。
        None 接線および従法線を無効にします。メッシュに接線はないため,法線をマップしたシェーダとは使用できません
Smoothing Angle 端の鋭さの度合いを硬い端として設定します。これは,法線のマップ接線を分割するのにも使用されます。
Split Tangents 法線マップライティングがメッシュ上の継ぎ目で分割される場合に,これを有効にします。 通常これはキャラクターにのみ適用されます。通常これはキャラクターにのみ適用されます。
Materials
Import Materials 無効にするとマテリアルが生成されなくなります。デフォルトのDiffuseマテリアルが代わりに使用されます。
Material Naming Unityのマテリアルの命名を制御します
        By Base Texture Name Unityのマテリアルを命名する際に基準とするインポートされたマテリアルのDiffuseテクスチャ。Diffuseテクスチャがマテリアルに割り当てられていない場合,Unityはインポートされたマテリアルの名前を使用します。
        From Model’s Material Unityのマテリアルを命名する際に基準となるインポートされたマテリアル。
        Model Name + Model’s Material Unityのマテリアルを命名する際にモデルファイル名とインポートされたマテリアル名の組み合わせが使用されます。
        Texture Name or Model Name + Model’s Material (Obsolete) Unityのマテリアルを命名する際にインポートされたマテリアル名のDiffuseテクスチャが使用されます。Diffuseテクスチャがマテリアルに割り当てられていない場合,Unityはインポートされたマテリアルの名前を使用します。モデル名とモデルのマテリアル名の組み合わせを使用します。このオプションは,Unity 3.4(およびそれ以前のバージョン)の動作と下位互換性があります。推奨設定はBy Base texture Nameであり,もっともシンプルで一貫性のある動作を伴います。
Material Search Material Namingオプションで定義された名前でUnityがマテリアルを検索する場所を制御します:
        Local Unityは,マテリアルと同じフォルダ内でのみ(すなわちモデルファイルと同一フォルダ),同じ名前のマテリアルがあるかチェックします。
        Recursive-Up Unityは,マテリアルと同じフォルダ内,およびAssetsフォルダに到達するまで,その全ての上位フォルダで,同じ名前のマテリアルがあるかチェックします。
        Everywhere Unityは,プロジェクト フォルダ全体から同じ名前のマテリアルがあるかチェックします。

以下も併せて参照してください。

アート アセット ベストプラクティス ガイド
Maya からのオブジェクトのインポート