Posted Articles

RPGツクールMZ's articles. (8)

(無)青島製菓 Jan/13/2025 00:12

RPGツクール制作 スキル編 Vol.1 体力補正スキルを考えてみる

こんにちは、あるいはこんばんは。青島清華です。
あけましておめでとうございます、と言うには大分遅くて恐縮ですが💦
今年最初の更新です。どうぞ本年もよろしくお願いいたします。


体力補正付きのスキルをつくってみよう

前回の記事で少し書いたのですが、HPの残量に合わせてダメージや回復量が変動するスキルを作ってみたいと思ったのでいろいろと考えてみることにしました。

先にRPGツクール(MZ)での基本の攻撃スキルの計算式を出しておくと

a.atk × 4 - b.def × 2

このようになっています(実際は×は*の記号ですがCi-enではこの記号に挟まれるとイタリック体になるため置き換えています)
a.はスキル使用側のステータス、b.はスキルを使われた側のその後に続くステータス値を参照し、atkは攻撃力、defは防御力を参照するので

スキル使用側の攻撃力×4-スキルを使われた側の防御力×2

という計算式になっています。
これをHPの残量によって効果が変わるようにしてみましょう。

①加算式

HPの残量がそのまま攻撃力、あるいは攻撃力に追加となるような計算式です。HPのあるキャラ=耐久力がある≒重量級と考えれば「のしかかり」のような技でしょうか。

a.atk × 4 +a.hp - b.def × 2

hpはHPを参照しますのでこのように「+a.hp」を追加すれば「スキル使用者のHP」がダメージに加算されます。
気を付けたいのはHPは攻撃力よりも一つ多い桁で設定されていることが多く、さらに敵の場合はプレイヤー側よりも高めに設定されていることも多いため、上手く調整しないとほぼ確実に即死技になってしまう可能性があることです。そもそもHPに「/10」のような係数を付けておいた方が良いでしょうし(「/」は一般的な計算式では÷の記号です)、敵が使うのかプレイヤー側が使うのかで、計算式を変えた方が良いかもしれません。
ちなみに回復技について言えば、FFシリーズの「ホワイトウィンド」が完全にこのような計算式を使った技で、

a.hp

「使用者のHP」がそのまま回復量になっています。自身に使った場合、HPが最大値の半分以上あれば全回復技ですが、ピンチの時に使ってもあまり効果の高くない技になるので、使用決定後に攻撃を受けると予想しない結果を招く技でもありました。

②乗算式

一応、「攻撃力×HP」といったスキルを作ることは可能ですが、レベルが上がってきた場合ものすごいダメージになりそうですし、一つの戦闘のあいだでもHPの残量によってダメージがものすごく大きく変動するのでやめた方が良いと思われます。

③割合補正式

今回、特に考えてみたかったのがこの方式です。HP残量の割合によって攻撃力を補正する係数が変わってくるタイプの計算式です。前回の記事では書きませんでしたが実は正と負の2種類が考えられます。

正の補正

こちらのタイプだとHPが多いほど攻撃力が増加するというものです。体力の低下は疲労を表すことになったり、あるいは臆病だったりお調子者だったりするキャラクターが不利な状況になってくると能力が低下してくる、ということを表現できるかもしれません。

負の補正

こちらのタイプだとHPが少ないほど攻撃力が増加するというものです。追い詰められると力を出すことの表現ですね。窮鼠猫を嚙むということでしょう。固定値での変動だったはずですが、モンスターハンターシリーズの「火事場」スキルは同じような発想です。

それぞれのメリット・デメリット

