【iOS9】一部ゲームが遅くなる問題、Unityが関係?

この記事に掲載されているゲームのスクリーンショットは、作者に権利が帰属します。ポリシー

iOS9へのアップデートを最初から推奨していなかった私ですが、ソフトウェアオタクの本分を発揮(?)して人柱になったところ、まんまと泥沼に突っ込んじゃいました。しかも片足だけビミョーに。

お知らせ(10/02)

この記事でも取り扱われているMUSYNCのアップデートにより、MUSYNCに限りこの問題が改善されたかもしれません。Unity自体の対応がどうというより、開発者側が解消できる問題だった可能性があります。詳しくはこちら

いくつかのゲームでカクカクする問題

20150828-adblock-eyecatch

iOS9を実際にインストールしてみました。iPhone5とiPad mini 3を持ってて、最初は片方だけ見ようと思ったんですが、動作確認をしたくなって結局両方アップデートしてしまいました。

結果としては、iPhoneだと、iOS9はあらゆる動作に問題になく、むしろ全体的にサクサク動いているように感じ、iPadの場合も通常のAppであれば前のiOS8.4から特に変化が感じられないくらいで普通に良いんですが、いくつかのゲームに限って表示がカクカクになります。

なにか共通する原因があるんでしょうか。検証してみました。なお、以降iPhoneとかiPadと言う際には、「私の環境におけるiPhone5とiPad mini 3」であって、当然個人差はあります。ただし同じような動作を体験した方も多いことは確認済みです。

事の発端:Deemoがカクカクになった

27-deemo-eyecatch

一番最初に気づいたのが、iOS9上で私の所持しているゲームをどんどん動作確認してしまおうという記事中でのことです。

DeemoがiPhoneでは問題なかったんですけど、iPadでのみ、フレームレートが低下してしまうのを発見しました。つまり、「ページの少ないパラパラ漫画」になったようにカクカクした動作になります。

フレームレート

ゲームの動作は連続的なものでなく、画面上に表示している画像を1秒間に30~60回くらい切り替えることによって滑らかに動いているように見せます。しかしデバイスのほうに負荷がかかっていると、この切り替え回数が落ちてカクカクするように見えます。この切り替え回数がフレームレートです。

押すタイミングの受け付けに狂いはないようなので、全体の処理能力が落ちているんじゃなく、描画だけに問題があるんだと、ここでは思いました。

もちろんDeemoだけの問題であれば、それ自体の描画機能に問題があるという事実だけなので、これ以上追求する必要もなかったんですが、同じ問題が発生するゲームがいくらなんでも多すぎました

Unityを使用しているMUSYNCも同様

20150815-chinesemusicgame-004

Deemoと関係ないと思われるゲームで、次々と同じような事象が出現してしまいました。

同じく音ゲーのMUSYNCにて、やはり同じようにフレームレートの低下を確認したんです。やはり描画だけの問題だと見立てていたんですが、起動直後のこのロゴで原因究明の糸口をつかみました。

076

そう、MUSYNCはUnityを使用しているんです。

Unity

とても省略的に言えば、3Dでのゲーム開発を支援するツールのようなものです。大幅に簡略化できるため、企業や個人の別を問わず、あらゆる開発者に使われています。3Dでの描画を大きくサポートするので、本記事の問題に関わっていると考えてもおかしくありません。

ということで、Unityが何か関係していると考えることにしました。となれば、同じ問題を抱えた他のゲームもUnityを使用してるのかどうかを確認して、証明しなければいけないですね。

DeemoもUnityを使用していた

ですが、Deemoは起動時にUnityのロゴが表示されるわけではありません。Unityを使用していないんでしょうか?

そうとも限りません。Unityは無料版と有料版があり、有料版のほうは起動時のロゴを消すことができるので、Unityのロゴが表示されない場合は、「Unityを使ってない」のか「有料版のUnityを使ってる」のか、どちらかはわかんないわけです。

ただ、調べる方法はあります。PCのiTunesにはiOSデバイスのバックアップ機能がありますが、そのときにアプリのデータも.ipaというデータになって保存されるので、その中を盗み見てUnityっぽいファイルがあればビンゴということになります。

.ipaはどうやって開くのかって?実は拡張子が違うだけで.zipと変わらないので、無理やりエクスプローラで開いてしまえば中のファイル名だけでもとりあえず見られます(これをTwitterでお教え下さった方に感謝いたします)。

