投稿記事

2022年 08月の記事 (2)

(無)青島製菓 2022/08/22 21:04

RPGツクールでのシミュレーションゲーム制作 Vol.1 マップ編

こんにちは、あるいはこんばんは。青島清華です。

今回からしばらくRPGツクールを使ったシミュレーションゲームの制作についていろいろと書いていこうと思います。前回公開した「トレーダーでおまっ!」(以下本作)を題材に解説をしたり、やってみたいアイディアを書いていくつもりです。自分自身の備忘録やアイディアの整理を兼ねていますが、よろしければご参考に。(自分が使っているのはMZです)
一応、RPGツクールを触ったことがない人にもわかるように書いたつもりですが、少し説明を端折っている個所もありますのでご了承ください。

マップモードを作ろう!


というわけで、まずはマップについての解説です。
しかしRPGツクールシリーズをご存じの方は、疑問に思うはず。
「わざわざマップを作る必要ある?」
詳しくはツクール公式サイトで配布している体験版などを触っていただければ分かると思いますが、ツクールシリーズは(自分で通路や施設のレイアウトをデザインはしなければなりませんが)デフォルトの素材でマップを制作し、いくつか設定をすれば、そのままプレイヤーキャラがマップ内を動くことができるゲームを作ることができます。
しかし問題は、デフォルトの設定のままだと「マップ画面では自分で操作しなければならない」のです。すごろくを思い浮かべていただければよいかと思いますが、コマがマス目を無視してボード上を自由に動くことができるとゲームにならないので、今回はその点をどのように作るかの説明です。
これを利用するとどのようなゲームが作れるかというと、
  • 桃鉄やマリオパーティーのようなすごろく系のボードゲーム(ただし一人用w)
  • コーエーの三国志シリーズのような戦略シミュレーション
  • フィールド上のいくつかのポイントを自動で移動し、町やダンジョンの中では別のシステムに切り替わる(例:ファイナルファンタジータクティクス)

といったところでしょうか。通常のRPGでもフィールドを移動する時に、選択肢を表示した後ただ場面が切り替わるだけでなく、何か演出をしたり、イベントを発生させることができるようになります。特に本作では、戦闘の開始前に逃げるかどうかの確認を行い、逃走に失敗した場合は逃走不可能になるという仕組みにしていますが、ツクールのデフォルトのエンカウントシステムだとこれはできません。また、相手によって逃走成功率などを細かく調整することが可能です。さらに、組み合わせれば、アクションゲームの要素を追加することもできるので(制作は大変ですが)、どのようなゲームにするかはアイディア次第です。

まずはマップを作ろう

マップ自体はまず作らなければなりませんが、これは省略です(笑)
多少の融通は利きますが、後から設定し直すのは大変なので、先に作ってしまうことをおススメします。ちなみに、本作の宇宙マップはすべて通行不可の透明なタイル(パーツ)で、背景として宇宙空間のイラストを表示させています。

マップ画面での設定

まず下が実際の本作のツクールでの制作画面です。(公開用に中継地点のみ再配置ですが、位置は適当です💦)

やり方は色々とあると思いますが、今回紹介するのは
「イベントでプレイヤーキャラクターの移動を指定」方式です。

まず用意するのが、
①プレイヤーの現在地を格納する変数
②プレイヤーの目的地を格納する変数
です。
本作では①青②緑③赤④黄の4つの星の間を行ったり来たりしながら交易をするのですが、それぞれの星に1から4の数字を割り振っています。その上で、

①ゲーム開始時の初期位置を設定
       ↓
②移動先の目的地を選択
       ↓
③プレイヤーを強○的に移動
       ↓
④途中イベントがあれば発生
       ↓
⑤ ③④を繰り返し目的地に到着


というのがおよその流れです。

ゲーム開始時

ゲーム開始時のイベントなどで「現在地」の変数に設定を入れておきます。本作では「1」です。目的地は、この段階では何もしなくてOKです。

目的地選択

左がゲーム上に表示される画面、右がツクール内で実行されるコマンドです(実際には、これはそれぞれの惑星の中で行われていますが)。それほどたいしたことではありませんが、流れを説明すると、

①現在地ごとに条件を分ける
②マップ上に表示される現在地の場所に移動
③その場所ごとに移動先の選択肢を表示
④選択した目的地に対応する数値を「目的地」の変数に代入

ということをしていますいちいち設定するの面倒くさい。まあ、デジタルゲームの利点として、同じような構造の部分はコピペで簡単に量産できますし、場所を変更したい場合もカットアンドペーストですぐに修正できますから、慣れれば案外楽です。
条件をいくつか設定すれば、ストーリー進行などに合わせて隠しダンジョンに進めるようにすることもできます。

プレイヤーの強○移動&途中のイベント

マップ上で設定している画面です。「現在地」と「目的地」ごとに条件を分けて移動ルートを設定してあります。プレイヤーの操作に関係なく、強○的にプレイヤーキャラを動かしています。先ほどの制作画面上で「中継地点」というものを置いていたのは、この移動を行う時の目印で実際には空イベントです。当初は中継地点の上にプレイヤーキャラが到達した際に、中継地点の中で設定したイベントが起こるようにしていたのですが、ツクール側が強○的にイベントを踏ませた場合は何も起こらない仕様だったので、移動中の処理は専用のイベントで発生させています。
移動の間に入っているコモンイベント(共通処理)の「ターン終了処理」と「遭遇イベント」は、本作ではそれぞれ、「燃費分の燃料の消費と各地の相場の変動」、「乱数を利用した戦闘イベントなどの発生」を実行しています。
ちなみに、その間にある部分は「燃料切れが起きた時のゲームオーバーイベント」の処理で、もともとは「ターン終了処理」の中に入れていたものでした。しかし、コモンイベントとして処理をしてしまうと、マップが暗転したまま動かなくなってしまうので(おそらく、その後に続くプレイヤーキャラの移動処理を続けてしまっていたのでしょう)現在の場所に配置しています。また、「遭遇イベント」内には「隕石にぶつかって耐久値が0になった時にゲームオーバー」というものも入れてあります。


