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

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

3D モデルを Unity にインポートするには 2 つの方法があります。

  • ファイルブラウザから 3D モデルファイルを直接ドラッグして Unity の Project ウィンドウにドロップします。
  • 3D モデルファイルを Project ウィンドウの Assets フォルダーにコピーします。

Project ウィンドウでファイルを選択して Inspector ウィンドウで Model タブを開きインポートオプションを設定します。詳しくは モデル を参照してください。

Unity はよく使用されるたいていの 3D アプリケーションからのモデルインポートをサポートします。特定の3D パッケージからインポートする詳しい説明は、以下のページを参照してください。

テクスチャ

  • テクスチャは、Unity の Project ウィンドウにある Assets フォルダー内の Textures フォルダーに格納します(Mash の近く)。これにより、Unity は常にテクスチャを検索し、そのテクスチャを生成されたマテリアルに自動的に関連付けできます。詳細については、Textures を参照してください。

3D フォーマット

Unity は 2 つの異なる形式のファイルでインポートした メッシュ をサポートします。

  1. .FBX や .OBJ などの エクスポートされた 3D ファイル形式 。3D モデリングウェアは一般的な形式でエクスポートすることが可能です。このファイルは、多種多様なソフトウェアでインポートしたり編集したりすることができます。
  2. 3D やデジタルコンテンツクリエーション (DCC) のプロプライエタリアプリケーションファイル3D Studio Max の .max ファイル形式、Blender の .blend ファイル形式などが含まれます。プロプライエタリファイルはそれを作成したソフトウェアでのみ編集可能です。それらのファイルは一般的に、最初に変換してインポートしないと、他のソフトウェアで直接編集することはできません。SketchUp の .skp ファイルは例外で、SketchUp からでも Unity からでも読み込むことができます。

Unity は両方の形式のファイルをインポートできます。各形式に長所と短所があるため、どちらを選ぶか検討が必要です。

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

Unity は .fbx、.dae (Collada)、.3DS、.dxf、.obj、.skp ファイルを読み込むことができます。3D ファイルのエクスポートに関しては、3D モデリングソフトウェアのドキュメントを参照してください。

長所:

  • Unity にモデル全体をインポートする代わりに、必要な部分だけをインポートできます。
  • エクスポートしたジェネリックファイルは、エクスポートしていないファイルよりもサイズが小さいことがあります。
  • エクスポートしたジェネリックファイルを使用すると、コリジョンの型や相互関係性ごとに異なるコンポーネントを使用するなど、モジュール単位でのアプローチが推進されます。
  • Unity が直接サポートしていないソフトウェアのファイルも読み込むことができます。
  • すべての情報が正しくエクスポートされたのを確認するために、3D ファイル (.fbx, .obj) は、エクスポート後に 3D モデリングソフトウェアに再インポートが可能です。

短所

  • 元のファイルを変更する場合は、モデルを再エクスポートする必要があります。
  • ソースファイルと Unity にインポートしたファイル間のバージョン管理に特に注意が必要です。

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

Unity は Max, Maya, Blender, Cinema4D, Modo, Lightwave, Cheetah3D など DCC ソフトウェアのプロプライエタリファイルをインポートできます。これらのファイルはインポートの過程で Unity によって .fbx ファイルに変換されます。

長所:

  • 元のモデルで行われた更新は、自動的に Unity にインポートされます。
  • 最初は簡易ですが、開発とともに複雑化します。

短所

  • Unity プロジェクトを使用するすべてのマシンにライセンスが有効なソフトウェアをインストールする必要があります。
  • Unity プロジェクトを使用するすべてのマシンで、共通のソフトウェアバージョンを使用する必要があります。 異なるソフトウェアバージョンを使用すると、3D モデルをインポートするときにエラーや予期せぬ挙動の原因となります。
  • ファイルが不要なデータで満杯になることがあります。
  • サイズの大きなファイルは Unity プロジェクトのインポートやアセットの再インポートの速度を遅くすることがあります。なぜなら、 モデルを Unity にインポートするとき DCC ソフトウェアをバックグラウンドプロセスとして実行しなければならないからです。
  • Unity は、インポートの過程で内部的にプロプライエタリファイルを .fbx にエクスポートします。このため、.fbx データを検証し問題をトラブルシュートすることが難しくなります。

