RPGツクールMVでアプリを作る際に気をつけたことリスト

※上級者以上を想定しています。
 コアスクリプト? プラグイン? Javascript? という方は回れ右推奨です♪

・この記事はver1.5.0 2017年 7月時点の情報です。
・コアスクリプトの改造等を行うため、動作未保証、サポートは致しません。
・プラグインの提供はしていません。自分で改造、または書いてください。


【音声ファイルのデコード遅延解消】
AndroidはWebaudio方式ではデコードに時間が掛かる
 →(解決法)Html5Audio方式にする
       プラグインを書き換える
        →自家製JS

・注意点
Html5Audio方式では同時に音声を鳴らすことができない
BGMだけ、あるいはSEだけHtml5Audio方式、その他をWebaudio方式にする等使い分けをするといい

iOSはWebaudio方式でもデコードに時間が掛からないため改造は不要


【アニメーションに色相を設定しない】
アニメーションに色相を設定すると、読み込み時間が増大する
 →(解決法)色相を変えない
       プラグインを書き換える
        →自家製JS


【画面の色調変更を使用しない】
色調変更処理に負荷が掛かる(必要以上に細かい、丁寧な処理が行われている)
 →(解決法)色調変更をしない
       プラグインを書き換える
        →自家製JS


【SpriteクラスにsetBlendColor処理を多用しない】
フラッシュ処理をSprite画像に適用すると負荷増大(ボスを倒した時のフラッシュ処理は特に酷い)
 →(解決法)フラッシュを止める
       →自家製JS(ボスを倒すエフェクトにフラッシュが掛からなくなる)

<TIPS>
どうしてもフラッシュ処理を入れたくなったら?
 →(解決法)通常の画像と明るく補正した画像を交互に表示させる。

アプリ版ひびかけ色のキセキでは下記の一枚画像を切り抜いて、交互に表示させています。

CommandSet

Forwardアイコンが点滅しているように見える。
2

・導入方法
 →自分でプラグイン書いて下さい

【フレームレート調整】
デフォルトの60fps処理は重い
 →(解決法)不要なシーンではフレームレートを落とす
       →自家製JSを導入の上、フレームレート落としたいシーンに変数を手動設定
        上記JSでは変数19番の数値が大きいほど、フレームレートが落ちます

・導入方法
 →フレームレートを落としたい場面で変数に代入してください
  その他、自分でプラグイン書いてください


【頻繁にupdate処理をするオブジェクトにWindowクラスを使わない】
Windowクラスに表示した内容は、refresh時に一度全て消去し、表示しなおすので負荷が大きい
 →(解決法)Spriteクラスで表示させる

13413289_1403491796625029_1658153425_n

戦闘時のステータス表示が分かりやすい。

4

上記のアクター名前、ステータスウィンドウ、HP数値、MP数値、TP数値は
Windowクラスで表示し、内包されている文字テキストです。
例えばハロルドのMPを1減らす場合、すべての項目が一度全部消され、
MP数値だけでなく、名前、HP、TPを表示しなおします。
無駄な処理が多い分、負荷が大きくなります。

3

上記のアクター画像、ステータス枠、HP数値、MP数値、アイコンは全て画像ファイルです
(「シイナ」「62」「61」などの名前、数字も画像ファイルです)
シイナのMPを1減らす時、MP数値の画像のみ表示しなします。
このゲームの特性上、6~8フレーム毎にMPが1増えるので
Windowクラスでの処理負担は致命的なものになります。

ちなみに、スキルの表示ウィンドウのみWindowクラスです。
「61」「62」などの数値画像は、正確には事前に用意された画像ファイルではなく
ゲームスタート時に自動生成された、Bitmap画像です。

【cordovaプラグイン連携】
軽量化とは別ですが、「cordova.js」プラグインをプロジェクトに入れることで
cordovaプラグインを使えるようになります。

5

・cordova環境でビルドする必要があります。
・プラグインコマンドはcordovaプラグインのコマンド方法に準拠します。
・導入するcordova.jsは「Android」「iOS」などプラットフォームを合わせる必要があります。
確認済みcordovaプラグイン
cordova-plugin-x-socialsharing(LINE、ツイッター等の共有機能)
cordova-plugin-inappbrowser(iOS、Androidでゲーム内から外部ブラウザを起動する)
cordova-plugin-ad-unityads(ゲーム内からunityadsを表示させる)

その他加筆予定。