こんにちは、Unityエンジニアのオオバです。

お悩みさん
お悩みさん
  • Switch Platformの方法を知りたい
  • Switch Platformが重くて我慢できない
  • Switch Platformを少しでも時短できる方法はない?
  • オオバ
    オオバ
    本記事ではこれらの悩みを解決します。

    Unityは次のようなマルチプラットフォーム書き出しに対応しています。 iOS、Android、WebPlayer、WebGL、PS3、PS4、Xbox 360 などです。

    Unityがマルチプラットフォームに対応していますが、実は マルチプラットフォームに対して同時に書き出すことはできません。

    下の図のように書き出したいプラットフォームを選択して、 Switch Platform(スイッチプラットフォーム) する必要があるのです。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_0

    「なんだ、簡単じゃん」 と思うかもしれません。しかし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ボタンを押すだけです。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_1

    Switch Platformできない場合の対処法

    プラットフォームを変更したいのにSwitch Platformボタンが押せないときがあります。原因はモジュールの未インストールが考えられます。

    下図はWebGL向けにプラットフォームを変更したいけどSwitch Platformがクリックできないという状況です。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_2

    Unity Hubからモジュールをインストールするのです。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_3

    モジュールを追加するUnityバージョンの歯車ボタンをクリックして、「モジュールを加える」ボタンをクリックしてください。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_4

    「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 に設定してみます。

    iOSAndroid
    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_5
    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_5
    PVRTCに設定ETCに設定

    この時Unityのビルド設定がiOSだった場合、 png画像はPVRTCに変換する処理 が実行されます。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_6

    Unityプロジェクト内のすべてのテクスチャの変換が終わるまでUnityは操作できません。

    再びSwitch Platformすると再度変換処理が走る

    iOSからAndroidにSwitch Platformしてみます。すると png画像がETCに変換する処理 が実行されるのです。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_7

    つまり Switch Platformを実行するたびに圧縮テクスチャへの変換と圧縮作業時間に待たされてしまう ということです。

    テクスチャのクオリティ設定による待ち時間問題

    テクスチャのクオリティ設定は Compressor Quality で決めます。
    クオリティは「Fast」「Normal」「Best」から選びます。大抵の場合「Best(最高にきれいな品質)」を選択します。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_8

    シンプルにゲームの質を上げることができるため、 よっぽどのことがない限りはBest以外を選択することはありません。

    しかし、 クオリティを上げるということは圧縮テクスチャの圧縮時間も長くなります。 Bestにすると思った以上に待ち時間が増えるので注意です。

    データが変わりやすい開発序盤はNormalにして、データが固定化する中盤以降Bestにするといった運用も考慮に入れておいた方が良いかもしれません。

    👉 【失敗しない】Unityで画像を差し替える方法

    Switch Platformを時短する3つの方法

    スマホアプリを開発している最中にiOSで書きだしたあと、Androidでもテストしたいということはよくあります。ただ書き出すためだけに30分待つのはアホらしい。

    ということで、それらを解決する方法を3つ紹介します。

    Switch Platformを時短する3つの方法

    ①Turbo Switch Proを使う

    ②Switch Platformする数だけUnityプロジェクトを作る

    ③Unity2021の新機能を使う

    ①Turbo Switch Proを使う

    Asset Storeで公開されている有料アセット「Turbo Switch」です。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_9

    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のプロジェクトを分けておきます。

    Unityプロジェクト内のファイルはgitを使って同期させます。オオバはGitHubを使うことが多いです。

    【Unity】Switch Platfomの解説!3つの時短テクニックも紹介!_10

    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つの方法を紹介してきました。まとめるとこんな感じです。

    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は鬼門です。 事前の対策をして開発時間を無駄にしないようにしておきたいですね。

    この記事があなたのゲーム開発に少しでもお役に立てたら嬉しいです。

    オススメ記事
    検証環境