口だけブログ

ツクールやunity、ゲームのこと たまに野球や素材配布など


アツマールで一番大切なのはゲーム内容でなくてセーブ容量!?



ツクールMVのゲームをアツマールに投稿しようとしている皆さん!
セーブデータの容量を意識してゲームを作ってますか!?

ついついゲーム内容に目が行って、セーブ容量のことはあまり考えていない人が多いのではないでしょうか?

しかしアツマールでは1アカウントごとにセーブデータの総容量に制限があります。

セーブ容量が大きければ、内容がどんなに面白くてもプレイヤーから見放されてしまう可能性があります。

したがってゲームの内容よりも、まずはセーブ容量を抑える方が重要だと言えるのではないでしょうか?

自分の苦労談

こんな記事を書いている私も、セーブ容量に泣かされた1人です。

私はゲームクリエイターズキャンプ『最凶の "男の娘"』というゲームを作りました。

image1


基本はツクールMVのデフォ戦闘システムを自分好みに改造しただけで、総プレイ時間も2時間程度と中編だったため、 セーブデータが肥大化するなんて夢にも思っていませんでした。

しかしリリースしてから悪夢が始まりました。

そう、プレイヤーの方々から多数のセーブ容量肥大化のご報告を頂いたのです!

多いものだと150ブロックもありました。

「これはさすがにマズイ」と思った私は、貴重な土日をフルに使って、セーブデータに関する調査をしました。

その結果…


セーブ容量を約1/5に抑えることに成功しました!


結果が出たからまだ良かったものの、この作業は本当に地獄でした。。

本記事では同じような犠牲者を出さないために、私が得た知見を忘れないうちに記したいと思います! 
また、スクリプトの知識がなくても大丈夫なように書いてます!


まずは確かめてみよう!自作ゲームのセーブ容量と危険水域

セーブ容量の調べ方

ではさっそく、自分のゲームのセーブ容量を調べてみましょう!

基本的にはゲームを進めれば進めるほどセーブ容量は肥大化するので、ある程度進めたセーブデータを用いることをオススメします。

「save」フォルダ配下にある「file[xx].rpgsave」がセーブファイルになります。 ([xx]はセーブファイルの番号の数値)

このファイルを選択するとサイズが出てきます。

セーブ容量
画像の例だと163kbと出ていますね。 1ブロックは5kbなので32ブロックくらいです。

セーブ容量の危険水域

ツクールMVのゲームでセーブ容量が大きいとはどれくらいのことを言うのでしょうか?

もちろん明確な定義があるわけでなないのですが、個人的には10ブロックを超えると大きいなと感じます。

いわゆるデフォゲーだとだいたい5ブロック程度なので2倍以上ですね。

アツマールのセーブファイルを消す時に、やっぱり2桁あると目に付きやすく大きいと感じてしまいます。

あなたのゲームのセーブ容量はどれくらいだったでしょうか?

次章から本記事の本題であるセーブデータの肥大化の原因と容量の削減方法について説明します!

セーブデータが肥大化する原因

セーブデータ肥大化の原因は大きく分けて2つあります。

巨大なマップデータによる肥大化

ツクールMVでは、セーブする際に現在いるマップのデータをごっそり保存します。

そのためイベントが多いマップでセーブするとセーブ容量が肥大化します。

対策としては以下が考えられます。

  • 1マップあたりのイベント数を減らす
  • イベント数の多いマップではセーブできないようにする

もし、この方法で解決したのならば万々歳です。

でもそう簡単にいかないでしょう。

というのも多くの場合で、プラグインによってセーブデータが肥大化している可能性が高いと私は考えているからです。

プラグインによる肥大化

はい、これです。

セーブ容量肥大化に悩む方の多くは、使用しているプラグインに原因があるのではないかと思っています。 (実際に私はそうでした)

というのも、著名なプラグインでもセーブ容量のことはほとんど考えられていないものがあるからです。

この問題は特に海外製のプラグインに多い気がします。

例えばYEP_ItemCore.jsを使っている方は多いのではないでしょうか?

このプラグインはアイテムに関して様々な機能を追加してくれる素晴らしいプラグインです。

実際に私もお世話になっています。

