RPGツクールMVで作ったゲームをiPhoneアプリ化するときの問題と解決方法

最近、RPGツクールMVでゲームを開発しています。Webで動かすならツクールインストールから5分もあればできるんですが、iPhoneアプリ化は現状致命的なバグが起こりまくります。ここ数日間、世界中のフォーラムで情報収集して、やっと動かせるようになったので、忘れないうちにメモしておきます。プラグインが新しく作り直されるまで(いつになるか見当もつきませんが)この環境をキープしておないと、まともに動かせないです。

まずビルド環境などはRPGツクールのヘルプに載っているのでそれを読めばすでにiPhoneアプリを作った事がある人は簡単に構築できます。ただ、MVはNode.jsのブラウザアプリなので、ターミナルを使ってビルドを行う関係上、少し慣れが必要かもしれません。しかし一度流れを覚えると簡単にビルドできるようになります。

一度、ビルドまで行い、流れをつかんだらそのシーンは捨ててください。そのシーンはヘルプ通りに作ったとしたら、UIWebViewで動いています。UIWebViewは一度バックグラウンドに行って戻ってくると異様な重さになります。また、イヤホンをゲームの途中で刺すとビープ音のようなノイズがずっと流れます。あとは、音楽アプリの音が必ずオフにされてしまいます。スマホ用バーチャルコンソールプラグインのUIも笑えるくらい拡大されます。

こういったバグやエラーを回避するために、WKWebViewを使います。最近GoogleもiOS用のchromeに取り入れたことで話題になりました。

ということで、余計なエラーがおきないようにまったく新しいシーンを作ります。

cordovaでのセットアップは以下。

cordova create myApp my.project.id myApp
cd myApp
cordova platform add ios@3.9.2
cordova plugin add https://github.com/Telerik-Verified-Plugins/WKWebView
cordova prepare
cordova build

cordovaのバージョンが最新ではありませんが、あえてこのバージョンを使います。というか、この構成以外まともに動きません。

Apacheから提供されているWKWebViewもありますが、local storageがまともに機能しません。動いてはいるんですが、シミュレーターで確認したところ、local hostファイルがアプリを起動するごとに生成されるため、セーブデータが読み込めなくなり、コンテニューできなくなっているようです。TelerikのWKWebViewプラグインであれば、local hostファイルは12344という番号で固定されているので、セーブデータがうまく動きます。セーブデータをサーバーにアップすることも考えましたが、さすがに技術的な知識が少なすぎるので今回は見送りました。

次にxcodeの設定です。

まず、プロジェクトのInfoからDeployment Targetを修正、8.0に変更します。ここまでで、xcodeのシミュレーターなら動きます。

次にBuild SettingsからEnable Bitcodeの項目を検索、NOに変更します。これをやらないとiPhoneに転送する際、「does not contain bitcode」といったエラーが出ます。

アプリ化のための設定は以上です。TelerikのWKWebViewプラグインが更新されるまではcordovaのバージョンは上げられないです。

あとはステータスバーを消したければ、Resourcesの中のinfo.plistに「View controller-based status bar appearance」を追加してNOに、「Status bar is initially hidden」を追加してYESに変更すれば良いです。

もしかしたら、「WKWebViewPluginEmbeddedServerPort」の番号を書き換えたらlocal hostファイルのファイル名変更も可能かもしれません。やってないのでまだわかりませんが。

全部わかってしまえば大したことないんですが、さすがに疲弊しました。

テキストを書き換えるだけでプログラムできる技術が欲しいと、IBを使わないアプリ作りを目指していましたが、iOSの度重なるUIKit周りの修正(ほぼ総取替え)についていけず、DoorQuestもUnityかWebアプリで作り直そうと考えていた矢先、RPGツクールMVがNode.jsを使ってWebで動かせるエンジンとして発売されるということだったので、色々勉強できそうだと作り始めてみたら、iPhoneアプリ化は同じくらいの魔窟だったという感じです。

2013-02  | 2013-05  | 2013-07  | 2016-02