「ワールドピース&ピース」リメイク計画5

面倒なシステムは思い切って大幅に見直しをする!

この記事執筆時点では「シミュレーションバトル」の制作をしています。

オリジナル版の「シミュレーションバトル」画面

この「シミュレーションバトル」ですが、プレイヤー移動操作に対してやり直しがきかなかったりするなど、いま見ると操作性を改善したいなと思うところがぽろぽろと出てきます。

とりあえず「移動操作をやり直しできるようにする」機能は必須だろうということで、さっそく実装しています。

この「シミュレーションバトル」に限らず、オリジナル版「ワールドピース&ピース」では、ゲームシステム全般に癖が強いものが多いと自分では思っており、仕様についていけなかった方もそれなりにいらっしゃいました(※これは完全に僕のせい)。一方で「ゲームとして熱中できて面白かった」というご感想も少なからず頂いたことがあります。

テンポが悪い部分、とっつきづらい部分、操作性に難ある部分などを改善すれば、決して悪くないものに仕上がるんじゃないかと思い、あれこれと考えている最中です(この作業は楽しいけど、カロリーをすごく消費しますね…)。

とりあえず以下の点は改良したいところ。

  • シミュレーションバトル時の全体的な操作性
  • シミュレーションバトル時の敵の行動が長すぎ(ダレてくる)
  • 全体的にダンジョンのギミックありすぎ&長すぎ → もっとシンプルかつ短くていい
  • プログレッションバトルをもっとテンポ良くする(というかこのバトル、分かりにくすぎるね…)
オリジナル版の「プログレッションバトル」画面

何とかして楽に制作できないか?

さてオリジナル版では「スクリプト」が使えなかったので実装が大変でしたが、MZで使われているプログラミング言語である「javascript」で書くと、制作時にかなりの手間が削減できます。こういう工夫をしないと、本作みたいな大長編など制作がいつまで経っても終わらないですからねえ…

MV・MZのエディタの「イベントコマンド」はつまるところ「js」フォルダにあるコアスクリプトに記述された処理を呼び出しているわけで、こういったオリジナル戦闘などを作る際は、自分がjavascriptで記述した「独自イベントコマンド」を作って呼び出した方が、はるかに手間がかからなかったりするわけですね(もちろん相応の慣れが必要ですが)。

MV・MZで「スクリプト」を呼ぶと、内部的には「eval()」なるものの処理が走ります。独自コマンドを作る際、このeval()を介さない処理に改変する事も可能です。「スクリプトを多用すると重くなりやすい」とはよく言われており、こういったひと手間をかけて「実装をよりラクにする & 軽量化でプレイヤーにも優しい」ように作りたいなと思っています。

この辺りの話は長くなるので割愛しますが、今の時代はChat GPTなどに聞けばすんなり答えてくれるようになってきています。僕もまた、日々勉強中です。

余談:MVMZ軽量化に関するちょっとしたTips

さて「軽量化」といえば、イベントコマンド「スイッチの操作」「変数の操作」(※これ以外にもあります)を呼ぶと、実はそのたびにマップ全体に配置された「イベント」に対して更新処理が走ります(【rmmz_objects.js】の【onChange】で検索)。

よく「マップに大量にイベントを配置している & 並列処理を多用している」→「重い…ひい、どうしよう………」という話を耳にしますが、並列処理中にスイッチ操作や変数操作をしてそのたびにマップリフレッシュを走らせていたら、どうしても重くなります。

解決策としては、

【1】スイッチ・変数操作時はスクリプトで下記のように直接ON/OFFを切り替える

$gameSwitches._data[スイッチのID] = true / false;
$gameVariables._data[変数のID] = 999999;

調べると、これを解説されている方々の記事を見かけますね。

↓以下は若干(?)ややこしい事柄なので、話半分の気持ちで読んで頂けると。

【2】マップ読み込み時に、そのマップの全てのイベントの「出現条件」に指定されたスイッチID、変数ID、コモンイベントのトリガーになっているスイッチIDを調べ、それ以外のIDの操作の場合はonChangeしない(各setValue()の挙動を書き換える)

→これだとある程度自動的に制限できるかと思います。【Map〇〇〇.json】の「events > pages > conditions」から取得できます。ゲームプレイ中だと「$dataMap」でしょうか。
【3】プラグインを作り、onChangeするIDをそこで完全に指定してしまい、それ以外は行わない。

→「ワールドピース&ピース・リメイク」で取っているやり方はこの【3】になります。
まあ要はざっくり言うと、重たい処理は必要な時だけ走らせよう、という考え方になります。

僕も知らない事は山ほどある人間なわけなので、日々勉強しています。ただ上記を足掛かりにGoogleやChatGPTで調べる一助になれば幸いと思い、ざっと記述しました。

引き続き、こつこつ進めます

正直、制作中止になるのを何とか回避したいとは思っていますね…とにかくボリュームがあり過ぎるゲームなので。僕は情報公開する際、「現時点では公開を確約しない」と一言添えることが多いですが、これは安易な約束は禁物と思っているからです。完成させたい意志はもちろんありますが、制作に割けるリソースの問題はオリジナル版を作っていた時よりもはるかに複雑かつ厄介になってきています。どうかその点をご了承下さると幸いです…!

あと以前、試験的に「16-bitスタイルのRPG」を作っていたのですが、そちらはいったん「ワールドピース&ピース・リメイク」の方に統合しています。何だかんだその時に色々と研究(?)していた事柄は無駄ではなかったです。

余裕があったらもちろん、バリバリの「ザ・16-bitの王道RPG!」も作りたいですね。

タイトルとURLをコピーしました