アートアセットベストプラクティスガイド
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 をインストールする必要があります。

Models

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

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

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

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

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

モデルファイルの Import Settings は、モデルが選択されると、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
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 はどんなタイプのポリゴン (三角形以上の多角形) でもインポートできます。5 つ以上の頂点を持つポリゴンは常に三角形に変換されます。クアッドは Keep Quads が無効の時のみ、三角形に変換されます。テッセレーションシェーダーを使用する場合、クアッドのほうが、ポリゴンより好ましい場合があります。 詳しくは DX11 / OpenGL コアテッセレーションのサーフェースシェーダー を参照してください。
Weld Vertices これを有効にすると、空間の同じ位置を共有する頂点を結合することができます。これによって、メッシュの全体的な数を削減して頂点数を最適化できます。このオプションはデフォルトで有効になっています。

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

メッシュをインポートするときに、この最適化を無効にする必要があることがあります。例えば、同じ位置を占める重複した頂点があるメッシュを意図的に作成し、スクリプトで個々の頂点や三角形のデータを読み込んだり操作したりしたい場合などです。
Swap UVs これを有効にすると、ライトマップされたオブジェクトが間違った UV チャンネルを選択している場合に使用します。これにより、最重要な UV チャンネルと補助的な UV チャンネルを入れ替えます。
Generate Lightmap UVs ライトマップに使用する 2 つめの 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 これを無効にすると、マテリアルが生成されなくなります。デフォルトの拡散マテリアルが代わりに使用されます。
Material Naming Unity のマテリアルの命名を制御します
By Base Texture Name インポートされたマテリアルの拡散テクスチャの名に基づいて、Unity のマテリアルを命名します。拡散テクスチャがマテリアルに割り当てられていない場合、Unity はインポートされたマテリアルの名前を使用します。
From Model’s Material インポートされたマテリアルの名前に基づいて Unity のマテリアルを命名します。
Model Name + Model’s Material モデルファイルとインポートしたマテリアルの名前を組み合わせたものに基づいて Unity のマテリアルを命名します。
Material Search Material Naming オプションで定義された名前でマテリアルを検索するときに、検索する場所を定義します。
Local Unity は、ローカルの Materials フォルダー (つまり、 Materials サブフォルダーのことで、モデルファイルと同じフォルダーです) 内でのみマテリアルを検索します 。
Recursive-Up Unity は、上位に移動しながら Assets フォルダーまでのすべての親フォルダー内の Materials サブフォルダーすべてを検索します。
Everywhere Unity は、プロジェクトフォルダー全体でマテリアルを検索します。



関連項目

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