SIGA BLOG

お役立ち情報・社会・教養・雑学・哲学・ゲーム 書きたいことばかり書いている 何でもござれな自由ブログ

SIGA BLOG

【ウディタ】ゲームの敏捷性のゆらぎ・基本値・成長増加値・敵の敏捷性などを考える(講座第2回)

ウディタ講座(第2回)ゲームの敏捷性についてのアイキャッチ画像

本記事はウディタの敏捷性(他に素早さ、速さ、DEX、AGIなどとも呼称されるステータスのこと)について語る内容となっています。

語っている内容自体は行動順があるすべてのゲームに共通しているはずですので、ウディタ以外のツールでゲーム制作している方でも参考になると思います。それでは本文へどうぞ――

 

まず初めに、みなさまはウディタ(WOLF RPGエディター)の敏捷性のゆらぎがどのように設定されているのかをご存知でしょうか?

 

知らない方は コモンイベント157:X[戦]コマンド登録 の 111行目 付近を確認してみてください。(ウディタのバージョンによっては位置が異なる可能性があります。)

 

| |▼敏捷性に±20%のゆらぎを持たせる

| |■変数操作: CSelf18[敏捷性] *= 80 ~ 120

| |■変数操作: CSelf18[敏捷性] /= 100 + 0

 

敏捷性に80~120の乱数をかけて、%なので100で割る。このような処理が行われています。

 

つまり、俊敏性には初期設定で±20%のゆらぎがあるのです。

 

好みにもよりますが、このゆらぎは基本的に修正・調整することをおすすめします

 

……と言うことで、今回はゆらぎを含めたウディタの敏捷性について考えていきます。

 

スポンサーリンク  

敏捷性のゆらぎを修正した方が良い理由

 

まずは「なぜ敏捷性のゆらぎを修正した方がいいのか?」

 

その理由から説明していきます。

 

 

例えば敏捷性が10の主人公がいたとします。

 

この主人公の戦闘時の敏捷性は、10±20%で8~12のいずれかになります。

 

つまり、ゆらぎは±2ですね。

 

敏捷性が5つ以上違えば、どの乱数を引いても行動順が変わらないので、まあ妥当な数値だと思います。

 

 

一方、敏捷性が100の主人公の場合、戦闘時の敏捷性は80~120のいずれかになります。

 

つまり、ゆらぎは±20です。

 

この場合、敏捷性の差が41以上離れていないと乱数次第で行動順が変動します。

 

ゲーム開始後の序盤のうちは問題ないかもしれませんが、ゲームが進めば進むほど、乱数によるゆらぎ幅が大きくなります

 

そのため、初期設定のゆらぎのままでは、せっかくレベルアップや装備の更新で敏捷性を上げられても、プレイヤーがその恩恵を十分に感じることは難しいでしょう。

 

(どのような乱数幅であってもゆらぎが「±◯」であれば、行動順が入れ替わる確率は49%以下ではあります。しかし、1%で当たる宝くじと0%で当たる宝くじとでは全く別物であるように、可能性の有無はとても重要な要因となります。)

 

 

要するに、敏捷性のゆらぎを修正した方がいい理由とはーー

 

ゆらぎが「割合(%)」だと乱数の振れ幅が大きくなりすぎるから

 

ーーなのです。

 

敏捷性がまったく成長しない、増加しない、変化しない……そのようなゲームをつくる場合でもなければ、基本的には修正することをおすすめします。

 

敏捷性のゆらぎを修正する方法

 

では、「敏捷性のゆらぎを修正する方法」についてお教えします。

 

コモンイベント157:X[戦]コマンド登録 の 111行目 付近の内容を、割合(%)から 固定値 に変更します。

 

なお、作業を開始する前に、画面左下のファイル出力から単体保存を選び、このコモンイベントのバックアップをとっておいてください。この修正作業によって何らかの不都合が生じても当方は責任を持てませんのであしからず。

 

 

作業開始の準備ができたら、111行目付近にある以下の記述を削除します

| |■変数操作: CSelf18[敏捷性] *= 80 ~ 120

| |■変数操作: CSelf18[敏捷性] /= 100 + 0

※コメント文 | |▼敏捷性に±20%のゆらぎを持たせる は残しておいても問題ありません。ただ、ややこしくはなりますので改造する旨を書き加えておくと良いでしょう。

 

 

もとの記述が削除できたら、まずは「セルフ変数使用状況」を開きます。

01.セルフ変数を開く例の画像

 

 

CSelf39に「敏捷性ゆらぎ値」と入力します。

