RPGツクールMVでのAndroidアプリ化のこととか

こんばんは。
あそです。

ブログを書いてませんでしたね……。
アプリ化作業に追われ、ようやくコエヲタヨリニ。のAndroid版を出すことが
できました!!

koetayo_banar.png

↑ダウンロードは無料なので、ぜひぜひDLしてください↑

※iOS版は審査待ちから動いてくれません……。
 すみません、もう少々お待ちください。

さて、コエヲタヨリニ。ですが、RPGツクールMVで製作しています。
ツクール初のマルチプラットフォーム対応で、スマホにも出力可能ということで、
期待も大きかったのですが、

「RPGツクールMVではスマホアプリにするための下準備ができる」
ぐらいで考えておいた方が良いかなと思いました。

ゲーム自体はRPGツクールMVで作れますが、
そこからAndroidやiPhoneアプリにしようと思うと、結構な作業があります。

作業に当たってはcretia studio様のブログをかなり参考にさせていただきました。

http://studio.cretia.net/
↑サイトはこちら↑

特に困ったのはAndroidアプリ化についてでした。
下記に記載していきたいと思います。

私はプログラミング等の知識はほぼ無いので、
説明が間違っている場合もあるかもしれません。
その際にはご指摘等いただけると幸いです。

AndroidはOSのバージョンや機種ごと、
はたまたAndroid5.0から実装されている「AndroidシステムのWebView」によって
挙動がかなり変わってきます。

私がRPGツクールMVで製作したゲームをAndroid化するにあたって
試した手法は次の3通りです。
※ツクールのバージョンは1.3.5です。

■RPGツクールMV公式通りのやり方(Python版のCrosswalk10)
■Cordova+Crosswalk23
■Cordoba+AndroidのWebView56

以上の3通りです。
このやり方にはそれぞれメリット・デメリットがありました。

まず、
■RPGツクールMV公式通りのやり方(Python版のCrosswalk10)
ですが、
全体的に少し重たくなります。
(画像処理及びBGMやSE等)
BGMは1秒ぐらいの遅延が発生したりするので、
イベントによっては、「ここからBGMを鳴らして盛り上げるぜ!」という時に
BGMが後から流れてくる情けないことになってしまいます。

また、広告を入れたり、スマホ自体のネイティブな機能を使うのは
かなり難しそうです。
(詳しく調べてないので、できるかできないか分かりません)

ただ、動作的には少々重たいものの、安定はまだしてるほうだと思います。
というのもCrosswalkというWEBブラウザエンジンを同梱してアプリ化するので、
どのスマホでも同じ動きをしてくれる。というのがメリットだそうなので、
安定してくるのかなと思います。
AndroidOSも4.0から対応してるようです。
※ツクールMVはAndroidOS4.4から対応としています。

■Cordova+Crosswalk23
これめっちゃ苦戦しました…。
Cordovaはモバイルアプリケーションのフレームワークだそうで、
Androidアプリ化するための手法の1つのようです。

Cordova自体にWEBブラウザ機能は無いので、
スマホ本来のWEBブラウザ機能を使うか、他のWEBブラウザ機能を同梱して
アプリ化するかになります。
ここでは、Crosswalkを同梱してアプリ化しました。

が、CordovaのCrosswalkはバージョンがいくつも存在していて、
バージョンによって挙動が変わります。
最新版は23になります。

昔のバージョンで安定したのがあるようなのですが、
現在はAndroidのセキュリティの関係上、19以上のバージョンしか入れることが
できないようです。
(海外のフォーラムを漁って得た情報なので、真偽は分かりません。
 もしかしたら入れる方法があるのかもしれませんが、
 私は見つけることが出来ませんでした)

そして、このCorsswalkのバージョンによる挙動ですが、
まず19~22までのバージョンは音が鳴りません。
webaudioにバグがあるとか何とかで、まったく音が鳴ってくれません。

なので、音を使うゲームに関しては最新版の23しか入れることが
できないんですね。
18以下のバージョンでは音が鳴るようなのですが、
cordovaに蹴られて入れられませんでした。

で、この23のバージョンも問題があります。
それは、アプリがバックグラウンドにいっても音が鳴り止まないことです。

ユーザーがプレイしている間、BGMが鳴っているとします。
「ちょっと休憩しようかな」
「人が来たからちょっと中止しよう」
として、ホームボタンや電源キーを押してスマホをスリープ状態にしたとしても、
BGMが鳴り止まないのです。

これは結構致命的な問題かと思います。
どうもvisibilitychangeが発火してないくさいです。
Cordovaの機能で
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
を実装すれば、効いてくれたのですが、
まれに失敗することがあり、信頼性に欠けました。