077

で。Deemoの.ipaを見ると、上記のようなファイルが並んでいました。これが何を隠そうUnity固有のファイルです。ってかUnityって書いてありますし(笑)

ちなみに、同じフレームレート問題が起こる、Dynamix(音ゲー)、Hook(パズルゲーム)、かわうそバトル(パーティゲーム)もそれぞれ見たところ、全てにUnityが使われていました

Unityの描画機能がiOS9と相性悪い

一方で、Minecraft PEやGoat Simulatorなど、重そうな3DゲームであってもiPadでも問題なく動く場合があります。

20150902-iosgame-022

これらはUnityを使用しておらず、確かに本件とは関係ありません。そんなわけで、iPadのメモリが足りないのだとしてもそれは本質的な問題ではなく、UnityとiOS9の関係は確からしいということになりました。

しかし、iPhone5で同じゲームをプレイしても、まったく同じ問題は起こりませんでした。というかむしろムカつくくらいサクサクです(笑)。なぜiPadだけで起こるんだろうか……

ちなみに機内モードにする、位置情報を使わない、など様々なパフォーマンス改善を行って、できる限りiPadとiPhoneを同じ条件に近づけたんですが、一向に治りませんでした。

075

となれば有力なのは解像度の問題でしょうか。画面が大きい分描画にかかる負荷も上がるというわけですね。その他の原因もいろいろあるでしょうから一概には分からないですが。

なお、もしUnity自体に問題があるとすれば、今回問題が発生したゲームの開発者に非はありません。UnityがiOS9にちゃんと対応するまでは修正する術がないです。これも覚えておくといいでしょう。

終わりに

Unityを使用したゲームはたくさんあります。ソーシャルゲームでもよく使われています。ここに挙げたゲーム以外でも、同じような問題が発生する可能性はあるでしょう。

iOS9にすぐにアップデートするなと今までもさんざん言ってきましたが、ゲーマーの場合は特におすすめしないです。

どうしてもiOS9を見たいし、遊び続けたいゲームがあるという場合は、PC版のiTunesでバックアップを取り、そのゲームに関する他の人の報告をよく調べてからにしましょう。

5 件のコメント

  • ipad mini4でも同じ事が起こりました。
    再起動直後にDeemoを起動するとフレームレートが安定しているのに、アプリを切り替えて色々やった後にDeemoに戻ると問題が発生するので何かがトリガーになってるぽいですねorz

    • ご報告ありがとうございます。私も同様で、再起動やすべてのタスクを切るなどしたすぐ後の、メモリにかなり余裕がある状態であればスムーズに動くこともあるようですが、他のアプリを開いて少しでもメモリを減らしていると、すぐに不安定になるようですね。

  • iPadのみで不具合が起こる要因として、マルチタスクのキャッシュのせいという可能性もあるかもしれません。
    試しにマルチタスクをオフにして再起動してみたのですが、比較的安定している気がします。

    • ご報告ありがとうございます。

      この記事を書いた際の検証で、可能な限り全ての機能を無効にし再起動するなど試したのですが、やはりここに挙げているゲームでは不具合が見られました。

      今一度マルチタスクをオフにし、全タスクを切り、再起動もしたのですが、起動後数分間は確かに安定したものの、複数アプリを起動すると(この際古いほうのタスクは切っていても)やはりフレームレートの低下が見られました。

      その後再度マルチタスクを有効にして使用すると、待ち時間なく以前開いていたアプリが表示されましたが、マルチタスクのキャッシュは無効時にどういう扱いなのでしょうね。確実に削除する方法があればよいのですが。

  • この記事書いた凪サです。この件に関してさらに調査し、だいたいわかったので取り急ぎここで。

    まず問題の起きる端末の共通点として、チップが64bitであるということがありました。また、Unityが今年最初にメジャーバージョンアップをし、そこでようやくiOS向けに64bitのアプリをビルドできるようになったらしいです。ということで、32bit版しかipaに含まれていないゲームの場合、それを64bitの端末で動かすとまず問題の発生源になるというわけです。

    またiOS9が引き金になったのは、Unityもレンダリングで使用するグラフィックスAPI「Metal」をより強力に活用するようになったからであると思います。これらについてはまた記事にしますが、一般向けに分かりやすく解説するためにもう少し検証してみます。

  • 管理人 へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。