最近RPGツクールMZが発売されまして。 ブログ素材とかそういうもののために使っているのですよ。 自分でRPG作るのは時間とか色々成約があってまず作ることは無いけど。 アイキャッチとかはなかなかおもしろくできたりする。

で、最近のRPGツクールのエンジンについて調べてみました。

HTML5

とにかくRPGツクールのゲーム画面って、HTML5なんですよね。 バックエンドに空っぽのindex.htmlを置いて、JavaScriptで描画していく。 だからプレイ中もChromeのコンソールを開いてconsole.logでゲームパラメータを確認できる。 もちろんブレークも可能。 昔はプラグインがrubyで書かれていた気もするけど、今はJavaScriptで書くっぽいです。

関数を上書き

プラグインの書き方とかはいわゆるオーバーライド。 ・変数に関数オブジェクトを代入 ・元の関数をコールして、その次の行に自分の処理を書くような無名関数を作る ・変数をregister

こんな感じで動かすらしい。わかれば簡単ですね。

  // 元の関数をバックアップ
  const _Game_Interpreter_changeHp = Game_Interpreter.prototype.changeHp;

  // 元の関数を上書き
  Game_Interpreter.prototype.changeHp = function(target, value, allowDeath) {

    // バックアップした関数を実行
    _Game_Interpreter_changeHp.apply(this, arguments);

    // 追加処理
      console.log("change HP");
  };

本番環境

本番リリースした場合も暗号化とか色々できますが、やっぱりJavaScriptなのでどうにでもできてしまいます。 デフォルトだと右クリック(コンテキストメニュー)が無効化されているけど、その無効化している部分さえ見つけてコメントアウトすればいじり放題でした。

これ、セキュリティ高くないですねぇ。。