あと、BGMの遅延がひどいです。
2~3秒ぐらいのラグはある気がします。
その他は安定していて、Android4.0等からでも動くので、
このオーディオ周りの不具合を直すことが出来れば、
一番良い選択肢なのですが……。

ちなみにCrosswalkの開発は23で終わりらしいので、
もう改善されることは無いのかもしれません。

■Cordoba+AndroidのWebView56
今回、コエヲタヨリニ。はこれを採用しました。
Cordovaでアプリ化しますが、WEBブラウザの機能は、
ユーザーのスマホに入っているもの(WebView)を使用します。

が、このWebViewですが、バージョンによって動作が変わります。
最新版は56になります。
ユーザーがWebViewをアップデートしているかどうかは、そのユーザー次第です。
それで挙動が変わってしまうのです。

色々なバージョンを試してみたのですが、
46ぐらいまでであれば、まぁまぁ大丈夫な動きをします。
※46で大体1年半ぐらい前のバージョンっぽいです。

しかし、それ以前のものになってくるとBGMの遅延や
ホーム画面に戻ってもBGMが止まらない。広告が出ない等の不具合が出てきます。

最新版の56であれば、BGMの遅延もほぼなく、安定しているのですが、
ユーザーが最新版にしてくれているとは限りません。
なので、自分のスマホのバージョンを46まで落とし、46でも動作するようにしました。

それが、ゲームを始めた瞬間に行われる「ロード」の正体です。
Webviewが56の最新版であれば、BGMの遅延はほぼ無いので、事前のロードは必要ないのですが、
WebViewが古いバージョンの人のために、ゲーム開始時にBGMをプリロードするように
しています。

が、最新版の56であれば問題ないのかというと、そうでもありませんでした。
WebViewの最新版である56では、タッチの挙動が変わったようで、
1回タッチすると、何回もタッチしたという結果が返ってきてしまいます。

RPGツクールMV上では、タッチしただけなのにメニュー画面が開いたり、
セーブしようとすると連続タッチされて、ファイル1しか選べ無かったりと、
まともにプレイできる状態ではありませんでした。

これは、コアスクリプトの
document.addEventListener('touchstart', this._onTouchStart.bind(this));
となっている箇所を
document.addEventListener('touchstart', this._onTouchStart.bind(this), {passive: false});
とすることで解決しました。
同じような症状をお持ちの方はお試しください。

たぶんchromeでプレイする場合も同じ症状が出るんじゃないでしょうか。

これで、一番安定するものを見つけることができたのですが、
この手法はAndroid5.0以上しか対応していません。
WebViewはAndroid5.0から現れたものなので、それ以前のものは
OSの中に入っているwebkitを使うようなのですが、
それがwebaudioには対応していないので、音が鳴りません。
できれば、Android4.4何かにも対応させたかったのですが、
私の技術と頭ではこれが限界でした。


まとめになりますが、
■RPGツクールMV公式通りのやり方(Python版のCrosswalk)
 一番無難な選択肢だが、広告を入れたりするのが難しい

■Cordova+Crosswalk23
 オーディオ周りの不具合が何とかできれば一番いいんだけど…

■Cordoba+AndroidのWebView
 ユーザーがWebViewを最新版の56にしてればパフォーマンス最高!
 でも、Android5.0以上しか対応できない。


ちなみに、crosswalkにするとパフォーマンスが向上するという記事が検索すると出てきますが、
昔の話のようです。

下記はBGM4曲のプリロードタイムを計測したものですが、
●cordova+crosswalk23
   18秒
●cordova+webview56
   6秒
と3倍の差が出ました。

てな感じでした。
知識も無い素人の書いたものなので、誤り等あるかもしれません。
その際にはご指摘やアドバイスをいただけるとうれしいです!

最後に、このアプリですが、トリアコンタン様のピクチャのボタン化プラグイン
大活躍してます!たぶんこのプラグインが無かったら作れてなかった……。



コエヲタヨリニ。の製作経緯とか

こんばんは。
あそです。

やっぱりブログが続きません。

前回のブログ記事でも書かせていただきましたが、コエヲタヨリニ。を予約トップ10に出させて
いただいており、有難いことに予約が計1200ほどになりました。

ご予約いただいた皆様、本当にありがとうございます。
製作の励みになります。

と、同時に「良いもの」にしなければ!とプレッシャーも感じております。

で、ブログのネタに困ったので、今日はコエヲタヨリニ。の製作経緯を
書きたいと思います。