しかしこのプラグインを使うとセーブデータが肥大化しやすいです。

具体的には以下のようなことがあります。

  • アイテムのデータを1つ1つ保存するようになるため、アイテム数に応じてセーブ容量がどんどん増えていく
  • 特定のタイミングで存在するアクターデータを全て生成するため、データベースに登録しているアクター数が多ければ多いほどセーブ容量が増える

上記の問題に対しては解決策がいくつかあるにもかかわらず、特に対策が取られていません。

これは「アツマール以外では特に問題にならないセーブ容量だから」だと私は考えています。

上記のプラグインを使うと確かにセーブ容量は肥大化しますが、ダウンロード版等でプレイするだけなら特に問題は起きません。

海外にはアツマールはないため、海外のプラグイン製作者はセーブ容量のことはあまり考える必要がないのです。

ならば海外のプラグインを避ければいいのか…と思う方もいらっしゃると思いますが、日本製のプラグインでもセーブ容量が肥大化してしまう物はあります。

したがってセーブ容量が肥大化した場合は、肥大化の原因となるプラグインを特定して対処する必要があります。

次にその方法を説明します!

セーブ容量肥大化の原因となるプラグインを特定してセーブ容量を削減する方法

ハロルドくんはある日、作成中のゲームのセーブ容量が肥大化していることに気づきました。

そのサイズなんと164kb! 約30ブロックに相当する大きさです。

使用しているプラグインは3つ…どれかに原因があるはずです。

WS000014


ではハロルドくんと一緒に犯人探しをしていきましょう!


容量が大きいところを探そう!

セーブファイルの中身を確認してみよう!

まずはセーブデータの中でどこが肥大化しているのかを知る必要があります。

試しにセーブファイルを開いて確認してみましょう!

「save」フォルダ配下にある「file[xx].rpgsave」がセーブファイルになります。 ([xx]はセーブファイルの番号の数値)

これをメモ帳等のテキストエディタで開くと…

WS000010



なんだこれは!?

わけがわかりません。

当然です、セーブファイルは改ざんされないように暗号化されているからです。

そこでRTK1_Coreを使います!

こちらのプラグインは、セーブファイルを暗号化しないで出力できる素晴らしいプラグインです。

プラグインパラメータは以下のように設定して下さい。


設定


この状態でもう一度セーブすると以下のように新しいファイルができていると思います。

json


これが暗号化されていないセーブデータです。

この「.json」となっているファイルを開いてみます。

WS000012


なんとなく読めそうなファイルになっていますね!(もちろん内容は意味不明だと思いますが…)

このデータの中のどれかが肥大化してしまっているため、セーブ容量が肥大化しています。

どこが肥大化しているのか、眺めるだけではよくわからないと思います。

そこで肥大化していないファイルと比較を行って特定していきます。

セーブファイルの中身を比較してみよう!

RTK1_Core以外の現在使用しているプラグインをすべてOFFにして、ニューゲーム→セーブをしてみましょう。

容量の小さい、キレイなセーブファイルができるはずです。

このキレイなセーブファイルと肥大化したファイルの中身を比較することで、どこが肥大化しているのか特定することができます。

ファイルの比較にはこちらの比較ツールを用います。

片方に肥大化したファイルの中身、もう片方にそうでないファイルの中身をコピペして「比較する」ボタンを押すことで違っている箇所だけを色で表示してくれます。

WS000015


この時、ちょっとした違いは無視して構いません。

大きな違いを探していきます。

下にスクロールしていくと…


WS000016


なんだこれは!?(2回目)

肥大化したファイルには謎の巨大データがあります。

先頭を見ると、「allEnemyData」と書かれていますね。

これはこの巨大データの名前を表しています。

次はこのキーワードを使って、どのプラグインが原因か特定していきます。

原因となるプラグインを特定しよう!

ハロルドくんが使用しているプラグイン(*全て架空のプラグインです!)は以下の3つです。

  • BattleSpeedUp.js(戦闘速度の向上)
  • OriginalEnemyBook.js(敵の図鑑を作る)
  • PlayerMoveSpeedUp.js(プレイヤーの移動速度アップ)