(他のセルフ変数番号や他の名称でも構いません。)

02.セルフ変数39に敏捷性ゆらぎ値と入力する例の画像

 

 

次に「イベントコマンド入力ウィンドウ表示」を開いて、下記のように入力します。

イベントコマンド入力ウィンドウ表示

 → 変数操作

「このコモンセルフ39: 敏捷性ゆらぎ値」「=」「-2」「~」「2」

※数値はお好みの乱数を設定してください。後で調整してもOK。

 

03.敏捷性ゆらぎ値に乱数を入力する例の画像

 

 

続いて以下のコマンドも入力してください。

イベントコマンド入力ウィンドウ表示

 → 変数操作

「このコモンセルフ18: 敏捷性」「+=」「このコモンセルフ39: 敏捷性ゆらぎ値」「+」「0」

 

04.セルフ変数18に敏捷性ゆらぎ値を加算する例の画像

 

 

すべての入力が終わると、以下のようなイベントコマンドになります。

 

| |▼敏捷性のゆらぎを「±20%」から「±2」に変更

| |■変数操作: CSelf39[敏捷性ゆらぎ値] = -2 ~ 2

| |■変数操作: CSelf18[敏捷性] += CSelf39[敏捷性ゆらぎ値] + 0

 

 

これで無事、敏捷性のゆらぎは「割合(%)」から「固定値」に変更できました。

 

 

また、ここで設定したゆらぎの固定値に合わせて、主人公たちの[成長]敏捷性増加装備品の敏捷性増減を決めるのがおすすめです。詳しくは後述します。

 

ちなみに、敏捷性を固定値に変更したときの特徴は以下のようなものです。

 

 POINT

・敏捷性が増えても行動順が乱れにくい。

 →敏捷性の重要度が下がらない。

 

・バフ要員や回復要員などの行動順を装備品で調整しやすい。

 →プレイヤーが戦略が立てやすい。

 

もし、行動順にゆらぎ(乱数)が生じない方針のゲームを作っているようであれば、いっそのことゆらぎをなくしてしまうのもアリかもしれませんね。

 

敏捷性(行動順)はどのように設定すべきか?

 

敏捷性は主人公たちの役割(ロール)に合わせて設定するのが良いでしょう。

 

例えば、味方を強化できるバフ役は味方内で一番に行動したいですし、攻撃役はバフ役よりも後に行動したいですよね。また、敵に状態異常を付与するデバフ役がいるのなら、敵が行動するよりも前に動いて弱体化させておきたいですよね。

 

このように、戦闘における主人公の役割に応じて敏捷性を決めます。

 

最も理想的な行動順は、バフ役→デバフ役→攻撃役の順番でしょうね。

 

 

ただし、回復役の行動順を決めるのは難しいです。

 

回復役の場合、回復量が精神攻撃力に依存する技能であれば、バフ役が行動した後の方が効率的に回復できます。

 

……しかし、単純に味方の敏捷性と比較するだけではダメです。

 

最も重要なのは敵の敏捷性との比較です。(敵の敏捷性の決め方は後述します)

 

回復役がいずれの敵よりも早く行動できれば、HPの減っている味方が倒される前に回復することができ、戦闘不能の味方を出しにくくなります。

 

だからと言って回復役の敏捷性を高めに設定してしまうと、回復役が行動不能系の状態異常になっていない限りは負けるかもしれないという緊張感が薄くなります

 

駆け引きもRPGゲームの醍醐味ですから、それをなくしてしまうのは勿体ないです。

 

では「回復役の行動順を遅めにすればいいのか?」と問われると、そうでもないのです。

 

回復役の行動が敵よりも遅い場合、緊張感が強くなる代わりに戦闘が難しくなります

 

難易度が高いとイライラしてしまうプレイヤーも表れるかもしれません。ゲームバランスを調整するのは本当に難しいことです……それがゲーム作りの面白いところでもあるのですが。

 

最終的な持論を述べますと、敏捷性が低い場合は装備品で補強することも1つの戦略ですので、回復役は味方全体と比較した時に若干遅めぐらいの敏捷性に設定するのが良いと考えます。

 

具体的には攻撃役の前後あたりがちょうど良いポジションだと思います。

 

 

それでは次に、敏捷性に関わる数値の決め方について考えていきます。

 

 敏捷性計算式

基本敏捷性+([成長]敏捷性増加×現在のレベル)+装備品による増減±ゆらぎ

 

基本敏捷性

 

基本敏捷性は初期値みたいなもので、ここに成長増加や装備品増減が加わります。

 