ヘンカンカイシ。の製作を終えて、次は何を作ろうかと思いました。
これまで、ストーリー重視のノベルゲームを作ってきていたので、
久しぶりにゲーム性を重視したものを作りたいということと、
短編的なものを作りたい。というのはありました。

ゲーム性があるゲームといえば、コープス二次創作以来作ってなかったんですよね。
原点回帰というほどではないですが、ちょっとそっちの方向のものを作りたいと思いました。

そして、プレイ時間1時間程度の短編。
これは、手軽にプレイできるものが良いなと思ったことからでした。

で、上記のところまでは考えたのですが、それ以上のことは何も考えてませんでした。

そんな時にりこ。さんとツイッターで「何かやりたいね」というやり取りがあり、
りこ。さんの声がメインの何かにするか。と思いました。

・ゲーム性のあるもの
・1時間ぐらいの短編
・りこ。さんの声がメイン

まで考えて、コエヲタヨリニ。の企画が生まれました。
何で脱出ゲームになったのか覚えていませんwww

一番重要なところが思い出せない……。

私は脱出ゲームはあまりやらないのですが、
(どちらかと言えばリアル脱出ゲームに参加したことがあります)

視覚情報が無くて、声を頼りに脱出する脱出ゲームなんて他にはたぶん無いぞ!と
喜んだことを覚えています。

そして、製作に入ってみると、短編のはずが、
やりたいことが色々出てきて、短編では無くなりました。

プレイ時間ですが、普通にプレイして1つのエンドを見るまでに2時間ぐらいかと思います。
マルチエンド(エンド4種類)の予定なので、
エンドを全て見ようと思うと、4時間ぐらいかかるかもしれません。

製作も最終段階に入ってますが、引き続き頑張ります!
3月上旬か中旬には出したいところです!
りんごさんが機嫌良ければ!



コエヲタヨリニ。 サイトオープンしてます!

こんばんは。
気づけばブログを全然書いてませんでした。
性格が出ますねやはり……。

コエヲタヨリニ。ですが、ちょっと前からサイトをオープンさせました。
スマホゲーなので、サイトもスマホ対応させてみました。

http://amiso.cool-biz.net/koetayo/index.html

↑まだ見られていない方はぜひご覧ください!↑

koewotayorini.png

そしてそして!イラストも上がってきました!
今回は拡散『希望』でイラストをご担当いただいた大佐さまに
キャラクターデザインをお願いしています。

大佐さまのサイトは下記URLからどうぞ。
http://www12.plala.or.jp/bloody-rose/

ゲームの製作の進捗具合ですが、
全てのシステムは組み終わっており、追加のボイス等待ちなのと、
ひたすらにデバッグを行っている状況です。

めっちゃバグ出てきます。

3月公開予定としておりますが、
できれば3月上旬には公開したいと考えています。

Androidは審査も通りやすく、即日に公開できることも多いのですが、
iOSの場合はリジェクトされたり、審査に4日から1週間とかかかったりするので、
正確な公開日が読めないところがつらいです。

とりあえず引き続き頑張ります。

新作「コエヲタヨリニ。」製作中です!

こんばんは。あそです。
頑張って新作の製作をしているので、少し告知を……

title.png

新作「コエヲタヨリニ。」は脱出ゲームになります。
基本的なUIは下記のものです。

3.png

脱出ゲーム!
初めて作る脱出ゲームです!
(コープス二次創作も脱出ゲームに近いものはあると思うのですが)

コエヲタヨリニ。はその名の通り
「声を頼りに脱出する脱出ゲーム」です。

監禁された女の子から電話を受けたあなたは、
女の子からの電話の声を頼りに、ゲームを進めていきます。

女の子のキャラクターボイスはりこ。さんにご担当いただいてます。
りこ。さんと言えば、カクサンキボウ。のこゆみですね!
今作でも素晴らしい演技をしてくれています。
台詞の数はなんと約600台詞!!
本当に電話をしているかのように感じる演技力はすごいです。

主人公=あなた

で、出来る限りゲームの世界に入り込めるようにアイデアを練ってます。
これが非常に難しいです。

主人公がストーリー上にいる、例えばカクサンキボウ。であれば

徹「演劇部なめんなよ!」
徹はバイクにまたがった!

と表現できるのですが、
主人公=プレイヤーだと、プレイヤーによって考えることや感じることは違うので、
決め付けて表現できないんですよね。

これを克服するためにあるアイデアを採用したのですが、
実際にプレイしてみていただければ、お分かりいただけるかもしれません。

現在、進捗は70%ぐらいなので、引き続き製作頑張ります。
3月ぐらいには公開できたらいいなぁと思っています。