こんにちは、Unityエンジニアのオオバです。
Unity開発初期は大丈夫だったけど、中盤から後半ファイル数が増えるごとにUnityの起動が遅くなります。チーム開発の場合、他メンバーの追加アセットが、Unityの起動を遅くする原因になります。例えばクリエーターがイラストやUIデザイン素材をUnityプロジェクトに追加更新した場合です。アセットを取り込むタイミングでインポートが走り、待機時間が生まれます。
しかし、 アセットの追加更新をなくすことはできません。
このような状況の中で少しでもUnityの起動を早くする方法を紹介します。Unityの起動で作業時間が潰れるということはよくあります。この記事があなたの開発時間の確保につながれば幸いです。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
Unityエディタの起動が重い理由
Unityエディタの起動を遅くする最大の原因は 画像の使用枚数 です。Unityは画像を内部で 各プラットフォームごとの画像形式_ に変換(インポート)します。
- iOSの場合 : ASTCへ
- Androidの場合 : ETC2へ
- PC版の場合 : DX5へ
このように各プラットフォームごとにファイル形式は異なります。この変換処理に時間がかかるのです。一度変換が終われば Unity内部で保持される ため2度目以降に待たされることはありません。
しかしプラットフォームを切り替えると、時間のかかる画像変換は再び始ってしまうのです。もちろん画像以外の変換処理もありますが、 ゲーム開発で問題になるのは大量の画像 です。この「画像の枚数」がUnityエディタの起動を重くする主な原因です。
しかし画像はゲームに必須です。枚数を減らすことは難しいでしょう。そこでこの記事では画像の枚数を減らしません。 固定費 として付き合っていく必要があるのです。
重いUnity起動を高速化する4つの方法
①キャッシュサーバー(Unity Accelerator)を使用する
②Unity Hubでプラットフォームを選択して起動する
③プラットフォームの数だけUnityプロジェクトを作成する
④Unity2021の場合はAsset Import Overridesを使う
方法①キャッシュサーバー(Unity Accelerator)を使用する
Unityのキャッシュサーバー(現在Unity Accelerator)を使うことをおすすめします。 Unity Accelerator とはインポートデータをサーバーにキャッシュし、2回目以降同じインポート処理をキャッシュサーバーから取得し、インポート時間を短縮する機能です。
Unity公式が提供しているサービスなので、安心して使ってみてください。キャッシュサーバーはストレージ消費が激しいため注意してください。
キャッシュサーバー(Unity Accelerator)の導入はこちらのUnity公式ページに詳しく記載されています。
📚 参考サイト : キャッシュサーバー - Unity マニュアル
方法②Unity Hubでプラットフォームを選択して起動する
プラットフォームを事前に指定した状態でUnityエディタを起動すると、無駄なSwitch Platformの回数を減らせます。Unity Hubには 事前にプラットフォームを指定 して起動することができます。
Unity Hubのバージョン部分をクリックします。
すると起動時のプラットフォームを指定することができるのです。ここではサンプルとして Android を選択しました。
上図のようにプラットフォームを事前に指定することで、 PC向け画像変換処理をスキップ できました。つまり 2度の画像変換を1度に減らせた のです。
各プラットフォームの画像形式ごとに変換スピードは異なります。よって単純に2倍早くなるわけではありませんが、 約半分の時間でUnityエディタを起動 することができるでしょう。
Unityエディタ起動後のプラットフォーム切り替えは無駄
Unityエディタ起動後にプラットフォームを切り替える行為は無駄 です。よく犯してしまいがちなミスは初回起動です。
- PC向けで起動
- Androidにプラットフォーム切り替え
UnityのデフォルトのプラットフォームはPCです。スマホゲーム開発の場合はiOSまたはAndroidのため、PC版を起動後にスマホ版へ切り替えることになります。すると結果的に画像の変換処理が2回実行あれ、 約2倍 待たされます。この行為は無駄です。
Build Settings > Switch Platform
でプラットフォームの切り替えができますが、これが無駄なのです。 今回使用したUnity Hubはとても便利です。Unityでゲームを作るときに欠かせないツールの一つ。さらにUnity Hubを知りたい方はこちらの記事がおすすめです。
方法③プラットフォームの数だけUnityプロジェクトを用意しておく
各プラットフォームごとのUnityプロジェクトを用意 するのもおすすめ。プラットフォームを切り替える時間をかなり抑えられます。
3つとも中身のファイルは同じですが、Android、iOS、PCとプラットフォームが違います。1日の中で何度もプラットフォームを切り替える際に効果ありです。
UnityHubからプロジェクトを開くだけでプラットフォームを切り替えられます。とても便利。もちろん同時起動も可能です。
詳しくは次の記事で紹介しています。
既存のプロジェクトをUnity Hubに追加する方法は、次の記事で詳しく解説しています。
方法④Unity2021のAsset Import Overridesを使う
次の方法はUnity2021の新機能「Asset Import Overrides」の利用です。 Switch Platformで最も時間がかかるのはテクスチャの圧縮です。 Asset Import Overridesを使うと、テクスチャのを非圧縮にすることができ、テクスチャの圧縮時間がなくなります。 Unityの起動時間を大幅に短縮できるということです。
Asset Import OverridesはBuild Settingsウィンドウから設定します。詳しくは次の記事を読んでみてください。Unity2021の影響力の大きい新機能を紹介しています。影響力の大きい新機能の中に「Asset Import Overrides」は含まれています。Unity2021を使っているのならぜひ使ってみてください。
死ぬほど重いUnityの起動を高速化する方法まとめ
死ぬほど遅いUnityの起動を高速化するテクニックを紹介してきました。記事の内容を簡単にまとめます。
- プラットフォームごとの画像変換処理に時間がかかる
- 方法①キャッシュサーバー(Unity Accelerator)を使用する
- 方法②Unity Hubを使ってプラットフォームを指定すると無駄なSwitch Platformをスキップ
- 方法③プラットフォームの数だけUnityプロジェクトを用意しておく
- 方法④Unity2021のAsset Import Overridesを使う
こんな感じです。 Unityエディタの起動だけで半日潰した なんて話はよく聞きます。Unity起動の待機時間は完全に非生産的な時間で非常にもったいないですよね。しかし、どうしてもUnityの起動時間は長くなってしまいます。現実を受け入れつつ、少しでも改善できればとこの記事を執筆しました。
この記事があなたのゲーム開発に少しでもお役に立てたら嬉しいです。
Importing small AssetsでUnityが起動しない時に試す6つの方法
Importing small AssetsでUnityが起動しないときの6つの方法を紹介します。
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいUnityライフをお過ごしください。
- UnityHub v3.1.2
- Unity2021.3.0f1