この中に犯人がいるはずです!

「js/plugins」フォルダに行き、さきほど見つけた「allEnemyData」というワードで検索をしてみます。

そうすると…


検索


1つでてきました!

「OriginalEnemyBook.js」の中で「allEnemyData」というワードが使われているようです。

「OriginalEnemyBook.js」が犯人なのは間違いなさそうですね!

試しに「OriginalEnemyBook.js」だけをOFFにしてニューゲーム→セーブをしてみると…

減ってる


無事にセーブ容量が減りました!

自分やゲームにあった対処方法を考えよう!

無事に犯人がわかりセーブ容量が減りましたが、今のままではプラグインをOFFにしただけなので機能性を1つ失った状態になります。

元々の機能性を維持しながらセーブ容量を減らすには、以下の方法のどれかを取る必要があります。

  • プラグインを改造してセーブ容量に影響を与えないようにする
  • 似た機能性の他のプラグインを試す
  • (要望受け入れ中の製作者であれば)製作者に問い合わせてみる

プラグインの知識がない場合は下の2つが候補になるでしょう。

これらがすべてできなかった場合は、残念ながらプラグインの導入を諦めるしかないです…。

冒頭に書いたように、セーブ容量を現実的な値にすることはゲーム内容よりも大切だと思っているので、多少の機能の切り捨ては仕方ないと割り切りましょう。

どうしてもプラグインは使いたい、しかしセーブ容量も抑えたいというときは、プレイヤーの方に色々なゲームに対して積極的にフィードバックを書いてもらうように伝えるといいでしょう。

アツマールではフィードバックを送るたびにセーブ容量が増加します!

この事実をプレイヤーの方へ広げていけば、製作者はセーブ容量のことを意識せずにゲームが作れるようになるかもしれませんね!

ただ改造できればそれに越したことはないので、いつかプラグインを改造する方法も紹介できればと思います。


終わりに


本記事ではセーブ容量の削減方法について書きました。

「でもお前のゲームやったら普通にセーブ容量数十ブロックになったんだが?」というツッコミはなしでお願いします(笑)






概要

ゲーム公開時にうっかり初期位置を本来の開始地点に戻し忘れて、デバッグ時の位置から開始されてしまったことはありませんか?
03

本プラグインでは、非デバッグ時(公開時)は常に正しい初期位置、デバッグ時は『初期位置の設定』で指定した位置からゲームを開始できます!

それにより、いきなり魔王城から始まるような悲しい事故を防ぎます!

04


使い方

プラグインパラメータから初期位置のマップID、プレイヤーの座標を指定して下さい。

非デバッグ時は本プラグインのパラメータで指定した位置、デバッグ時は『初期位置の設定』で指定した位置からゲームを開始できます。

ダウンロード

更新履歴

  • 2019/02/03 ver1.00
    • 公開

連絡先

バグ報告等あればご遠慮なくどうぞ!

利用規約

  • 本プラグインは無料でお使いいただけます
  • 商用や年齢制限のあるゲームにも使用可能です
  • 本プラグインの改造、改変は自由ですが、再配布はおやめください
  • 本プラグインを使用したゲームを公開する場合は、著作権表記をお願いします


概要

ツクールMVの敵キャラから取得する報酬額に、幅をもたせることができます。

使い方

敵キャラのメモ欄に、

<minGold:最小の報酬額>

<maxGold:最大の報酬額>

を記述してください。

(例:<minGold:100><maxGold:200>)


記述がない場合や、指定がおかしい場合(最大額より最少額のほうが大きいなど)は、エディタに記載された金額が報酬額になります。

ダウンロード

更新履歴

  • 2018/09/14 ver1.01
    • 乱数を発生させるタイミングをエナミーのセットアップ時に変更
  • 2018/09/12 ver1.00
    • 公開

連絡先

バグ報告等あればご遠慮なくどうぞ!

利用規約

  • 本プラグインは無料でお使いいただけます
  • 商用や年齢制限のあるゲームにも使用可能です
  • 本プラグインの改造、改変は自由ですが、再配布はおやめください
  • 本プラグインを使用したゲームを公開する場合は、著作権表記をお願いします

↑このページのトップヘ