先程考えた主人公の役割に応じた行動順をもとに決めるのが良いでしょう。

 

例えば、バフ役の基本敏捷性が15であれば、デバフ役の基本敏捷性は10攻撃役の基本敏捷性は5……といった具合に、行動させたい順番となるように基本敏捷性を設定します。

 

 

主人公ごとの基本敏捷性の差は「ゆらぎから算出」します。

 

例:ゆらぎによる行動順の変動を抑えたい場合

ゆらぎ×2 <基本敏捷性」の式に当て嵌めます。例えばゆらぎが±2、基本俊敏性が5であれば、2×2<5で不等式が成立しますので、基本敏捷性とゆらぎだけを考慮した場合には行動順の変動が起こらないという状況を作れます。

 

このように基本敏捷性とゆらぎと関連付けて考える場合、基本敏捷性の差は同じ数値、あるいは同じ数値の倍数にすることをおすすめします。

 

また反対に、基本敏捷性を設定してから、その差をもとにゆらぎを調整するという手順もあります。

 

[成長]敏捷性増加

 

[成長]敏捷性増加はレベルアップやレベルダウンにより可変する数値です。

 

基本的にはすべて一律に設定することをおすすめします。

 

その理由は単純明快で、成長増加値に差があると、レベルアップしても主人公の成長を感じづらいケースが出てくるからです。

 

 

例として、下画像のようなシチュエーションを想像してみます。

 

05.成長増加値の差があると…レベル10のときの例の画像

敵Aと主人公A、敵Bと主人公B、どちらの敏捷性にも3の差があります。

このとき、成長増加値が3である主人公Aは、レベルが1上がることで敵Aと同じ敏捷性になります。一方、主人公Bはレベルが1上がっても敵Bより遅いです。

主人公Aは1レベルで成長を実感できるのに対して、主人公Bは2レベルを要します。

 

 

続いてレベルが10上がったシチュエーションを想像してみます。

 

06.成長増加値の差があると…レベル20のときの例の画像

レベルが10上がったころにはマップも変わり、もっと強い敵と戦っていると思います。

しかし、主人公Bはこの時になってようやく、主人公Aが10レベル前に競り合っていた敵Aの敏捷性を上回れるのです。

制作者からすれば「主人公Bは敵Aから先手を取れる想定じゃない」のかもしれませんが、プレイヤーからしてみれば主人公Bの成長を実感する機会を損失した状況です。

 

 

また、成長増加値に差があると、敵が敏捷性で競り合える主人公が減ります。

 

例えば主人公Aの敏捷性が20、敵が18、主人公Bが16のときは、ゆらぎ次第で敵が主人公Aを追い抜いたり、主人公Bに追い抜かれたりといった乱数のブレを楽しむことができます。

 

しかし、主人公Aの敏捷性が30、敵が22、主人公Bが16のような設定の場合、2~4レベルくらい上がらないと主人公Bは敵と競り合えませんし、主人公Aはレベルが上がらずとも先手を取れるので、追い抜かすことによる成長を感じられなくなります。

 

敏捷性に開きがあり過ぎるとRPGの醍醐味である主人公たちの成長を実感する機会が少なめになり、成長増加値の差がそのような状況を作り出しやすいのです。

 

 

……と、このような感じで[成長]敏捷性増加は一律で上昇させることをおすすめしてきたわけですが、実際には成長増加値に差があっても問題はありません。差があるときは主人公Aと競り合う敵A、主人公Bと競り合う敵Bのような敵を、想定した主人公たちのレベルと照らし合わせて作れば良いだけですから。

 

[成長]敏捷性増加の量は?

 

続いて「成長増加値をどれくらいの量にするか?」です。

 

成長増加値は大きいほど1レベルの差で敵味方の行動順が乱れやすく、成長増加値が小さいほどレベルが上がっても敵の行動順を上回りにくくなります。

 

戦略性を重視したい場合は、できるだけ行動順が乱れにくい数値となるように調整するのが良いでしょう。

 

成長増加値の調整方法としては以下のような計算式が考えられます

成長増加値の調整方法…ゆらぎ(乱数)なしの例の画像

速い方の主人公の基本敏捷性=A

遅い方の主人公の基本敏捷性+成長増加値=B

A>Bのとき、遅い方の主人公のレベルが1上がっても行動順は変わりません

A>Bのとき、遅い方の主人公のレベルが1上がると行動順が変わります

 

ただし、上記の式ではゆらぎ(乱数)を考慮していません。

 

