Unity を検索

feature preview banner
feature preview banner
取り上げているトピック
シェア

現在 ベータ版が公開されている Unity 2021.1 で重点が置かれているのはエディターのパフォーマンスで、皆さんのプロジェクトでのイテレーションをさらに高速化することを目指しています。テクスチャのインポートと圧縮の最適化は、この目標を達成するための重要な要素です。

他のゲームアセットと比較して、テクスチャは通常、ハードディスクの容量を多く取ります。また、総インポート時間の約 3 分の 2 を占めます。複雑なプロジェクトで作業している時に、テクスチャのインポートや圧縮を待っていると貴重な時間を浪費することになります。Unity Accelerator など、チーム向けに作られた Unity ツールはこの問題の影響を軽減する上で役立ちますが、私たちに出来ることはもっとたくさんあるはずです。そこで私たちは、テクスチャのインポートと圧縮プロセスの最適化に取り組み始めました。

以下の時間計測結果は、AMD ThreadRipper 1950X CPU を搭載した PC で、プロジェクトフォルダーを SSD ディスクに保存した場合のプロジェクトで時間計測を行った時のものです。他の構成(Mac など)でも同様の速度向上が見られました。Unity 2020.2 の以前のバージョン(alpha 21)と Unity 2021.1(beta 5)での比較結果になります。

Boat Attack プロジェクトのすべてのテクスチャ(118 個のテクスチャ、合計 720MB)をインポートするのにかかった時間は以下の通りです。

  • PC プラットフォーム:102 → 94 秒(1.1 倍スピードアップ)
  • Android プラットフォーム、ETC2 圧縮:203 → 101(2.0 倍スピードアップ)
  • Android プラットフォーム、ASTC 圧縮:536 → 172 秒(3.1 倍スピードアップ)
  • PC プラットフォームで Android と同じテクスチャサイズ設定を使った場合:30 → 22 秒(1.4 倍スピードアップ)プロジェクト内のテクスチャの多くについて、PC 向けのものは Android プラットフォーム向けのものに比べて、テクスチャサイズが大きくなっています。

より大規模なプロジェクトでの例として、「 Book of the Dead: Environment」のすべてのテクスチャ(425 個のテクスチャ、1.9 GB)をインポートするためにかかった時間も計測しました。

  • PC プラットフォーム:161 → 133 秒(1.2 倍スピードアップ)
  • Android プラットフォーム、ETC2 圧縮:1140 → 494 秒(2.3 倍スピードアップ)
  • Android プラットフォーム、ASTC 圧縮:3162 → 1204 秒(2.6 倍スピードアップ)

このようなスピードアップを成し遂げられたのは、以下の 2 つの領域に重点を置いて最適化を進めたためです。
1) テクスチャインポートの処理で行われたピクセルデータの変換やコピー。合わせて、sRGB 変換やパノラマレイアウトのキューブマップ処理など、処理に時間がかかる部分への SIMD やスレッディング最適化を追加。
2) テクスチャ圧縮。圧縮ライブラリの最新バージョンへのアップデートや圧縮ライブラリ自体の最適化を実施。

ETC 形式の圧縮最適化(1.4 倍スピードアップ)のリスクの低い部分については、Unity 2020.2.0、Unity 2020.1.15、および Unity 2019.4.16 の各バージョンにすでにバックポートされています。

今後に向けて

Unity 2021.2 では、テクスチャの読み込み時間と圧縮のさらなる改善が見込まれています。ベータ版のテストページベータ版フォーラムで、次回のパブリックリリースがあるまでお待ちください。

Unity 2021.1 ベータ版

今回ご紹介した内容が皆様のお役に立てれば幸いです。また、Unity 2021.1 をお使いいただくことで、皆様がインポートのプログレスバーをにらんで待つ時間が実際に短くなることを願います。最新のベータ版は Unity Hub またはダウンロードページから入手できます。本記事の公開日の時点で、1,900 以上の修正と 260 以上の新機能および変更点が盛り込まれています。ぜひお試しいただき、何か問題が発生した場合はバグレポートをご提ください。バグレポートを提出してくださった方の中から抽選で 4 名様に、ウルトラワイド IPS 34 インチ 144 Hz をプレゼントいたします(応募のルール全文はこちらからご覧ください(英語))。ベータ版は本制作に入っているプロジェクトでの使用を想定していないことにご留意ください。既存のプロジェクトをベータ版で使用する場合は、必ずバックアップを取るようにしてください。

Unity 2021.1 で、この記事で示したものと同じように、テクスチャのインポート時間が短縮された方はぜひ体験談をお寄せください。ご意見は、こちらのフォーラムのスレッドにご投稿ください。

2021年2月17日 カテゴリ: テクノロジー | 3 分 で読めます
取り上げているトピック