こんにちは、Unityエンジニアのオオバです。
Unityは次のようなマルチプラットフォーム書き出しに対応しています。 iOS、Android、WebPlayer、WebGL、PS3、PS4、Xbox 360 などです。
Unityがマルチプラットフォームに対応していますが、実は マルチプラットフォームに対して同時に書き出すことはできません。
下の図のように書き出したいプラットフォームを選択して、 Switch Platform(スイッチプラットフォーム) する必要があるのです。
「なんだ、簡単じゃん」 と思うかもしれません。しかしSwitch PlatormはUnityプロジェクト内のファイル数によって、 ものすごく 時間がかかってしまう処理です。30分以上作業ができなくなることも普通にあります。
もし、あなたがスマホゲーム開発をしているのであれば、iOSとAndroidにはどちらもリリースしたいですよね。つまりiOSとAndroidのプラットフォームを切り替える必要があるということです。
Switch Platformはゲーム開発上、時間の無駄。
そこで、本記事では長時間作業を止めてしまう Switch Platformの時短テクニック を解説します。この記事を通してゲーム作りの時間を確保してみませんか。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
Switch Platformの方法
時短テクニックを紹介する前に、そもそもSwitch Platformのやり方を解説します。Switch Platformとは開発プラットフォームの切り替えです。iOSからAndroid、AndroidからPC向けと切り替えることです。Switch Platformすることでプラットフォーム特有の機能にアクセスできるようになるのです。
Switch Platformのやり方はとても簡単です。 メニュー File > Build Settings
からBuild Settingsウィンドウを表示します。下部に並ぶプラットフォームリストから選び、Switch Platformボタンを押すだけです。
Switch Platformできない場合の対処法
プラットフォームを変更したいのにSwitch Platformボタンが押せないときがあります。原因はモジュールの未インストールが考えられます。
下図はWebGL向けにプラットフォームを変更したいけどSwitch Platformがクリックできないという状況です。
Unity Hubからモジュールをインストールするのです。
モジュールを追加するUnityバージョンの歯車ボタンをクリックして、「モジュールを加える」ボタンをクリックしてください。
「WebGL Build Support」にチェックを入れてインストールしてみてください。するとSwitch Platformできるようになります。Unityを起動したままモジュールをインストールした場合は、一度Unityエディタを再起動すると反映されます。
Unityにはさまざまなモジュールが用意されています。次の記事で詳しく解説していますのでぜひ読んでみてください。
Switch Platformの時間がかかる原因
Switch Platformが何に時間がかかっているのか知っておきましょう。結論 テクスチャ(画像) の圧縮作業です。例えば、UnityプロジェクトにPNGファイルを追加したとしてもPNGファイルとして使われるわけではありません。
iOSであれば、PVRTCやASTC、Androidの場合はETC、ETC2、ASTCという圧縮テクスチャフォーマットに変換されます。PNGより使用するメモリサイズが大幅に小さくなるのです。
Switch Platformによってテクスチャがどのように変換、圧縮されるのか見ていきましょう。サンプルとして1024☓1024pxサイズのテクスチャをiOSは PVRTC
、Androidは ETC
に設定してみます。
iOS | Android |
---|---|
PVRTCに設定 | ETCに設定 |
この時Unityのビルド設定がiOSだった場合、 png画像はPVRTCに変換する処理 が実行されます。
Unityプロジェクト内のすべてのテクスチャの変換が終わるまでUnityは操作できません。
再びSwitch Platformすると再度変換処理が走る
iOSからAndroidにSwitch Platformしてみます。すると png画像がETCに変換する処理 が実行されるのです。
つまり Switch Platformを実行するたびに圧縮テクスチャへの変換と圧縮作業時間に待たされてしまう ということです。
テクスチャのクオリティ設定による待ち時間問題
テクスチャのクオリティ設定は Compressor Quality で決めます。
クオリティは「Fast」「Normal」「Best」から選びます。大抵の場合「Best(最高にきれいな品質)」を選択します。
シンプルにゲームの質を上げることができるため、 よっぽどのことがない限りはBest以外を選択することはありません。
しかし、 クオリティを上げるということは圧縮テクスチャの圧縮時間も長くなります。 Bestにすると思った以上に待ち時間が増えるので注意です。
データが変わりやすい開発序盤はNormalにして、データが固定化する中盤以降Bestにするといった運用も考慮に入れておいた方が良いかもしれません。
Switch Platformを時短する3つの方法
スマホアプリを開発している最中にiOSで書きだしたあと、Androidでもテストしたいということはよくあります。ただ書き出すためだけに30分待つのはアホらしい。
ということで、それらを解決する方法を3つ紹介します。
①Turbo Switch Proを使う
②Switch Platformする数だけUnityプロジェクトを作る
③Unity2021の新機能を使う
①Turbo Switch Proを使う
Asset Storeで公開されている有料アセット「Turbo Switch」です。
you can see an improvement of up to 100x faster platform switching time
これを使うと、最大100倍早くなるとのことです。 インポートデータをキャッシュする仕組み のため、初回は時間がかかりますが、2回目以降は高速になります。頻繁にSwitch Platformする方は導入を検討してみてはいかがでしょうか。
👉Turbo Switch Proはこちら。
有料アセットを購入する方法がわからないという方はこちらの記事をどうぞ。
②Switch Platformする数だけUnityプロジェクトを作る
次に紹介するテクニックは、無料で実現できる方法です。その方法は Switch Platformする数だけUnityプロジェクトを作るのです。
最初にhoge-iosというiOS向けUnityプロジェクトを作っておきます。Android用を作りたくなったとき、hoge-iosをまるごとコピー するのです。
↓下のようなディレクトリ構成でiOSとAndroidのプロジェクトを分けておきます。
workspace/Unity/hoge-ios
・・・iOS用Unityプロジェクトworkspace/Unity/hoge-android
・・・Android用Unityプロジェクト
Unityプロジェクト内のファイルはgitを使って同期させます。オオバはGitHubを使うことが多いです。
Unity Hubを使えばUnityエディタの多重起動も可能なので、iOS、Androidどちらも起動しながら作業ということもできます。ただし、Unityエディタ自体がパワーを必要とするため、ハイスペックなパソコンが求められます。
👉 【Unity入門】Unity Hubのインストールからセットアップまで徹底解説
Turbo Switch Proと比べたデメリットは、 切り替える数だけプロジェクトが必要なのでパソコンのストレージを圧迫することです。容量に余裕のあるマシンなら全く問題になりません。
iOS、Android向けのUnityプロジェクトの作り方がわからない方はこちらの記事を参考にしてみてください。
③Unity2021の新機能を使う
3つ目の方法はUnity2021の新機能 「Asset Import Overrides」 の使用です。Asset Import Overridesとは、アセットインポートの設定を上書きできる機能です。
前述しましたが、Switch Platformで最も時間がかかるのはテクスチャの圧縮です。Asset Import Overridesを使うと、テクスチャのを非圧縮にすることができるのです。つまり、テクスチャの圧縮時間がなくなり、 Switch Platformの時間の大半をスキップすることができる ということです。
詳しくはこちらの記事で解説していますので、ぜひ読んでみてください。
👉 【知らなきゃ損】Unity2021覚えておきたい新機能4選と1つの事実
Switch Platformを時短するテクニックまとめ
Switch Platformを時短する2つの方法を紹介してきました。まとめるとこんな感じです。
①Turbo Switch Proを使って時短
②Switch Platformする数だけUnityプロジェクトを作って時短
③Unity2021の新機能「Asset Import Overrides」で時短
ゲーム開発中はアセットはどんどん増えていきます。ファイルが増えればSwitch Platformの時間は長くなるため、そうなるまえに対策しておきたいですね。
今回紹介した3つのテクニックの中でのおすすめ順は 「③→②→①」 です。
ただし、③はUnity2021を採用しているかどうかはプロジェクト次第ですので、どうにもならない場合もあります。次点で②のSwitch Platform分Unityプロジェクトを作る方法です。 どのUnityバージョンでも使えるテクニックであるため確実な方法です。
お金に余裕がある方は①の「Turbo Switch Pro」を使ってみるのも良いでしょう。
Unity開発にとってSwich Platformは鬼門です。 事前の対策をして開発時間を無駄にしないようにしておきたいですね。
この記事があなたのゲーム開発に少しでもお役に立てたら嬉しいです。
この記事が気に入ったらフォローしよう
- Unity2020.3.26