正の補正はトランプの大富豪のような効果があり、有利な状況がさらに有利な状況を作っていきます。しかし、一度不利な状況になると立て直すのが厳しくなってしまいます。HPをなるべく高く保つことを推奨するようなゲームではいいかもしれません。(HPの回復手段が限られているようなサバイバル要素のあるゲームなど)
一方、負の補正は不利な側が逆転をしやすいということで、常に気の抜けないゲームになってきます。ゲームとしては面白くなりやすいのでこういった要素を採用している作品は多いのではないでしょうか。敵のHPが一定以下になると強力なスキルを使ってくるのも、同じような発想といえるでしょう。ただし、一人用のRPGで手負いの雑魚敵が頻繁に強力な攻撃を繰り出してくるとプレイする上ではストレスが多いでしょう。使える敵はボスなどに限定する、あるいは暗殺者やハンターのように一発で敵を仕留めることを推奨するようなゲームでは全体に組み込んでみてもいいかもしれません。
ちなみに自分の場合、パーティーキャラの奥義スキルで(計算上は加算式ですが)負の補正を組み込んだものを入れてみました。

計算式を考える前の準備

さて、①②のところで書いていますが、あまりにもダメージなり回復量が大きく変動してしまうとゲームバランスが崩壊してしまう恐れがあります。特に攻撃技についてはどれぐらいの数値の変動が起こるのかをあらかじめ想定しておいた方が良いでしょう。
以下では攻撃力が最大と最小では3倍の差があるとして考えていきます。
最終的にRPGツクールで使う計算式だけ見たい方は次の節まで飛ばしてください。

さて、残りHPの割合によって補正値が変わるような式を作りたいわけですが、残りHPの割合は

a.hp/a.mhp

という式で表されます。「mhp」は最大HPを表しています。これはパーセント表記で言えば0から100%までの間に必ずありますが、パーセントを使わなければ0から1の間の数字です。よって

0<a.hp/a.mhp≦1

このような不等式で表現することができます。これが1から3の間で変動するようにしたいわけです。まずは正の補正の場合について式を変形させていきましょう。「:」の後が全体に対して行った計算です。

0<a.hp/a.mhp≦1
0<2×a.hp/a.mhp≦2:(×2)
1<1+2×a.hp/a.mhp≦3:(+1)

よって「1+2×a.hp/a.mhp」はHPが最大の時、HPが1の時の約3倍の値になります。
次に負の補正の場合です。

0<a.hp/a.mhp≦1
-2≦-2×a.hp/a.mhp<0:×(-2)
1≦3-2×a.hp/a.mhp<3:(+3)

よって「3-2×a.hp/a.mhp」はHPが1の時、HPが最大の時の約3倍の値になります。

もう少し一般化した形で考えてみましょう。補正の最大値をM、最小値をmとします。
正の補正の場合

0<a.hp/a.mhp≦1
0<(M-m)×a.hp/a.mhp≦M-m:(M-m)
m<m+(M-m)×a.hp/a.mhp≦M:(+m)

負の補正の場合

0<a.hp/a.mhp≦1
m-M≦(m-M)×a.hp/a.mhp<0:×(m-M)
m≦M-(M-m)×a.hp/a.mhp<M:(+M)

これらの式を「a.atk × 4」の部分にさらに掛けます。

補正値の式まとめ

最初にあげた基本の攻撃スキルに体力の補正を加えた式を下に書いておきます。
HPが多いほどダメージや回復量の増える正の補正の場合

(m+(M-m)×a.hp/a.mhp)×a.atk × 4 - b.def × 2

HPが少ないほどダメージや回復量の増える負の補正の場合

(M-(M-m)×a.hp/a.mhp)×a.atk × 4 - b.def × 2

補正の最大値をM、最小値をmとしています。M÷mがダメージや回復量の最大の差の倍率なので、HP残量によってどれぐらい攻撃力が変動することを許容できるかを考えた上で、数値を決定してください。注意が必要なのは変動するのは上記の計算式の場合、あくまで攻撃力なので、ダメージ値はさらに大きく変動することもあります。ダメージや回復量に直接補正を付けたい場合は(a.atk × 4 - b.def × 2)のように後半の部分をすべてカッコでくくったうえでかけることもできます。
さらに技自体の性能を調整する場合は「4」や「2」などの数字を変更してください。


