気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM等について、学んだことや備忘録をアウトプットとして残し、情報を必要としている誰かにとって「かゆいところに手が届く」ブログとなることを願いながら記事を書いています。

【RPGツクールMV】これで解決!スマホブラウザでInvalidStateErrorが発生した場合の対応記録

スポンサーリンク

概要

RPGツクールMVで、ウェブブラウザ向けにデプロイメントを実施し、 iPhoneやiPad等のiOS系端末でゲームをプレイしていると下記のようなエラーが発生しました。

Error
InvalidStateError (DOM Exception 11): The object is in an invalid state.

原因

ゲームイベントで指定されている BGMやSEのm4a形式ファイルが存在しないためです。

対策

m4a形式ファイルをインポートする必要があります。

気を付けた方が良いこと

PC版のブラウザだと、開発者コンソールに「ファイルが見つからない」エラー出力があり、ゲームの継続が可能です。 しかしスマホ・タブレットの場合はゲーム自体が停止してしまいます。

個人的な話なのですが、外部サイト様の音楽素材を利用する際、 oggファイルだけをインポートし、m4aファイルの方が漏れてしまうことがたまにあるので、 それぞれのファイルをセットでインポートすることを忘れないようにしないといけませんね。

m4aファイルを配置しても、上記エラーが発生した場合

  • 下記の端末で、現象を確認
    • iPod touch(MKH02J/A iOS 10.1.1)のSafari、Chrome
    • iPad mini2(ME280J/A iOS 10.0.2)のSafari、Chrome

推測と対策

  • m4aファイルのサイズが大きすぎる可能性があります。
    • 2種類のm4aファイル(1.9MB、2.4MB)がそれぞれ再生されませんでした
    • ビットレート変更ツール等を利用し、音質を下げ、1.1MB程度に圧縮したところ、問題なく再生できました
    • ※ブラウザキャッシュを削除しないと、キャッシュからBGMを読んでしまい、いつまでたっても反映されないようです

公開バージョンで、ファイル系エラーを起こさないために

本事象に出くわしたことで、公開時に留意しておくべき点がいくつかわかりました

  • ゲーム停止は絶対に避ける(ゲーム進行できないより、音楽がならない方がマシ)
  • m4aファイルサイズを意識する

ゲーム停止を避けるために

とても素敵なプラグインがありました。

それでは、皆様も楽しいツクールライフを!