ノート .ma, .mb, .max, .c4d, .blend ファイルとして保存されているアセットは、それらに対応する DCC ソフトウェアがコンピューターにインストールされていない限り、インポートすることができません。つまり、同じ Unity プロジェクトを作業するマシンすべてに正しいソフトウェアがインストールされていなければなりません。例えば、 Maya を使ってExampleModel.mb を作成し、あるプロジェクトにコピーしたとします。そのプロジェクトで作業する人は全員、コンピューターに Maya をインストールする必要があります。

Model Importer: Model

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

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

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

 メッシュフィルター と メッシュレンダラーの組み合わせによりモデルが画面に表示されます
メッシュフィルターメッシュレンダラーの組み合わせによりモデルが画面に表示されます

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

The Import Settings for a model file is displayed in the Model tab of the FBX importer’s Inspector window when the model is selected. These affect the Mesh and its Normals. Settings are applied per Asset on disk, so if you need Assets with different settings, make (and rename accordingly) a duplicate file.

プロパティー 機能
Meshes
Scale Factor Unity の物理システムは、ゲーム世界での 1 メートルを、インポートされたファイルでの 1 単位と考えます。異なるスケールでモデリングしたい場合は、ここで修正します。それぞれの 3D パッケージのデフォルトは次のとおりです。
.fbx, .max, .jas, .c4d = 0.01
.mb, .ma, .lxo, .dxf, .blend, .dae = 1
.3ds = 0.1
Use File Scale デフォルトのモデルのスケーリングを使用する場合は、これを有効にし、モデルにカスタムのスケーリング値を使用する場合は、無効にします。Unity の物理システムは、ゲーム世界での 1 メートルを、インポートされたファイルでの 1 単位と考えます。異なるスケールでモデリングしたい場合は、ここで修正します。
    File Scale このフィールドを使用して、モデルに使用したいスケールを設定します。
Mesh Compression この値を上げると、メッシュのファイルサイズを小さくしますが、異常が生じる可能性があります。解凍したメッシュの外見と違いすぎないように、できる限り高い値に設定します。これは、ファイルサイズの削減 に便利です。
Read/Write Enabled これを有効にすると、メッシュデータはメモリに維持されます。そのため、カスタムのスクリプトを読み込み、変更することが可能です。これを無効にすると、Unity はゲームのメッシュデータのコピーをアンロードできるので、メモリを節約できます。ただし、メッシュを メッシュコライダー と一緒に使う場合、このオプションを有効にしなければならないことがあります。以下の場合が含まれます。
- 負のスケーリング ((–1, 1, 1) など)
- シアートランスフォーム (例えば、回転させたメッシュにスケールした親トランスフォームがある場合)
Optimize Mesh これを有効にすると、メッシュで三角形がリストされる順序を Unity が決定します。
Import Blendshapes これを有効にすると、メッシュと一緒にブレンドシェイプをインポートすることが可能になります。
Generate Colliders これを有効にすると、メッシュは自動的にアタッチされたメッシュコライダーと一緒にインポートされます。これは、環境ジオメトリの衝突のメッシュを素早く生成するのに役立ちます。しかし、動かすジオメトリには使用を避けてください。
Keep Quads Unity はどんなタイプのポリゴン (三角形以上の多角形) をインポートできます。4 つ以上の頂点を持つポリゴンは常に三角形に変換されます。クアッドは Keep Quads が無効の時のみ、三角形に変換されます。テッセレーションシェーダーを使用する場合、クアッドのほうが、ポリゴンより好ましい場合があります。 詳しくは DX11 / OpenGL コアテッセレーションのサーフェースシェーダー を参照してください。
Index Format Defines the size of the mesh index buffer. Note: For bandwidth and memory storage size reasons, you generally want to keep 16 bit indices as default, and only use 32 bit when necessary.
Auto Allows Unity to choose whether to use 16 or 32 bit indices when importing a mesh, depending on the mesh vertex count. This is the default for assets added in Unity 2017.3 and onwards.
16 bit Makes Unity always use 16 bit indices when importing a mesh. If the mesh is larger, then it is split into <64k vertex chunks. Assets that already exist in projects made in Unity 2017.2 or previous versions will use this setting.
32 bit Makes Unity always use 32 bit indices when importing a mesh. This might be useful if you are doing GPU-based rendering pipelines (for example with compute shader triangle culling). This ensures that all meshes use the same index format and allows you to have simpler compute shaders, because they only need to handle one format.
Weld Vertices これを有効にすると、空間の同じ位置を共有する頂点を結合することができます。これによって、メッシュの全体的な数を削減して頂点数を最適化できます。このオプションはデフォルトで有効になっています。

