レベルカーブ設計(ゲームの必要経験値テーブルを作る)
ゲームのレベルデザイン向けに、レベルアップに必要な経験値の曲線を設計して確かめるツールです。最大レベルと曲線の種類を指定すると、レベルごとの必要経験値と累計経験値が表とグラフになります。曲線は線形・多項式・指数・段階倍率の4種類から選べ、係数を変えるとグラフの形がその場で変わります。敵1体あたりの経験値を入れると、各レベルに上がるまでの討伐数も並びます。作った表はタブ区切りで書き出せるため、表計算ソフトにそのまま貼り付けられます。
処理はお使いのブラウザの中だけで行われます。入力した内容が手元の端末から出ることはありません。
レベルの範囲
「レベル1→2に必要な経験値」は曲線の起点です。どの曲線を選んでも、最初の1レベルはこの値になります。最大レベルは100,000まで指定できます。数千を超えると、表は形をつかむための間引き表示になり、書き出しの行数も多くなります。
曲線
よくある形(入力欄に値を入れるだけです)
それぞれの式
どの曲線も決めているのは「あるレベルから次のレベルへ上がるために必要な経験値」です。表のLは今のレベル、Bは「レベル1→2に必要な経験値」を指します。右の例は端数の丸めをしていない値です。
| 曲線 | レベルLから次のレベルまでに必要な経験値 | B=100 のときの例 |
|---|---|---|
| 線形 | B + 増加量 × (L − 1) | 増加量50なら 100 → 150。終盤まで1レベルごとに50ずつしか重くならない |
| 多項式 | B × L の指数乗 | 指数2なら 100 → 400。レベルが2倍になると、必要な経験値は4倍 |
| 指数 | B × 倍率 の (L − 1) 乗 | 倍率1.08なら 100 → 108。1レベルの差は小さいが、10レベル進むごとに約2.2倍 |
| 段階倍率 | B × 倍率 の 段数乗(段数 = (L − 1) ÷ 何レベルごと の整数部分) | 10レベルごと×2なら レベル1〜10は100、11〜20は200。区切りをまたぐと一度に倍になる |
式の結果は割り切れない値になります。丸めを決めると、表に並ぶ数値が読みやすい形に揃います。倍数への丸めは切り上げで、累計は丸めたあとの値を足したものです。
討伐数も出す(任意)
敵1体を倒して手に入る経験値を入れます。ここに入れた1つの値で全レベルを計算するため、出てくる討伐数は概算です。実際の敵は進むほど持っている経験値も増えるので、まず全体の桁を見たいなら序盤の敵の値を、特定のレベル帯を詰めたいならその帯に出る敵の値を入れてください。1体あたりを変えて入れ直せば、敵の経験値を何倍にすれば戦闘回数が狙いどおりになるかも見られます。
討伐数の数え方(余った経験値の扱い)
敵1体が30の経験値を持ち、レベル1→2とレベル2→3にそれぞれ100必要な場合を例にします。
| レベル | 次のレベルまで | 累計 | 討伐数(次まで) | 討伐数(累計) |
|---|---|---|---|---|
| 1 | 100 | 0 | 4 | 0 |
| 2 | 100 | 100 | 3 | 4 |
| 3 | — | 200 | — | 7 |
レベル2になるには4体必要です(3体では90で足りません)。4体倒した時点で経験値は120になり、20が余ります。レベル3までに必要なのは合計200なので、残りは80。3体(90)で足ります。合わせて7体です。
このツールは、この余りを次のレベルへ持ち越しながら1レベルずつ数えています。レベルごとに独立して切り上げると、どちらも「100 ÷ 30 を切り上げて4体」となり合計8体になります。余った20が次のレベルで使えることを数えていないため、1体多い見積もりです。
全体の目安
レベルと必要経験値
グラフに出すもの
必要経験値 累計経験値
レベル別の経験値
使い方
- レベルの範囲を決める
「最大レベル」に、そのゲームで到達できる上限を入れます。2から100,000まで指定できます。
「レベル1→2に必要な経験値」は曲線全体の起点です。どの曲線を選んでも最初の1レベルはこの値(端数の丸めを設定した場合は丸めたあとの値)になり、以降はここを基準に伸びていきます。先にこの値を決めてから曲線を選ぶと、係数の効き方が比べやすくなります。
- 曲線を選んで係数を調整する
線形は一定量ずつ、多項式は徐々に加速しながら、指数は終盤で急に、段階倍率は決めたレベルごとに跳ねる形で必要経験値が増えます。「それぞれの式」を開くと、実際に使っている計算式を確認できます。
「よくある形」のボタンは、曲線の種類と係数を入力欄に入れるだけです。押しても計算は始まらないので、値を見てから「計算する」を押してください。
「端数の丸め」を10や100の倍数にすると、表に並ぶ数値が揃って読みやすくなります。倍数への丸めは切り上げです。累計は丸めたあとの値を足したものです。
- 計算してグラフで形を確かめる
「計算する」を押すと、累計経験値や最後の1レベルの必要経験値といった全体の目安が出ます。
グラフは「必要経験値」「累計経験値」「両方」を切り替えられます。この切り替えは描き直すだけで、計算はやり直しません。線をなぞると、そのレベルの必要経験値・累計・討伐数が下に出ます。
終盤の値が序盤の数万倍になる曲線では、通常の縦軸だと序盤が底に潰れて形が読めません。「縦軸を対数にする」を入れると、桁ごとに等間隔の目盛りになり、序盤から終盤までの伸び方を一度に見渡せます。直線に見えれば、一定の倍率で増えているという意味です。
- 討伐数を見て、表を書き出す
「敵1体あたりの経験値」を入れると、各レベルに上がるまでの討伐数が表に加わります。余った経験値は次のレベルへ持ち越すものとして数えています。
「結果をコピー」を押すと、設定と、レベル1から最大レベルまでのすべての行がタブ区切りのテキストになります。表計算ソフトに貼り付けると列に分かれます。画面の表は見やすさのために行を間引いていることがありますが、書き出しにはすべてのレベルが入ります。
よくある質問
「必要経験値」と「累計経験値」は何が違いますか?
必要経験値は、そのレベルから次のレベルへ上がるために追加で要る量です。累計経験値は、レベル1からそのレベルに達するまでに得た合計です。
レベル1の累計は0、最大レベルの累計が最後まで育てるのに要る総量になります。プレイヤーが1回のレベルアップで感じる重さは必要経験値に、育成全体にかかる時間は累計経験値に表れます。
どの曲線を選べばよいですか?
遊び方によって向き不向きが変わるため、どれが正しいということはありません。目安として、線形は序盤から終盤まで同じ密度で遊ばせたいとき、多項式は自然に重くしたいとき、指数は終盤を長く持たせたいとき、段階倍率は区切りごとに達成感を作りたいときに向きます。
迷う場合は、まず多項式で全体の量を決め、そのあと指数に切り替えて同じ最大レベルでどれだけ形が変わるかを見比べると、選びやすくなります。
縦軸の対数とは何ですか?
目盛りが10倍ごとに等間隔になる軸です。100・1,000・10,000・100,000 が同じ幅で並びます。
必要経験値が終盤で桁違いに大きくなる曲線を通常の軸で描くと、序盤の値が全て底に張り付いて見分けがつきません。対数にすると序盤の差も見えるようになり、指数の曲線はまっすぐな直線として現れます。
討伐数はどのように数えていますか?
倒して手に入れた経験値のうち、そのレベルで使い切れずに余ったぶんを次のレベルへ持ち越しながら、1レベルずつ数えています。数字を追った例は、入力欄の「討伐数の数え方」に置いています。
レベルごとに独立して切り上げると、持ち越したはずの経験値が毎回捨てられることになり、合計が実際より多く出ます。たとえば敵1体が30の経験値で、1レベルに100必要なら、レベルごとに切り上げると毎レベル4体(120)ですが、実際は余った20を次に使えるため2レベルで7体です。
「討伐数(次まで)」をレベル1から最大レベルまですべて足すと、「討伐数(累計)」の最終行と一致します。ただし画面の表は行を間引いていることがあり、表示されている行だけを足しても一致しません。合計を確かめるときは「結果をコピー」で書き出した表を使ってください。
「計算を止めました」と出るのはなぜですか?
必要経験値か累計経験値が1,000兆を超えたときに止めています。指数や段階倍率は倍率を少し上げただけで桁が急激に増え、たとえば1レベルごとに1.5倍では50レベルほどで到達します。
この上限は、コンピューターが整数を正確に保てる範囲(約9,007兆)の内側に取っています。超えた値をそのまま出すと末尾の桁が静かに狂い、指数表記になったり、表計算ソフトに貼り付けた時点で崩れたりします。間違った桁を表示するより止めるほうが確かなので、警告ではなく打ち切りにしています。メッセージに出たレベルを見ながら、倍率か最大レベルを下げてください。
表にすべてのレベルが出ていません。
最大レベルが大きいときは、画面の表だけを一定のレベルごとに間引いて表示しています。曲線の形を見るのが目的の場所で、数百行を並べても読み取りにくいためです。間引いている場合は表の下にその旨が出ます。「結果をコピー」で書き出す内容には、最初から最後まですべてのレベルが入っています。
端数の丸めは何のためにありますか?
式の結果はほとんどの場合で割り切れない値になります。そのまま並べると桁がばらつき、表として読みにくくなります。
10や100の倍数に丸めると、レベル間の差が比べやすくなります。端数は切り上げるため、丸めによって必要経験値が式より小さくなることはありません。「上から3桁」は、桁が大きくなっても粒度の見え方が揃う丸め方です。累計は丸めたあとの値を足しているため、表の数値をそのまま合計すると累計の列と一致します。
最大レベルはどこまで指定できますか?
100,000まで指定できます。ただし、それだけのレベル数を実際に計算できるのは、1レベルあたりの必要経験値をごく小さく抑えた場合だけです。倍率のある曲線では、その前に経験値が1,000兆に達して計算が止まります。
数千を超えると、表は一定のレベルごとに間引いた表示になり、グラフも全体の形をつかむための間引いた線になります。書き出しはすべてのレベルを含むため、行数が数万に達すると貼り付け先の表計算ソフトの側が重くなることがあります。
これ以上に大きい上限を設けていないのは、レベルごとの値を配列として持つ作りのため、際限なく増やすとブラウザのメモリを使い切ってしまうためです。
ここで出る数値は、入力した式から機械的に求めたものです。実際の遊びやすさは、道中で手に入る経験値の伸び方、敵の配置、他の成長要素との兼ね合いで決まります。設計の下敷きとして使い、最終的な調整は実際に遊んで確かめてください。