ロートル元ゲーム開発者がツクールでゲームを作る|ムシキング(仮)を作る

家具配置プラグインについては、まだ進展せず。自分にもう少しJavaScriptの知識があれば良いんですが、現状うだうだ言っても仕方がないので、次のテストに進みます。

このゲームではいろいろな昆虫を捕まえることができて、中でもカブトやクワガタはムシずもうに参加させることができます。このゲームでの戦闘は基本的にアクションですが、ムシずもうだけはデフォルトの戦闘システムを使用します。ただし、自分が戦うのではなく、戦闘開始時にムシを選んで召喚(?)しなければなりません。このシステムについてはプラグインで召喚システムがありましたので、それを使わせていただくことにしました。んでもって、これをバトルイベントで以下のように呼び出します。

◆変数の操作:#0001 = 0
◆ループ
  ◆アイテム選択の処理:#0001, 隠しアイテムA
  ◆条件分岐:#0001 ≠ 0
    ◆条件分岐:#0001 = 90
      ◆文章:Actor1(0), ウィンドウ, 下
      :  :いけっ、ぼくの\N[9]!
      ◆プラグインコマンド:SummonActor 9
      ◆
    :分岐終了
    ◆ループの中断
    ◆
  :それ以外のとき
    ◆文章:なし, ウィンドウ, 下
    :  :ムシを選んでください
    ◆
  :分岐終了
  ◆
:以上繰り返し

条件分岐の#0001=90っていうのは、カブトムシのアイテム番号です。実際は他にもヘラクレスオオカブトとかホソアカクワガタとか10種類ほどいるので、分岐も同じ数だけ作ります。プラグインコマンドの SummonActor 9 はカブトムシのアクター番号になります。

これで召喚の方はうまくいきました。主人公が消えて替わりにカブトムシが戦ってくれます。バトルに勝利する分には、勝利した時点でカブトムシがアイテムに戻って主人公がパーティに戻ります。ただし、敗北時にはちょっとした工夫をしなければなりません。カブトムシが敗北するとゲームオーバーになるか主人公をパーティに戻して戦わせるか、もしくはコモンイベントを呼び出すというプラグインパラメータがあるので、あらかじめ『コモンイベントを呼び出す』に設定しておきます。呼び出すコモンイベントは以下のような感じ。

◆変数の操作:#0001 = パーティメンバー1番のアクターID
◆文章:なし, ウィンドウ, 下
:  :\N[\V[1]]は負けてしまった……
◆画面のフェードアウト
◆プラグインコマンド:ReturnParty
◆スクリプト:AudioManager.stopBgm();
:     :SceneManager.pop();
:     :$gameScreen.startFadeIn(60);

これで敗北メッセージの後、マップの元の位置に戻るようになります。元の位置に戻すのが大変で、SceneManager.pop();に行き着くまでに結構試行錯誤を繰り返しました。しかもスクリプトの後にコマンドでフェードインさせようとすると何故か画面が真っ暗なままでフェードインしないので(マップには戻っている)スクリプトの中で$gameScreen.startFadeIn(60);を使用しています。

という訳で、ムシずもうの基本はこれでできました。あとはムシに個別のステータスを持たせて、ワザとゲージが貯まった時にのみ出せる必殺技の設定、あと忘れてはいけないグラフィックの発注をかければOKです。ムシの絵とか難しくて描けないんですよ、ドッターの皆さんには尊敬の念しかありませんね、ええ。

#雑記 #開発 #JavaScript #RPGツクール #プラグイン #RPGツクールMV #ムシキング

コーヒー代でも投げてくれると、作者が喜びます。