※実際のRPGツクールの計算式では「×」の記号は「*」に置き換えてください。

応用編

攻撃側だけでなく防御側の体力でも補正をかけてみたい場合は、上記の補正の計算式の「a.」の部分を「b.」に置き換えたものを、防御力などの項目にかけておけば、同じように補正をかけることができます。
また「hp」、「mhp」をそれぞれ「mp」、「mhp」に置き換えれば、HPの残量ではなくMPの残量によって威力が変わるスキルにすることもできます。

さて、どこで使おうか……

計算式自体は慣れてくればコピペプラス微調整で済むのでそれほど面倒ではないと思うのですが、どのような使い方をしていくにせよ、HP自体が単なる耐久値ではなく攻撃や回復にも絡んでくる要素になるということで、必然的に体力管理の重要性が増します。問題はゲーム全体の中でどのように組み込んでいくかでしょう。一例は先ほど挙げましたが、キャラクターの置かれた状況や職業などがスキルやシステムを考えるうえで極めて重要になってくるでしょうし、実際のゲームプレイにおいては「HPの回復をするかしないか」ということが戦闘中でもそれ以外の場面でも重要になってくるはずです。自分はどこでどんな風に使ってみようかな、と色々考えたくなりますが、まずは今作ってるゲームの完成を目指したいと思います。年が明けてから進みが悪いので💦


今回はこの辺りで失礼いたします。それでは!

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

(無)青島製菓 Oct/01/2022 23:09

RPGツクールでのシミュレーションゲーム制作 Vol.3 変数編②

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

今回はシミュレーションゲーム制作の第3回。ひとまずこれで終了ですが、ちょっとしたテクニックの紹介です。


具体的な数字は見せないと言ったな……

嘘つきました(笑)加工がめんどくさいのでそのまま見せます(笑)
その代わり細かい解説は省かせてください。
例えば購入・売却画面では「指定資源」にそれぞれの選択肢で出現させた「資源」に対応する変数を格納し、取引が成立時にその変数の値ごとに条件を分けて、それぞれの資源を増減させている、という処理をしていますがすべて解説すると結構長くなってしまうので割愛です💦

乱数の増減と範囲の指定

変数の加減乗除ではランダムな値を入力することも定数を入力することもできますが、マイナスの値を指定することもできるので、ランダムに「増減」させることも可能です。本作の「相場の変動」ではランダムな値の増減にしています。一度、全相場を±5の範囲で変動させた後に、個別の設定をしています。単に面倒だからと思ってやったやり方ですが、このやり方だと極端な値になる確率が減ります。例えば青の星の水の相場の変動ですが、可能性としてはー15~+10までの変動が起こり得ます。しかし、1回の設定で「ー15~+10」をランダムに発生するようにした場合にはすべて同じ確率で発生するのですが、設定を2回に分けているので、最大値や最小値が発生するためには2回の判定の両方で最大値あるいは最小値が出てくる必要があるので、極端な値になる可能性は低くなります。まあ、全く意識せずに設定したのですがw
また、変動の結果、例えば水の相場が-50になったりすると商品を売った時にお金が減る、ということになりかねないので、一定の範囲に収まるようにしています。青の星の水の場合は50~150の間で変動するようにしているので、

「50よりも小さくなった時には50」
「150よりも大きくなった時には150」

になるように設定しています。不等号の向きを間違えるととんでもないことになるので注意してください。さらに、難易度で相場の変動量が変わったり、変動する範囲が変わるということもできますが、すべての項目について条件設定をしないといけないので大変です。そして、プレイするごとに相場の変動範囲を変える、ということもできると思いますが、こちらも「○○の星の××の資源の最大値・最小値」という変数を別に設定する必要があります。

ループを使った繰り返し処理