ゆらぎ(乱数)も考慮する場合は以下のような計算式が考えられます。

成長増加値の調整方法…ゆらぎ(乱数)ありの例の画像

速い方の主人公の基本敏捷性ーゆらぎ=A

遅い方の主人公の基本敏捷性+成長増加値+ゆらぎ=B

A>Bのとき、遅い方の主人公のレベルが1上がっても行動順は変わりません

A>Bのとき、遅い方の主人公のレベルが1上がると行動順が前後する可能性が生まれます

 

主人公たちが想定した行動順で動くためには、[成長]敏捷性増加をどちらかの計算式に当てはめてみて、遅い方のレベルが1上がったときに行動順が変わらない数値にするのが良いでしょう。

 

ちなみに成長増加値を0にした場合はレベルではなく主人公に依存するイメージになります。

 

敏捷性のゆらぎ

 

敏捷性のゆらぎは前述した通り、コモンイベント157:X[戦]コマンド登録 の 111行目 付近の話ですね。

 

戦闘中の敏捷性のゆらぎは、主人公たちの基本敏捷性の差から逆算するのがおすすめです。

 

基本敏捷性の例と同じく主人公たちの敏捷性に5の差があるとした場合、ゆらぎを±2以下に設定すれば、同レベルの主人公たちは想定どおりの順番に行動してくれます。

 

 POINT

17 16 15 14 13 | 12 11 10 9 8

(↑乱数のブレがあっても敏捷性が重なり合うことがない。)

 

よって、ゆらぎ±◯は以下の2通りから検討・調整をすれば良いでしょう。

・完全に戦略通りの行動順で遊ぶ→【基本敏捷性の差>ゆらぎ×2】

・装備品で行動順を調整する遊び方→【基本敏捷性の差≦ゆらぎ×2】

 

ちなみに後者の場合、基本敏捷性の差が小さいほど、順番が入れ替わる確率が高くなります。

 

 ゆらぎ±2、基本敏捷性の差が5の場合、同レベルでは行動順が変動しません。

 ゆらぎ±2、基本敏捷性の差が4の場合、約4%の確率で行動順が変わります。

 ゆらぎ±2、基本敏捷性の差が3の場合、約16%の確率で行動順が変わります。

 ゆらぎ±2、基本敏捷性の差が2の場合、約24%の確率で行動順が変わります。

 ゆらぎ±2、基本敏捷性の差が1の場合、約40%の確率で行動順が変わります。

※「約」と付けている理由は、敏捷性が同値になった場合の行動順の決定方法を知らないためです。

 

基本敏捷性から決めるか、ゆらぎから決めるかはお好みでどうぞ。

 

敵の敏捷性はどう決める?

 

最後に「敵の敏捷性の決め方」について。

 

結論から述べますと、敵の敏捷性は敵ごとの特徴を出すのにも使えますので「敵によって」という元も子もない話になります。(攻撃力が凄まじく高い代わりに防御力と敏捷性が低い、先手で状態異常を付与してくるから敏捷性が高いなど。)

 

ただ、基本値を定めておくと設定しやすくなるのは確かですね。

 

例えばマップごとに主人公の適正レベルを想定している場合――

 

主人公の基本敏捷性+(成長増加値×適正レベル)+1=敵の敏捷性

 

――このような基本値を定めておくと良いでしょう。

 

なお、上記の計算式はレベルアップするまでは敵が先手を取りやすく、レベルアップすると主人公が先手を取りやすくなる、という仕組みになっています。

 

もしも「どの主人公の敏捷性を基準にするのかで悩む……」と言う場合は、攻撃の要となる主人公を基準にすれば良いでしょう。

 

攻撃の要となる主人公がレベルアップするとダメージを受ける前に敵を倒しやすくなるため、主人公たちの成長を最も実感しやすいはずです。

 

あるいは[成長]敏捷性増加のところでも述べたように、各主人公に対応した敏捷性の敵を作るのも1つの方法だと思います。

 

最後に

 

敏捷性についてどこまで突き詰めるのかは人それぞれです。

 

私としましては、ゲームを制作している皆様方が秘めている「面白いゲームを作りたい」「どうしたらバランスが良くなるだろう」といった熱意をガンガンに燃やしていただければ嬉しい限りです。

 

ゲーム制作は大変ですけど、やっぱりそれに見合う面白さや楽しさがあると思いますから。

 

以上、【ウディタ】ゲームの敏捷性のゆらぎ・基本値・成長率・敵の敏捷性などを考える(講座第2回)でした。

 

当サイトのウディタ講座一覧はこちらです。