これは、プレイヤーが戦闘不能になることを許可していたからなのか、マップが切り替わった瞬間に何の演出もなくゲームオーバーになってしまっていたので、それへの対処です。コマンドの配置している場所を少し変えてやると、こちらの意図していたものとは全く違う挙動になったりするので、この辺りは丁寧に動作チェックをする必要があります。

以上のような設定を必要な分だけ作ってやれば「移動先を選択すると、プレイヤーキャラがマップ上を自動的に移動する仕組み」が出来上がります。

応用編:三国志シリーズ風の戦略シミュレーションの拠点画面


上は本作でのショップ画面のものです。上部に現在のステータスが表示されています。これはRPGツクールMZの公式プラグイン(拡張機能)の「ExtraWindow」というものを利用しています。詳細は省きますが、これを併用することで、三国志シリーズ風の戦略シミュレーションの拠点画面、正確には拠点のパラメータやコマンドを表示させつつ、拠点を切り替える、ということができそうです。例えば、
①マップはキャラがほとんど移動できない設定にしておく
②プレイヤーキャラは透明化
③特定の操作(例えばコントローラーのLやR、キーボードのQやWを押す)をした時に「現在地」の変数を変化させ、変化した「現在地」に対応する各種パラメーターの値をステータス部分に表示させる変数に代入
④プレイヤーキャラを移動(対象となる拠点の場所に暗転処理をなしにして直接移動、あるいは移動速度を高速化&すり抜け状態にしてプレイヤーキャラを移動)

このようなやり方で実現できそうです。戦略シミュレーションにする場合、RPGツクールで戦闘をどのように行うか、というのがまた別の問題となりますが、ターン制ならばたぶんできるのではないかと。(頑張ればリアルタイムでも出来るかもしれません)
また、通常のRPGでも地図から移動先を選ぶ場合、プレイヤーの現在位置のシンボルを表示させつつ、移動先の情報を出すこともできそうです。


長くなってしまいましたが、色々とやってみたいことはあるので、少しずつ書いていこうと思います。今回はこの辺りで失礼いたします。それでは!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

(無)青島製菓 2022/08/10 23:52

新作ができました!

こんにちは、あるいはこんばんは。青島清華です。

なんとなく、お分りいただける方は分かるのではないかと思いますが……。


これまでの制作報告してきたものとは
全く別の作品です(笑)


前回まで「制作が進まない(´;ω;`)」と言っていたのにそんな急には完成しませんよね。ということで(?)、全く別の簡単な作品を作りました。
タイトルは


「トレーダーでおまっ!」


です。また、センスがない元ネタの解説や制作経緯はフォロワーの方向けの記事で。

周回型交易シミュレーションミニゲーム

どちらかと言えばボードゲーム寄りの作品です。1プレイは10分から15分ほどが目安。
プレイヤーは宇宙商人となっていろいろな星の間を行ったり来たりしながら、商品を仕入れたりその商品を別の星で販売したりして、お金を稼いでいきます。
それぞれの星ごとに商品の相場が違うのでその差を利用してお金を稼ぐのですが、プレイヤーが移動したり商品の売買をするたびに少しずつ相場が変動します。このあたりの計算がアナログゲームだと面倒なので、デジタルゲームで作ってみたかったのです。
また時々イベントが発生して商品の価格が大きく変動します。(ただし、移動しないとその星での相場はわからないようになっています)


さらに移動中にもいくつかのイベントが発生します。それに合わせて宇宙船の耐久値や燃料が減っていき0になるとゲームオーバーなので時々、修理や補給をしなければなりません。

説明すると長くなるのですが、よろしければぜひプレイしてみてください。配信等ももししたいという奇特な方がおられればOKです。

ダウンロードはこちら

トレーダーでおまっ!Ver.1.01.zip (116.79MB)

ダウンロード

最新はVer.1.01です。(早速やらかしましたw)

今後の拡張について

サクッと作ろうと思い(ましたが動作チェックで時間がかかってしまったのでw)一週間ほどで完成したゲームです。なるべく繰り返しプレイできそうなものにしたいと思い、シナリオもゲームシステムもシンプルなものにしました。
ただ、システム自体に変更は加えませんが色々と拡張できることはあると思います。例えば、

  • 難易度の追加(それに合わせて各種数値変動の調整※ちなみに今回のものはイージーモード相当)
  • ゲームモードの追加(スコアアタックとタイムアタック、ストーリーモードなど)
  • 宇宙船の追加
  • 惑星(移動先)の追加
  • 商品の種類の追加
  • 遭遇イベントの追加(特に敵の種類)
  • アイテムの追加(遠隔地の相場の確認、相場の意図的な変動、宇宙船の装備など)

思いつくのは大体これぐらいなのですが、気が向いたときに進めようかと思っています。完成時期も特に考えていないですし、配布方法も決まっておりません。分量次第では有料にしたいなと思いますが……。

また、別の機会ですが具体的な数値は伏せつつも、どのような仕組みでゲームが動いているのか解説もしてみたいと思います。クリエーター向け記事にはなりますがよろしければそちらもお願いします。


今回はこの辺りで失礼いたします。それでは!
続きはフォロワープラン限定の記事で。

フォロワー以上限定無料

開発のきっかけ・裏話

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索