アートアセットベストプラクティスガイド
FBX エクスポートガイド

3D アプリケーションからモデルをインポートする方法

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

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

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

テクスチャ

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

3D フォーマット

Unity にメッシュをインポートするには、主に以下の2種類のファイル形式を使います。

  1. .FBX や .OBJ などの エクスポートした 3D 形式のファイル
  2. 3D アプリケーション専用形式のファイル(3D Studio Maxの.Maxファイルや、Blenderの.Blendファイルなど)

どちらの方法でもメッシュをインポートすることはできますが、どちらを選ぶべきかは、検討が必要です。

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

Unity は .FBX.dae (Collada)、.3DS.dxf および .obj の FBX エクスポーターファイルを読み込むことができます。FBX エクスポーターは ここ に、obj や Collada ファイルへのエクスポーターは、さまざまなアプリケーションで用意されています。

長所:

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

短所:

  • プロトタイプや反復作業をするときには時間のかかるパイプラインとなります
  • ソース(作業ファイル)とゲームデータ(例えば、エクスポートされたFBX)の間のバージョン管理を複雑になりやすくなります。

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

Unity が変換してインポートできるファイル: MaxMayaBlenderCinema4DModoLightwaveCheetah3D、たとえば .MAX.MB.MA など

長所:

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

短所:

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

モデル

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

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

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

 メッシュフィルター と Mesh Rendererの組み合わせによりモデルが画面に表示される
メッシュフィルターMesh 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” を有効化しないといけない場合があります。それは不均等なスケールはメッシュデータをメモリ保持する必要があるためです。通常、ビルド時にこれは検知されますがメッシュが実行時にスケールまたはインスタンス化すると手動で設定する必要があります。そうしない場合ゲームのビルド時に正しくレンダリングされないかもしれません。実行時に MeshCollider を作成する必要がある場合もこのことが適用されます。
Optimize Mesh このオプションは、三角形メッシュが表示される順序を決定します。
Import Blendshapes このオプションは、あなたのメッシュのブレンドシェイプをインポートすることができます。
Generate Colliders Lightmapped オブジェクトが間違えた UV チャンネルを選択した場合に使用します。これにより、1 次および 2 次 UV チャンネルがスワップされます。
Swap UVs ライトマップされたオブジェクトが間違った UV チャンネルを拾い上げている時に使用します。これはプライマリとセカンダリの UV チャンネルを入れ替えます。
Generate Lightmap UVs Lightmapping に使用する UV2 チャンネルを作成するために使用します。グローバルイルミネーション を参照してください。
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 のマテリアルを命名する際にモデルファイル名とインポートされたマテリアル名の組み合わせが使用されます。
Material Search Material Naming オプションで定義された名前で Unity がマテリアルを検索する場所を制御します。
Local Unity は、マテリアルと同じフォルダー内でのみ(すなわちモデルファイルと同一フォルダー)、同じ名前のマテリアルがあるかチェックします。
Recursive-Up Unity は、マテリアルと同じフォルダー内、および Assets フォルダーに到達するまで、そのすべての上位フォルダーで、同じ名前のマテリアルがあるかチェックします。
Everywhere Unity は、プロジェクトフォルダー全体から同じ名前のマテリアルがあるかチェックします。

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

アートアセットベストプラクティスガイド
FBX エクスポートガイド