【解決済】デレステの高負荷問題とその対処法

2016年11月8日

imas_sl_stage

前の記事は前置きも長く読みづらいため、本記事は簡潔に書き直したものになります。また、ここで取り扱っている問題は、2017年6月24日現在すべて解消されています。

既に古い記事となっておりますので、過去情報としてご閲覧ください。

Androidデバイス全体で発生する問題

HTC 10などのSnapdragon 820搭載デバイスのような、性能に余裕のあるデバイスを使って「アイドルマスターシンデレラガールズスターライトステージ(以下デレステ)」をプレイしていると、高性能にもかかわらず異様に動きが悪くなったりカクついたりすることがあります。

最初はHTC 10固有の問題なのかと思っていましたが、調べているうちに「デレステそのもののバグ」によってそのような問題が起こっているのであり、メーカーやスペックに関係なく起こっているということがわかりました。

バグの概要

  • デレステ実行中にデバイスが高負荷のままとなり、短時間でオーバーヒートを起こしてしまう。
cpu_freq

big側のコアである、Core 2とCore 3が最大クロックで固定され、クロック変動しなくなっているのがわかる。

挙動に多少のばらつきはありますが、具体的にはCPUが最大クロックで固定されてしまったり、big.LITTLE構成の場合はbig側のコアがフル稼働したままになってしまいます。例えばSnapdragon 820搭載のHTC 10の場合は、big側の2コアが最大クロックである2150MHzで固定され、Exynos 7420搭載のGalaxy S6 Edgeの場合はbig側の4コアが2100MHzで固定されます。

この状態が続くと端末温度が急速に上昇し、サーマルスロットリングによる性能低下が起こります。結果としてデレステがカクついたりします。これは搭載しているAndroid OSのバージョンやSoCの種類(Snapdragon/Atom/Tegraなど多数)、メーカーに関係なく発生します。(Android 4.4.2~7.0の4種類のメーカーと10機種で検証)

発生する条件

  • デレステ実行中にスリープにする
  • デレステ実行中にタスクキーを押してしまう
  • デレステ実行中にホームキーを押してホーム画面に戻る

要はデレステから一度でも離れてしまうと問題が発生してしまうということです。

対処法

  • 一度デレステを終了する

現在判明している対処法はこれだけです。うっかりスリープにしてしまったときなどは、潔くアプリを再起動しましょう。Grooveイベント中であれば一度休憩を挟んでからアプリを終了させればOKです。

懸念される問題は

最新機種のような高性能で余裕のあるデバイスでないと、問題発生時に大きな差が出ないためなかなか気が付きにくい問題です。また、Androidは動作が遅い、もたつくという昔からのイメージがあることや、デレステがリリースした頃のフラッグシップモデルが熱問題で騒がれていたSnapdragon 810搭載だったこともあり、バグだとは気が付かなかった人も多いかと思います。

気をつけていればプレイに大きな支障もありませんし、このバグが起きていなければ数曲程度でオーバーヒートすることもないでしょう。ここだけ見るならば、大きな問題ではないと言えます。

ただ強いて挙げるならば、デレステをある種のベンチマークテストとして用いているメディアなどが、この問題を知らずに新しい機種のレビューを行うと、幾つかの機種を発熱が起きるだとかその機種だけデレステの動作は悪いといった評価をしてしまう可能性はあるかもしれません。事実、私自身がHTC 10自体を疑っていたわけです。第三者からの報告や複数デバイスでの検証の結果、HTC 10は関係なくデレステのバグであるという結論に達していますが、検証と考察を行っていなければ、「この機種はダメだ」の一言で片付けていた可能性もあるでしょう。

デレステ側はどうなっているのかというと、かなり前に私を含めた2名が運営に問い合わせを行いました。しかし、優先順位が低いのか問題として認識していただけなかったのか分かりませんが、数ヶ月経った今も問題は解決していません。(2017年1月24日 バージョン2.6.6現在)優先されるべき問題の修正はもちろん、イベントや新要素なども大切ですので、本件の修正はあまり期待すべきではありませんが、いずれ直して頂ければと思います。プレイ中気兼ねなくスリープに出来て、きっとより快適なプロデュースが行えるようになることでしょう。

2017年6月23日にバージョン3.0.3がリリースされたため、久しぶりに確認を行ったところ、不具合は解消されていました。(Android 7.0のHTC 10で確認)

Android 7.0からは?

CPUのクロックを取得するアプリがどれも上手くデータを取得できないことがあり、どう変化したのかはちゃんと確認することができていません。

そちらよりも、Android 7.0や7.1へ更新したことにより音声の遅延が発生してしまっていることのほうが大きな問題となっています。Android Nのベータ版を試していた頃から懸念していたことですが、メーカーや機種を問わず多かれ少なかれ遅延が発生してしまっているのが現状です。

具体的に、ちょっとずつ譜面が遅く(機種によっては早く)なっていくこの遅延問題。機種固有の問題ではなさそうなあたり、OS側の何かしらの変更が上手く合わない原因になっているのではないかと思います。その根本的な原因に合わせて修正できれば、殆どの機種でAndroid 6.0の頃と同じように遊べるようになるのではないかと私は推測しています。

もちろん、まだ出始めのOSバージョンであることや、予想以上に対応が難しい問題である可能性は否めませんので、早急な対応は期待できないでしょう。でもいますぐ出来る対策はあります。ユーザー側でできる対処方法は、「タップ音を鳴らさない」設定にすることです。

メニューのLIVE設定から。

Android 7.0に限らず、どうしても譜面が徐々に遅延していくような既存の機種でも、タップ音を鳴らさないことで問題なく遊べるようになることがあります。必ずしも解決するわけではありませんし、音を鳴らして遊びたいユーザーにとっては辛い選択ですが、これが結構有用だったりします。

※バージョン3.0.3で修正済みです。(大事なことなので3回ぐらい言いました)

Amazon