ゴイサギ日記

東京でエンジニアとして頑張って何とか生きてます。。ゆる~く更新していきます

【Unity】3Dモデルのインポート設定

FBXなど3Dモデルのインポート設定で個人的に重要だと思う項目をまとめてみた。

Model
Scale Factor

読み込んだ3Dモデルにスケールを掛けてサイズを調整したい場合に使用します。注意として Scale Factor を変更した3Dモデルに関連するアニメーションがある場合、そちらの Scale Factor も同じ値にする必要があります。

ファイル形式 デフォルト値
.fbx, .max, .jas, .c4d 0.01
.mb, .ma, .lxo, .dxf, .blend, .dae 1
.3ds 0.1
Mesh Compression

メッシュを圧縮します。32bit浮動小数点の代わりに固定小数点*1を使ってサイズを減らすので小数点以下の値を細かくし過ぎると形状が破綻する事があります。キャラモデルの顔などが影響しそうです。

Read/Write Enabled

メモリを2倍消費するのでチェックを外します。
ただし、MeshCollider と ParticleSystem で Mesh を以下のように使う場合はチェックが必要です。
・不均一スケーリング、(2,1,1)など
・親オブジェクトが回転・縮小を設定する

Optimize Mesh

CPUが計算しやすい頂点の並びに変更します。

Index Format

インデックスバッファのフォーマットを設定します。

Mode 説明
Auto メッシュの頂点数に応じて 16bit か 32bit を選択します。
16bit 常に16bitフォーマットを使います。頂点が上限数より多いメッシュは分割されます。
32bit 常に32bitフォーマットを使います。頂点が上限数より多くてもメッシュは分割されません。

頂点数が65535以内であれば16bit、それ以上になる場合は32bit にします。

ちなみに上限数を超えてメッシュが分割された場合は以下の警告が表示されます。

Meshes may not have more than 65535 vertices at the moment. Mesh ‘xxxx’ will be split into 2 parts: ‘xxxx_0’, ‘xxxx_1’.
Weld Vertices

同じ位置にある頂点を結合し頂点数を減します。

Normals

法線が必要ないなら None で無効に出来てメモリを節約します。殆どのキャラや背景のモデルはライトを使うので無効にするのは難しいですが、例えばMayaで作成したUI演出のモデルなどは無効にできそうですね。

Tangents

法線マップを使わなければこれも必要ないです。

Rig
Animation Type

アニメーションタイプを設定します。人型なら Humanoid、4つ足動物などの人型以外はGenericを選択します。Legacy は Unity3.x以前の古いアニメーションをサポートするものですが AnimationClipPlayable で再生出来ない等の問題があるため使うことはあまり無いでしょう。
goisagi-517.hatenablog.com

Optimize Game Object

チェックを入れると Animator が設定されているGameObject以下で何もコンポーネントが設定されていないGameObjectを削除します。

GameObjectを消されたくない場合(例えば揺れもの、剣などのリンク先)は Extract Transforms to Expose に対象のGameObjectを設定すれば良いです。

Animation
Anim Compression

アニメーションの圧縮方法を設定します。Keyframe Reduction を選択した場合、インポート時にキーフレーム数を減らします。Keyframe Reduction and Compression を選択した場合は Keyframe Reduction と同様にキーフレーム数を減らすと同時にファイルサイズをより小さくできます。

Animation Compression Errors

位置(Position Error)、回転(Rotation Error)、スケール(Scale Error)の各キーフレームを減らす割合を設定します。値が大きい程、キーフレームを減らす割合が増えメモリ消費が少なくなりますが、アニメーションの品質を維持する事が難しくなります。特にループアニメーションのつなぎ目などは注意が必要です。また、このオプションは Anim Compression で Keyframe Reduction or Optimal を選択した場合のみ有効になります。