他のやり方もありますが、購入や修理・補給については繰り返し処理を利用しています。どの場面かというと、「選択した購入量で購入した場合に所持金が足りないときに、自動的に購入可能な量まで取引量を減らす」というものです。本作では値下げ交渉ができるため、交渉に成功すると最初の所持金では買えない量の商品が買える可能性があることと、RPGツクールMZの悲しい点で、数値入力機能が桁数しか設定できずに範囲、あるいは最大値を設定できないことが原因です。とりあえず多量の設定をしておけば全買いになるとも言いますがw
上の画面では「参照値」に単価を代入した後、取引量をかけて合計金額を出し、それが現在の所持金を下回るまで「取引量を1減少させ、参照値=合計金額を単価分減少」ということを繰り返させています。ちなみに一切取引できないときは「取引を中止しました」というメッセージが出るようにしています。

応用編:マップ移動とループ処理を組み合わせる

なぜ、購入できる量を計算でやってしまわないのかと言うと、これを紹介したいからです。前々回のマップ編で透明状態で移動したら拠点確認画面に、というものをアイディアとして書き留めておきましたが、拠点の数が増えてきた場合、直接移動ルートを指定するやり方は現在の拠点の場所と移動先の拠点ごとに条件を分けてそれぞれに移動ルートを設定しなければならないため、設定が煩雑になります。
しかし、このやり方であれば座標さえ分かっていれば、新しく拠点を追加しても簡単に移動先を追加することができます。
RPGツクールMZでは各マップの一番左上の座標が原点(0,0)に設定されており、右に行くとX座標が増え、下に行くとY座標が増えます。X,Yどちらもマイナスになることはありません。
そこで移動先の座標が(8,5)の場合、上のスクリーンショットのように設定をしておけば、現在地にかかわらず目的地まで移動してくれることになります多分。より滑らかな移動をしたい場合には条件設定を追加して斜め移動を加えるとよいでしょう。
気を付けておきたいのは、この仕組みだと、ほぼ最短距離での移動になります。移動可能地形かどうかは無視されるので、俯瞰視点での視点の移動や、今作のような宇宙での移動では利用できますが、一般的な陸上マップでの移動、特に迂回(コの字やU字の移動)が必要な場面では使えませんのでご注意を。
また、繰り返し処理自体は「風呂田の冒険」ではターン終了処理で利用しています。例えば一つのクエストで3日経過する場合には、ターン終了処理を3回繰り返す、といった具合です。

ランダムで発生するイベント

ランダムでイベントを発生させるときには乱数を利用します。もっと数字が小さくてもかまわないのですが、分かりやすいので1~100で発生させています。何もイベントが起こらないときは空イベントです(上から4行目)。また、特に同時にイベントを発生させるのでなければ、「それ以外のとき」を利用しておいた方がイベントの誤作動が少なくなるのでなるべくチェックしておいた方がいいでしょう。

現在の設定では
50%でイベントなし(50まで)
15%で敵A(65まで)
10%で敵B(75まで)
5%で敵C(80まで)
20%で隕石(それ以外)

と設定しています。それぞれ、乱数がカッコ内の数値以下の時に発生するようにしています。ところが、もし、毎回別の枠で条件を設定してしまうと、同じポイントで複数回敵に遭遇してしまいます。また、毎回乱数の設定をし直すと、全体で見たときのイベントの発生率が変わりますのでご注意を。
ちなみにマップ編でも少し触れましたが、この乱数を使ったイベント方式だと、逃走確率について設定することが可能です。(実は今作、敵ごとに逃げやすさが異なっています)画像だと「逃げる」の分岐の後、乱数の再設定と条件分岐をしている部分です。乱数の再設定をしないと、以前、利用した数字をそのまま使うことになり確率が変わってしまうのでご注意ください。また、色々と設定をすれば、戦闘開始時のシチュエーション、例えば「バックアタック」や「ふいうち」「サイドアタック」「はさみうち」のようなこともある程度、再現可能になるでしょう。



