RPGツクールMVの動作軽量化対策について

ツクールMVでゲームを作る上での技術的な話になります。

 

まずツクールMVは、2Dゲームの割には動作が重いです。

出たての頃のツクールXPなんかよりはずっとましですが、性能が並以下のパソコンで動かそうとすると、意外とカクつきます。

どうしようもないので、いつもの方針、すなわち高スペックなパソコンで遊びましょうという方針にしていたわけですが……。


ふぅりん堂さんから、たまたまツクールMV軽量化の話を聞いたので、自分なりに実験をして、「橙天の銀翼」の軽量化に取り組んでみました。

 軽量化の方法については後で解説するとして、どの程度の効果があったかを先に書きます。

 

 ・Win8.1   Atom Z3735F 1.33Ghz    2GB  タブレットPC
改良前は、処理落ちやクラッシュが多発。かろうじて動作はするが、遊ぶのは困難。一歩歩くごとにカクつき、戦闘開始まで待たされ、決定ボタンも処理が追いつかないのか認識しない事があった。
改良後は、快適とはいえないものの、一応遊べるレベルになった。
相変わらず処理は重いが、クラッシュは無し。BGMはなり始めるのに5秒程度かかる。

 ・Win10  Intel Core i5-560UM 1.33Ghz    2GB   ストレージはSSD
改良前は、快適とはいえずストレスがかかるが、なんとか遊べるレベル。
改良により、起動時間やロード画面表示時間が大幅に短くなり、全体的な動作も速くなった。BGMの再生が遅れたり、稀に鳴らない事がある以外は、完璧ではないが快適に遊べる状態。

これよりややスペックが高いパソコンでは、概ね快適に遊べるようになった。

 

 


 以下具体的な方法。

◆Enigma Virtualboxの罠

ツクールMVの説明書で推奨されているEnigma Virtualboxでパッキングして難読化すると、動作がかなり重くなります。

パッキングと非パッキングデーターで比べてみた所、起動時間やロード画面の表示にかかる時間が、場合によっては倍以上違いました。

低スペックパソコンで遊ぶ場合は、数十秒の差になりえます。

またCPU使用率も全体的に高くなっている事が確認できました。メモリ使用量も少し上がっていたかもしれません。

ツクールMVのエディタについている暗号化機能の方がずっと軽いので、難読化にはそちらを使った方が無難です。

 

◆基幹システムの問題
※2017/6/8にツクールMV本体のコアスクリプトに、RPGアツマール版コアスクリプト1.2Cが取り込まれました。
そのため、現状軽量化のためだけにアツマール版コアスクリプトを導入する必要はありません。

リリース直後に比べるとマシにはなったとはいえ、2017年6月3日現在の最新版でも、ツクールMV本体の軽量化は十分ではありません。

動作をより快適にしたいのなら、RPGアツマール版コアスクリプトを導入するといいでしょう。

RPGアツマール版コアスクリプトは、いずれツクールMV本体のバージョンアップに取り込まれていくそうですが、現時点では軽量化のメリットが大きいです。
http://blog.nicovideo.jp/atsumaru/atsumaru-corescript.html

他にもNW.jsの上書きという方法もあるようです。
http://b.dlsite.net/RG26890/archives/upgrading_nwjs_within_rpgmakermv

アツマール版コアスクリプトが今後の更新でさらに改良される可能性が高いと考え、僕の場合は、アツマール版コアスクリプトを使う方法を取りました。

 

◆RPGアツマール版コアスクリプトの罠

導入すると、ゲームの動作が一部変わったり、すでに導入しているプラグインと干渉してエラーが起きるかもしれません。デバッグは必須です。

また、多岐にわたる項目を変更する、軽量化プラグインとの併用は避けたほうが無難でしょう。

 

僕が導入した、community-1.2c版コアスクリプトには、メモリ管理機能がついているのですが、デフォルトではメモリに溜め込める画像データの容量がかなり低く設定されています。

