Unity2021.2新機能であるAsset Import Overrideでテクスチャのインポートを高速化する方法をまとめます。
Unity2021.2.0b7(ベータ時点の情報です)
Asset Import Override?
Unity2021.2でビルド設定にAsset Import Overrideという機能が追加されます。
これを使うと、テクスチャの最大サイズや圧縮方式の設定を上書きしてインポート時間を大幅に短縮できます。
開発時にクオリティの高いテクスチャが必要のないエンジニアなどの職種の人がこれを使えば、
インポートやSwitch Platformの時間にかかる無駄な時間を大幅に節約できることが期待されます。
詳しくはCEDEC2021の以下の講演がわかりやすいです。
使い方
この機能を使うには、ビルド設定ウィンドウ左下から設定を行います。
設定を変更するとApply Overridesボタンが表示され、これを押下すると行った設定に従ってテクスチャが処理されます。
サイズをオーバーライドしている場合には、テクスチャのInspectorにその旨が表示されるようになります。
圧縮モードはForce UncompressedとForce Fast Compressorに変更することができます。
Force Uncompressedを選択するとテクスチャは圧縮されなくなります。
従ってインポート時間は最速になりますが、メモリを食うのと、特定の圧縮形式を前提としたコードを書いていた場合に動かなくなります。
Force Fast Compressorを選択するとテクスチャは圧縮時により高速なCompressorを使い、またCrunch Compressionも無効にします。
こちらに関してはフォーマットが変わるわけではないのでメモリ使用量などは変わりません。
単純に圧縮の品質は落ちるだけなので、変な不具合が起こらないというメリットがあります。
効果としては特にモバイル向けの圧縮設定になっているときに大きく、速度は最大で10倍程度向上するようです。
プロジェクトを開く際に有効化する
さてこの設定はできれば重いプロジェクトを開く前(インポートが走る前)に設定しておきたいところです。
これについてはサイズと圧縮設定に関してそれぞれ以下のコマンドライン引数があるため、Unity実行時にオプションをつけることで設定できます。
- -overrideMaxTextureSize 256
- テクスチャ最大サイズを256に
- -overrideTextureCompression forceFastCompressor
- テクスチャ圧縮設定をForce Fast Compressorに
さらにUnity HubのAdvanced Project Settingsを使えばプロジェクトごとにこれらを指定して置けるので便利です。
Advanced Project Settingsについては以下の記事を参照してください。
ビルドにも影響するので注意
さてこのようにして設定したAsset Import Overrideですが、このままビルドを行うとこの設定はビルドにも反映されます。
あくまで開発用の用途が想定されている機能なので、リリースのためのビルドではこの設定を外すことを忘れないようにご注意ください。
(EditorUserBuildSettingsの項目なので、自分以外の人にこの設定が共有されることはありません。)