以上で、今作の内部についての説明はいったん終了いたします。ささやかではありますが、皆様の制作の一助となれば幸いです。何か不明な点がございましたらコメント欄やメッセージ等でお問い合わせいただければ、可能な範囲でお答えさせていただきます。
今回はこの辺りで失礼いたします。それでは!

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

(無)青島製菓 Sep/06/2022 21:50

RPGツクールでのシミュレーションゲーム制作 Vol.2 変数編①

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

今回はちょっと早い更新です。(先月サボったので今月はちゃんと制作更新の報告をするつもりでもあります)シミュレーションゲーム制作の第2回ですが……


変数操作は難しい!

率直に言って、この記事を見るだけでいきなりシミュレーションゲームは作れません(笑)今持っているアイディアについていろいろと書きたい気もするのですが、実際に動く物を組み上げてからお見せしないと、問題が続出ということにもなりかねないので、より詳しく書いたものについてはまた機を改めさせてください。今回お伝えするのは「トレーダーでおまっ!」(以下本作)をどうやって作っていったか、ということについてです。

まず要素を書き出す

お見せしてしまうと、現時点(Ver.1.01)での本作の変数一覧です。実際には使っていないものや空白のままになっているものもあります。
変数、あるいはパラメータといった方が耳なじみがよい方もいらっしゃるかもしれませんが、ゲーム内で使われるさまざまな数値です。所持している資源の量だとか兵士の数とか現在の日付といった様々な数値を、項目名を付けて記録していくことができます。
以前どこかで書いたのですが探しません、RPGツクールの「変数」の機能、一度作り始めてしまうとあとから修正するのが面倒なので、(どうしても後から追加で必要になることはありますが)なるべく先にどういった要素が必要なのかを考えておいた方が楽です。自分の場合は紙に書きつけていくことにしました。

  • まず交易のゲームということが決まっていたので所持金と各資源の所持量・それぞれの星での相場
  • 宇宙船での移動を考えていたので燃料や燃費・貨物の最大積載量
  • 前回でも使った目的地・現在地
  • 初期段階から将来的な拡張を予定していたのでゲームモードや難易度の選択

といったことがメモ書きには書きつけてあります。交渉システム自体は最初から考えていましたが変数を用意していませんでしたw

また、現在制作中の作品(風呂田の冒険)でも利用しているのですが、確率で色々な計算をしたい時や、計算の記録として利用できるものがあった方がいい、というのが経験上分かっていたので、「乱数」や「参照値」の項目を用意しています。ゲームのデザイン次第ですが、複数の要素について、確率で判定し、しかも、お互いに影響せず独立しているような場合……、というと何のことやらかもしれませんが、「同じマップの中に宝箱が二つ以上あり、その宝箱が出るかどうかは宝箱ごとに確率を設定する」というような場合は、それぞれの項目を複数個用意しておく必要があります(例えば最大で出現する宝箱の数だけ)。そうでないと、出現がパターン化してしまうのです。今回はとりあえず一つずつで始めましたが、足りないときは適宜追加しました。

大まかな計算方法を考える

要素を粗方書き出したらそれがどのように動いていくのか、つまりどのような計算をしていくのか書き出していきます。そのためにはゲームのおよその流れを書いておく必要があります。本作の場合、①仕入れ→②移動→③販売→①に戻る、というのを繰り返すことにしていました。そして、それぞれの項目でどのような処理をしたりイベントを発生させるかも、メモしていきます。例えば、②では

  • ターン経過ごとの相場変動
  • 移動には燃料が必要
  • 時々敵と戦闘
  • (遭遇)イベント発生

といったことが書いてあります。
また、今作はそれほど変数同士の計算で複雑なことはしていないので割愛していますが、例えば「風呂田の冒険」の方では以下のような内政(もどき)があります。