確かにメモリ使用量は減るのですが、メモリを活用しきれず、逆に快適さが損なわれる可能性もあります。

 

パソコン専用ゲームなら、アツマールコアスクリプトに同封されている、ベーシックプラグインを導入する事で、メモリにキャッシュできる上限値を増やした方がいいです。

プラグインの初期設定は20になっていますが、実は20の時点でプラグイン非導入時より上限値が上がっているように思えます。
(ベーシックプラグインのメモリ上限初期値がコアの初期値と一致していないのは一種のバグらしく、修正の予定があるようです。)

 

こちらが作っている「橙天の銀翼」は、多めに画像をキャッシュできた方が都合がいいため、数値を引き上げて30にしました。

 

30でタイトル画面でのメモリ使用量は300MB、ゲーム中での瞬間最大使用メモリは900MBほどでした。

実装メモリが2GBのパソコンの場合は、システムで1GBぐらいのメモリは使ってしまうので、低スペックパソコンで動かすつもりなら、これぐらいが許容できる上限値じゃないかと思います。

 

様々なパソコンスペックのテストプレイヤーに比較テストをお願いした所、ベーシックプラグイン無しとあり(30)では全てにおいて後者の方が評判がよかったです。

 

◆RPGアツマール版コアスクリプトと併用できた軽量化プラグイン例

他にもあると思いますが、橙天の銀翼では以下を用いています。

・セーブ/ロード画面高速化
http://ytomy.sakura.ne.jp/tkool/rpgtech/tech_mv/menu/accelerate_file_scene.html
重くなりがちなセーブ/ロード画面を軽量化します。

 

・YEP.81 – FPS Synch Option
http://yanfly.moe/2016/03/10/yep-81-fps-synch-option/
目標FPSに同期するかどうかのオプションを追加します。
デフォルトでは初期値はfalseに設定されているものの、trueにしておいた方がいいと思います。

trueの場合は 、ツクールMVのデフォルトと同じく、同期をする。
つまりスペック不足などで画面描写が間に合わない場合は、描写を飛ばす事でゲーム速度を維持します(カクつく)。
falseにして同期を切ると、描写が間に合わない時は、動作を遅くする事で一コマずつ描写します(スローモーションになる)。

複数のテストプレイヤーに実験してもらった所……
・低スペックで動作が非常にきついパソコン → 同期OFFの方が快適。
・スペックがやや不足しているパソコン → 同期ONの方が快適。
・スペックが十分なパソコン → 同期ONの方がやや快適。

同期をOFFにした方が快適になるのは、ギリギリ遊べるかどうかというスペックの場合だけでした。
多少スペックが足りないぐらいだったら、描写を飛ばして速度を維持した方が体感的にはサクサク動いて快適です。

 


 

 ◆その他軽量化に役に立ちそうな情報

大量のイベントが配置された巨大マップは負荷が大きいので、複数のマップに分割するなどして、1つ1つを小さくしたほうが無難です(僕はでかいマップが好きなので無視しますが)。

 

ツクールMVのデフォルトの画像や音楽ファイルは、高品質すぎて重いです。
メモリも食いますし、読み込み時間も長くかかる可能性があります。

ツクールMVには容量削減版の素材があるので、それに置き換えましょう。
Steam版の場合は、Steam上でRPG Maker MVを右クリックし……。
プロパティ→ローカルファイルタブ→ローカルファイルを閲覧→
dlc フォルダ→ BaseResource_Compressedフォルダ
と探せば、容量削減版が見つかります。

それ以外の素材の容量を削減するにはこちらのサイトを参照するといいでしょう。
http://fanblogs.jp/tabirpglab/category_29/

ただ、ありとあらゆるファイルの容量を削減すると、どうしても品質が落ちます。
そういう場合は、例えば大切な1枚絵などは容量を落とさないで、他のファイルのみ対策するなどメリハリをつけてやるといいでしょう。