モデルを選択すると、モデルファイルの Import Settings (インポート設定) が Inspector ウインドウの Model タブに表示されます。これらの設定は、モデル内に格納されるさまざまな要素やプロパティに影響します。Unity はこれらの設定を使用して各アセットをインポートします。ですから、設定を調整しプロジェクト内の様々なアセットに適用できます。
このセクションでは、Model タブの各セクションに関して説明します。
(A) シーン レベルのプロパティ。ライトやカメラをインポートするかどうかや、どのようなスケールファクターを使用するかなど。
(B) メッシュ に特有のプロパティ。
(C) ジオメトリ に関連するプロパティ。トポロジー、UV、法線を扱うためのものです。
プロパティ | 機能 |
---|---|
Scale Factor | 元のファイルスケール (Model ファイルからのもの) がプロジェクトの意図したスケールに合わない場合は、この値を設定し、インポートしたモデルにグローバルスケールを適用します。Unity の物理システムは、ゲーム世界での 1 メートルがインポートされたファイルの 1 ユニットになると仮定します。 |
Convert Units | これを有効にすると、モデルファイルで定義された モデルのスケール を Unity のスケールに変換します。 |
Import Blendshapes | これを有効にすると、Unity にメッシュと一緒にブレンドシェイプをインポートできるようになります。詳細は ブレンドシェイプのインポート を参照してください。 ノート: ブレンドシェイプの法線をインポートするには、FBX ファイルにスムージンググループが必要です。 |
Import Visibility | これを有効にすると、MeshRenderer コンポーネントが有効 (表示されている) かどうかを定義する FBX 設定をインポートします。 詳細は、後述の 可視性のインポート を参照してください。 |
Import Cameras | これを有効にすると .FBX ファイルからカメラをインポートできます。詳しくは後述の カメラのインポート を参照してください。 |
Import Lights | これを有効にすると .FBX ファイルからライトをインポートできます。詳しくは後述の ライトのインポート を参照してください。 |
Preserve Hierarchy | これを有効にすると、このモデルにルートが 1 つしかない場合でも、必ず明示的なプレハブルートを作成します。 通常、FBX インポーターは最適化の方法としてモデルから空のルートノードを取り除きます。 ただし、同じ階層の一部を含む複数の FBX ファイルがある場合は、このオプションを使用して元の階層を維持することができます。 例えば、file1.fbx にはリグとメッシュが含まれ、file2.fbx にも同じリグが含まれていますが、そのメッシュのアニメーションのみが含まれています。 このオプションを有効にせずに file2.fbx をインポートすると、Unity はルートノードを取り除くため階層が一致せず、アニメーションは壊れます。 |
Sort Hierarchy By Name | これを有効にすると、階層内でゲームオブジェクトをアルファベット順に並べることができます。このプロパティを無効にすると、FBX ファイルで定義された階層の順序が維持されます。 |
Unity はブレンドシェイプ (モーフィング) に対応しており、3D モデリングアプリケーションからエクスポートした FBX ファイルや DAE ファイルからブレンドシェイプをインポートすることができます。また、FBX ファイルからアニメーションをインポートすることもできます。Unity は、頂点、法線、接線でブレンドシェイプの頂点レベルのアニメーションをサポートしています。
スキンとブレンドシェイプは、同時にメッシュに影響を与えることができます。Unity がブレンドシェイプを含むメッシュをインポートする場合、スキンがあるかどうかに関わらず (MeshRenderer コンポーネントの代わりに) SkinnedMeshRenderer コンポーネントを使用します。
Unity はブレンドシェイプのアニメーションを通常のアニメーションの一部としてインポートしてます。SkinnedMeshRenderers のブレンドシェイプのウェイトをアニメーション化します。
次のいずれかの方法で、法線付きのブレンドシェイプを読み込むことができます。
Blend Shape Normals プロパティを Import に設定すると、Unity が FBX ファイルから法線を使用するようにします。詳細は、Blend Shape Normals プロパティのドキュメントを参照してください。
または
Blend Shape Normals プロパティを Calculate に設定すると、Unity が同じロジックでメッシュとブレンドシェイプの法線を計算するようになります。
ノート: ブレンドシェイプに接線が必要な場合は、Tangents のインポート設定を Calculate に設定してください。
Unity は、Import Visibility プロパティを有効にすると、FBX ファイルから可視性プロパティを読み取ることができます。値とアニメーションカーブは、Renderer.enabled プロパティを制御することで、MeshRenderer コンポーネントを有効/無効にすることができます。
可視性の継承はデフォルトで true になっていますが、オーバーライドできます。例えば、親のメッシュの可視性が 0 の場合、子の描画されるものもすべて、無効になります。この場合は、それぞれの子の Renderer.enabled
プロパティに対し、1 つのアニメーションカーブが作成されます。
3D モデリングアプリケーションの中には、可視性のプロパティをサポートしない、または、制限のあるものがあります。詳しくは以下を参照してください。
.FBX ファイルからカメラをインポートするとき、Unity は以下のプロパティをサポートします。
プロパティ | 機能 |
---|---|
Projection | 透視投影 (Perspective) か平行投影 (Orthographic) か。アニメーションをサポートしません。 |
Field of View | アニメーションをサポートします。 |
すべての Physical Camera プロパティ | 物理プロパティを持つカメラをインポートすると (例えば、Mayaから)、Unity は、Physical Camera プロパティを有効にし、 FBX ファイルからの Focal Length、Sensor Type、Sensor Size、Lens Shift、Gate Fit の値を持つカメラを作成します。 ノート すべての 3D モデリングアプリケーションに Gate Fit の概念があるわけではありません。 3D モデリングアプリケーションでサポートされていない場合、Unity のデフォルト値は None です。 |
Near Clipping Plane / Far Clipping Plane の距離 | Unity はこれらのプロパティのアニメーションをインポートしません。3ds Max からエクスポートする場合に、Clip Manually 設定を有効にします。そうでない場合は、インポート時にデフォルト値が適用されます。 |
Target Cameras | ターゲットカメラをインポートすると、ターゲットオブジェクトをソースとして LookAt コンストレイントを持つカメラが作成されます。 |
以下のタイプのライトがサポートされます。
以下のライトのプロパティがサポートされます。
プロパティ | 機能 |
---|---|
Range | UseFarAttenuation を有効にすると、FarAttenuationEndValue が使用されます。 FarAttenuationEndValue はアニメーションをサポートしません。 |
Color | アニメーションをサポートします。 |
Intensity | アニメーションをサポートします。 |
Spot Angle | アニメーションをサポートします。スポットライトのみに使用可能です。 |
ノート 3ds Max では、エクスポートされたデフォルト値が現在選択されているフレームのプロパティ値になります。混乱を避けるため、エクスポート時にはフレーム 0 に再生ヘッドを移動しておきます。
3D モデリングアプリケーションの中には、ライトのプロパティにスケールを適用するものもあります。この場合、例えば、スポットライトを階層によってスケールし、ライトの円錐形に影響を与えることが可能です。Unity ではこれを行わないので、ライトが異なって見える原因になります。
FBX 形式はエリアライトの幅と高さを定義しません。3D モデリングアプリケーションの中には、このプロパティを持たず、矩形領域を定義するためにスケーリングの使用しか許可しないものもあります。 このため、エリアライトのサイズは、インポート時に常に 1 になります。
ターゲットライトのアニメーションは、アニメーションがベイクされていない限りサポートされません。
プロパティ | 機能 | |
---|---|---|
Mesh Compression | 圧縮率のレベルを設定して、メッシュのファイルサイズを小さくします。圧縮率を上げると、メッシュ境界とコンポーネントごとに低いビット深度を使用してメッシュデータを圧縮することによって、メッシュの精度を下げます。 メッシュを圧縮しないバージョンとあまり違いが出ない範囲で、可能な限り圧縮率を高くするのがベストです。これは ゲームサイズの最適化 に役立ちます。 |
|
Off | 圧縮を使用しません。 | |
Low | 低圧縮率を使用します。 | |
Medium | 中程度の圧縮率を使用します。 | |
High | 高い圧縮率を使用します。 | |
Read/Write Enabled | これを有効にすると、Unity はメッシュデータを GPU で処理可能なメモリにアップロードしますが、CPU で処理可能なメモリにも保持します。これはつまり、ランタイムに Unity がメッシュデータにアクセスできることを意味し、スクリプトからアクセスできます。例えば、プロシージャルにメッシュを生成している場合や、メッシュからデータをコピーしたい場合などに便利です。 このオプションを無効にすると、Unity はメッシュデータを GPU で処理可能なメモリにアップロードし、それを CPU で処理可能なメモリから削除します。 デフォルトでは、このオプションは無効です。ほとんどの場合、ランタイムのメモリ使用量を節約するには、このオプションを無効にします。どのような場合に Read/Write Enabled を有効にするかについては、Mesh.isReadable を参照してください。 |
|
Optimize Mesh | GPU パフォーマンスをよくするために、メッシュで三角形がリストされる順序を決定します。 | |
Nothing | 最適化なし。 | |
Everything | ポリゴンと頂点の両方について、頂点とインデックスの並び替えをします。これはデフォルトです。 | |
Polygon Order | ポリゴンのみを並び替えます。 | |
Vertex Order | 頂点だけを並べ替えます。 | |
Generate Colliders | これを有効にすると、メッシュは自動的にアタッチされたメッシュコライダーと一緒にインポートされます。これは、環境ジオメトリの衝突のメッシュを素早く生成するのに役立ちます。しかし、動かすジオメトリには使用を避けてください。 |
プロパティ | 機能 | |
---|---|---|
Keep Quads | これを有効にすると、Unity が 4 つの頂点を持つポリゴンを三角形に変換するのを止めます。例えば、テッセレーションシェーダー を使用する場合、このオプションを有効にすると便利な場合があります。なぜなら、クアッドをテッセレーションする方がポリゴンをテッセレーションするより効率的な場合があるからです。 Unity はどんな種類のポリゴンでも (三角形から N 角形まで) インポートできます。4 つ以上の 頂点を持つポリゴンは、この設定に関係なく、常に三角形に変換されます。ただし、メッシュにクアッドと三角形 (または三角形に変換された N 角形) がある場合、Unity はクアッドと三角形を分離するために 2 つのサブメッシュを作成します。各サブメッシュには、三角形のみ、または、クアッドのみが含まれます。 ヒント クアッドを 3ds Max から Unity にインポートしたい場合は、編集可能ポリゴンとしてエクスポート する必要があります。 |
|
Weld Vertices | これを有効にすると、空間の同じ位置を共有する頂点を結合することができます。これにより、頂点は全般的に同じプロパティを共有できます (UV、法線、接線、頂点色など)。 これによって、メッシュの全体的な数を削減して頂点数を最適化できます。このオプションはデフォルトで有効になっています。 メッシュをインポートするときに、この最適化を無効にする必要がある場合があります。例えば、メッシュに同じ位置にある重複した頂点を意図的に作成する場合、スクリプトで個々の頂点や三角形のデータを読み取ったり操作したりする方が便利なときなどです。 |
|
Index Format | メッシュインデックスバッファのサイズを定義します。 注意 帯域幅とメモリの記憶容量の理由から、通常は 16ビット のインデックスをデフォルトのままにしておき、必要な場合にのみ 32ビット を使用します。これは Auto オプションが使用するものです。 |
|
Auto | これを選ぶと、メッシュをインポートするときに、メッシュの頂点数に基づいて 16 ビットインデックスか 32 ビットインデックス、どちらかが Unity によって選択されます。Unity 2017.3 以降のバージョンでアセットを加える場合には、これがデフォルトです。 | |
16 bit | これを選ぶと、メッシュをインポートするときに、常に 16 ビットインデックスを使用します。メッシュが大きい場合には、64,000 より少ない頂点数に分割されます。Unity 2017.2 以前のバージョンで作成されたプロジェクトの既存のアセットには、この設定が使用されています。 | |
32 bit | これを選ぶと、メッシュをインポートするときに、常に 32 ビットインデックスを使用します。この設定は、GPU ベースのレンダリングパイプライン (例えば、コンピュートシェーダーの三角形のカリングを使用して) を行うときに、32 ビットインデックスを使用すると、すべてのメッシュが同じインデックス形式を使用するようになります。これにより、シェーダーで 1 つの形式だけを扱えばよいため、コンピュートシェーダーをより簡素化できます。 | |
Legacy Blend Shape Normals | このオプションを有効にすると、Smoothing Angle の値に基づいて法線を計算します。 | |
Normals | 法線を計算するかどうか、およびどのように計算するかを定義します。これは、ゲームサイズの最適化 に役立ちます。 | |
Import | ファイルから法線をインポートします。これがデフォルトのオプションです。ファイルに法線が含まれていない場合は、算出されます。 | |
Calculate | Normals Mode、Smoothness Source、Smoothing Angle (下に説明) に基づいて法線を計算します。 | |
None | 法線を無効にします。メッシュが法線マッピングされている、または、リアルタイムのライティングの影響を受けている、のどちらでもない場合は、このオプションを使用します。 | |
Blend Shape Normals | ブレンドシェイプの法線を計算するかどうか、どのように計算するかを定義します。この値は、 Normals プロパティの値と一致する必要があります。 このプロパティは、Legacy Blend Shape Normals が無効の場合にのみ表示されます。 |
|
Import | ファイルから法線をインポートします。ブレンドシェイプに法線が含まれていない場合、FBX SDK は独自の方法で法線を計算します。その結果、法線の値は通常、Unity が Calculate オプションで作成した法線の値と異なります。 | |
Calculate | Normals Mode、Smoothness Source、Smoothing Angle (下に説明) に基づいて法線を計算します。 | |
None | ブレンドシェイプの法線は、基本のシェイプには寄与しません。 | |
Normals Mode | Unity による法線の計算方法を定義します。これは、 Normals が Calculate か Import に設定されているときにのみ選択できます。 | |
Unweighted Legacy | 法線を計算する古い方法 (バージョン 2017.1 より前)。現在の方法での実施に比べ、結果がわずかに違う場合があります。これは、プロジェクトを Unity の最新バージョンに移行する前にインポートされたすべての FBX プレハブでデフォルトです。 | |
Unweighted | 法線にウェイト設定はありません。 | |
Area Weighted | 法線は面の範囲をウェイトとして使用します。 | |
Angle Weighted | 法線は各面の頂点角度をウェイトとして使用します。 | |
Area and Angle Weighted | 法線は各面の表面範囲と頂点角度をウェイトとして使用します。これはデフォルトのオプションです。 | |
Smoothness Source | スムージング動作 (どのエッジを滑らかにし、どのエッジを鋭くするか) を決定する方法を設定します。 このプロパティは、Legacy Blend Shape Normals が無効の場合にのみ表示されます。 |
|
Prefer Smoothing Groups | 可能であれば、モデルファイルからスムージンググループを使用します。 | |
From Smoothing Groups | モデルファイルからのスムージンググループのみを使用します。 | |
From Angle | Smoothing Angle の値を使って、滑らかにするエッジを決定します。 | |
None | ハードエッジで頂点を分割しません。 | |
Smoothing Angle | 頂点がハードエッジに分割されるかどうかを制御します。通常は、値が高いほど頂点数が少なくなります。 ノート この設定は非常に滑らかな有機物や非常に高いポリゴンモデルにのみ使用してください。それ以外の場合は、手動で 3D モデリングソフトウェアのスムージングを行い、Normals オプションを Import (前述) に設定してインポートするほうがよいでしょう。 Unity は単一の角度のみでハードエッジを作成しているため、間違ってモデルの一部でスムージングしてしまう場合もあります。 Normals が Calculate に設定されている場合のみ使用可能です。 |
|
Tangents | Unity による法線の計算方法を定義します。これは、 Normals が Calculate または Import に設定されているときにのみ選択できます。 | |
Import | Normals が Import に設定されている場合、FBX ファイルから頂点接線をインポートします。メッシュに接線がない場合は、法線マップしたシェーダーとは使用できません。 | |
Calculate Tangent Space | MikkTSpace を使って接線を計算します。Normals が Calculate に設定されている場合は、これがデフォルトです。 | |
Calculate Legacy | 以前のアルゴリズムで接線を計算します。 | |
Calculate Legacy - Split Tangent | UV チャート全体を分割して、古い非推奨のアルゴリズムで接線を計算します。法線マップのライトがメッシュの継ぎ目によって壊れている場合はこれを使用します。 これは通常キャラクターにのみ適用されます。 | |
None | 頂点接線をインポートしません。メッシュに接線がないため、法線マップしたシェーダーとは使用できません。 | |
Swap UVs | これを有効にすると、メッシュの UV チャンネルを入れ替えます。ディフューズテクスチャがライトマップからの UV を使用している場合は、この設定を使用してください。Unity は最大 8 つの UV チャンネルをサポートしますが、すべての 3D アプリケーションが 2 つ以上の UV をエクスポートするわけではありません。 | |
Generate Lightmap UVs | これを有効にすると、ライトマップに使用する 2 番目の UV チャンネルを作成します。詳しくは ライトマップ を参照してください。 |