初期案では「農業従事者数×農業技術×経過日数=(農業での)食糧生産」というようなことが書いてありました多分。実際にはここに一定の数値をかけたりして調整をしていますし、今後も変更があると思いますが、複雑な計算をする場合には、調整は後でいいので変数同士の関係は紙に数式を書くなどしてイメージした方がよいと思います。
本作では、計算自体は単純ですが、各星ごとに相場の傾向があったので、それについては先に決めて、表にしておきました。(青の星は水が特産でエネルギー資源が高く売れるなどなど)

「変数」以外も使えます!

さて、大体の設計図が出来上がったところで制作に取り掛かっていくわけですが、この「変数」、あるいはパラメータは、ゲームに備わっている「変数」の項目以外を利用することができます。例えば、

  • 「所持金」についてはパーティの所持金
  • 宇宙船の「耐久値」「燃料」については各キャラクターのHPとMP(項目名を変更)

この二つを本作では利用していますが、各キャラクターの能力値というのが案外使えると思います。
現時点では実装していませんが、本作では宇宙船の乗り換えができるようにしようかと思っています。RPGツクールではキャラクターに当たる「アクター」と「職業」が設定でき、同じキャラクターでも「職業」が変わると能力値も変化します。これを利用して、宇宙船の乗り換えをした時には「職業」を変更するようにし、耐久値や燃料、燃費もそれに合わせて変化するようにし、かつ必要な時に参照する値もキャラクターの能力値にしておけば、移動イベントなどの設定を変更することなく、新しい宇宙船を実装することができます。

応用編:戦略シミュレーション

各地に拠点があり、そこから部隊を出撃させて敵と戦うような戦略シミュレーションを作る場合、「拠点」または「部隊(の隊長)」を「アクター」で設定することが考えられます。後者の場合、部隊の種類(歩兵、騎兵、弓兵など)によって「職業」が変わるようにしておけば、能力値が変わります。また、HPを「兵力」、MPを「士気」などにしてMPを消費することで計略や強力なコマンドが使えるようにしておけば、RPGツクールのデフォルトの戦闘システムを利用して戦闘モードとすることもできます。これなら兵科ごとの相性や特殊コマンドなど、色々と設定することができるので便利です。しかし、問題は3以上の勢力が存在するようなゲームにした場合、必ずプレイヤーが関係しない戦闘が発生するので、その場合の戦闘をどのように処理するかなのですが……。このあたりのルール・処理が固まれば、サンプルゲームを作れそうな気がします。

ただし、「アクター」を利用する場合に注意が必要なのは、能力値の上限で

  • HPは9999
  • TPは100
  • 他は999

が限界になっています。一般的な「変数」の方は±99999999が上限と下限、「所持金」は0~99999999までとなっています。状況に合わせて使い分けるのがよいでしょう。
そして、「変数」を利用する場合は探しやすいような並び順にするのをお忘れなく。

これぐらいが固まってから、実際にPCでの作業をした方がよかったと思います。風呂田の冒険はあまり深く考えずに作り出したので結構大変でした(笑)。本格的なシミュレーションゲームを作る場合には、いくつか試作品を用意して、テストプレイをしたうえで本格的に開発するのがいいですね。そうです、それをしなかった私はバカですw

長くなってきたので今回はこの辺りで失礼いたします。それでは!

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

(無)青島製菓 Aug/22/2022 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でも地図から移動先を選ぶ場合、プレイヤーの現在位置のシンボルを表示させつつ、移動先の情報を出すこともできそうです。


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

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

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

新作ができました!

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

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


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


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


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


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

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

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


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

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

ダウンロードはこちら

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

Download

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

今後の拡張について

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

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

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

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


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

Exclusive to users above "Follower"Free

開発のきっかけ・裏話

Free

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

« 1 2

Monthly Archive

Search by Exclusive Perks

Search Articles