v1.14 制作途中経過・その8

前回、成長曲線に関する話をしたが、その機能を強化した話。

元の話を要約すると、以下の通りになる。

  • モンスターごとにレベル値を割り当てて、そのレベル値と、能力値ごとに指定したグラフ(成長曲線)から能力値を自動決定させる機能
  • モンスターのパラメータはグラフ設定を編集することによって全体のバランスを調整する
  • (補足)従来通り値を直接割り当てる機能も存在する

能力値を単純な一本の式で決定する仕様はやめにした。あまり将来性のある仕様ではなかったので、以下のように、ポイントをマウスカーソルで指定することで大まかにグラフを編集できるように変更。(のえる先生にスプライン曲線という言葉を教えてもらったため試しに実装してみた。本人のブログはhttp://d.hatena.ne.jp/noellab/


制作者は、モンスター能力値の設定を簡便化するため、以下の作業を行う。

  1. モンスター側には共通の、想定されるレベル範囲を設定する。この値は後からいつでも変更できる(最弱は1とする)
    • たとえば、ゲームに登場するもっとも強いモンスターのレベルを30と決めて30と入力
  2. 想定している1レベルの能力値と、30レベルの能力値を決める。グラフ単位。この値も後からいつでも変更できる
    • 上記の例では、5ではじまり200で終わるという設定にした
  3. 「再描画」ボタンを押せば、実際にグラフが表示される。といっても、最初は必ず比例グラフなので、一直線の斜め線が表示されるのみ
  4. 比例グラフでは我慢できない人は、グラフをクリックするとポイントが表示されるので、ドラッグして曲線カーブを編集する。ただしあまり極端な変化を見せるグラフは作成できない(ポイントは8つまで)
    • 比例グラフで大抵は事足りるって話も……
  5. さらにグラフを作りたい人は追加する。能力値一つあたり20本まで
    • 通常は一つの能力値あたり何系統かグラフを用意する。たとえば、戦士系モンスターはHP5〜200、巨人系モンスターはHP40〜600、魔法使い系モンスターはHP2〜80といったように、多くのゲームではモンスターの系統が別れているので、それぞれに合わせて一本ずつグラフを割り当てると効率がいい(はず)
  6. グラフを修正しても、モンスターのレベルを変更しても、自動的にモンスターの能力値が書き換わる
  7. 想定モンスターレベルや、能力値の最小・最大を変更しても、成長曲線(グラフ)そのものに変化はない。だから、バランスが気に入らなければ各グラフの最小・最大値を変更すれば、モンスター全体の能力値が「相対的な値バランス」を維持したまま書き換わる

なお上記のグラフは、Wizardryに登場する「HP」を意識した数値設定になっている。「テスト」ボタンを押すと、実際にエネミーレベルに対応するHPの値がズラッと表示される。これを見ながらグラフを修正する。以下は上記グラフから実際に算出されるHPの値(一覧のテキストは、ツールからクリップボードにコピーできます。以下はコピーして雑記に張り付けたもの)。

Level  1 : 5
Level  2 : 9 +4
Level  3 : 13 +4
Level  4 : 17 +4
Level  5 : 21 +4
Level  6 : 24 +3
Level  7 : 27 +3
Level  8 : 30 +3
Level  9 : 32 +2
Level 10 : 33 +1
Level 11 : 34 +1
Level 12 : 36 +2
Level 13 : 37 +1
Level 14 : 40 +3
Level 15 : 44 +4
Level 16 : 50 +6
Level 17 : 57 +7
Level 18 : 72 +15
Level 19 : 92 +20
Level 20 : 112 +20
Level 21 : 132 +20
Level 22 : 150 +18
Level 23 : 164 +14
Level 24 : 172 +8
Level 25 : 177 +5
Level 26 : 180 +3
Level 27 : 181 +1
Level 28 : 182 +1
Level 29 : 190 +8
Level 30 : 200 +10

グラフ通りの変化を見せている…はず。

今回はHPの設定を整数にしたため(普通は整数だろう…)、上記の表示は整数になっているのだが、能力値の有効桁数がたとえば小数第二位の設定になっていれば、テストしたときも第二位までの値が表示される。

上記の設定の場合、モンスターレベル7、HPのグラフに「戦士系」を指定したモンスターの場合、HP27が生成される。その際、全体に対してちょっとした乱数の設定が可能なので、以下のように「r5+24」といったように期待値を約27とした乱数式を生成してくれたりもする。

おまけ

上記の成長曲線システムは、そのままキャラクタのレベルに合わせた成長曲線にも応用ができると思う(重量のありそうな仕様なので、将来の課題とする)。

現在、能力値の成長値には1d8+2といったような不安定な乱数を割り当てることしかできず、適正値を判断せず乱数を加算するのみで、たとえばWizのようにHPの上昇値を1に抑える抑止機構がない。レベルに合わせた適正能力値計算をやりたければ、配合機能を通すことで計算させるしかない。

他の多くのRPGでは、戦士なら戦士のヒットポイントの成長曲線があり、魔法使いには魔法使いの賢さの成長曲線がある。レベルが上昇したら成長曲線に合わせて能力値も上昇するようにすれば、たとえばはじめはザコでもレベル90以降いきなり成長が早くなるクラスなんてのも作れる。

で、この場合に課題となるのは転職のシステム。

  • 転職後、能力値を残すのか、Wizardryのように初期化するのか
  • 転職後、レベルを1に戻すのか、変わらないか

いずれの場合にも対応するには、検討が必要となる。

現在転職と成長について、もっとも参考にしようと思っているシステムがファイナルファンタジー3である。