ModelImporter クラスに WeldVertices パラメーターもあります。これはスクリプトを通して同じことを行います。

メッシュをインポートするときに、この最適化を無効にする必要があることがあります。例えば、同じ位置を占める重複した頂点があるメッシュを意図的に作成し、スクリプトで個々の頂点や三角形のデータを読み込んだり操作したりしたい場合などです。
Import Cameras Tick this checkbox to import cameras from your .FBX file
Import Lights Tick this checkbox to import lights from your .FBX file
Swap UVs これを有効にすると、ライトマップされたオブジェクトが間違った UV チャンネルを選択している場合に使用します。これにより、最重要な UV チャンネルと補助的な UV チャンネルを入れ替えます。
Generate Lightmap UVs ライトマップに使用する 2 つめの UV2 チャンネルを作成したい場合はこれを有効にします。詳しくは こちら を参照してください。
Normals & Tangents
Normals 法線を計算するかどうか、およびどのように計算するかを定義します。これは、ゲームサイズの最適化 に役立ちます。
Import デフォルトのオプション。ファイルから法線をインポートします。
Calculate Smoothing angle に基づいて、法線を計算します。選択すると、Smoothing Angle が有効になります。
None 法線を無効にします。メッシュが法線マッピングされている、または、リアルタイムのライティングの影響を受けているかのどちらでもない場合は、このオプションを使用します。
Normals Mode Define how the normals are calculated by Unity. This is only available when Normals is set to Calculate.
Unweighted Legacy The legacy method of computing the normals (prior to version 2017.1). In some cases it gives slightly different results compared to the current implementation. It is the default for all FBX prefabs imported before the migration of the project to the latest version of Unity.
Unweighted The normals are not weighted.
Area Weighted The normals are weighted by face area.
Angle Weighted The normals are weighted by the vertex angle on each face.
Area and Angle Weighted Default option. The normals are weighted by both the face area and the vertex angle on each face. This is the default option.
Tangents 接線および従法線を計算するかどうか、およびどのように計算するかを定義します。これは、ゲームの最適化する のに便利です。
Import ファイルから接線および従法線をインポートします。このオプションは、FBX、Maya、3dsMax ファイルと、法線がファイルからインポートされる時にのみ使用できます。
Calculate デフォルトのオプション。接線および従法線を計算します。接線および従法線を計算します。このオプションは、法線がインポートまたは計算されるかの場合でのみ使用できます。
None 接線および従法線を無効にします。メッシュに接線はないため、法線マップしたシェーダーとは使用できません
Smoothing Angle 端の鋭さの度合いをハードエッジとして設定します。これは、法線のマップ接線を分割するのにも使用されます。
Split Tangents これを有効にすると、法線マップライティングがメッシュ上の継ぎ目で分割されます。通常これはキャラクターにのみ適用されます。

Light and Camera import

Cameras

The following Camera properties are supported when importing Cameras from an .FBX file:

  • Field of View

  • Projection mode ( Orthographic or perspective )

  • Near plane distance

  • Far plane distance

Lights

The following light types are supported:

  • Omni
  • Spot
  • Directional
  • Area

The following light properties are supported:

  • Intensity
  • カラー
  • Range (the FarAttenuationEndValue is used if UseFarAttenuation is enabled)
  • Spot Angle (spot lights only)

  • 2017–09–04 限られた 編集レビュー で修正されたページ

  • 2017–12–05 限られた 編集レビュー で修正されたページ

  • Existing (pre Unity 5.6) functionality of Keep Quads first documented in User Manual 5.6

  • Normals Mode, Light and Camera import options added in Unity 2017.1 NewIn20171

  • Materials tab added in 2017.2 NewIn20172

  • Index Format property added in 2017.3 NewIn20173

関連項目

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