目次
今回は、アピリッツの知識共有サイト「ナレッジベース」で公開されている内容をアピスピでも紹介します。
ゲームディレクターとしても活躍されている巌光生さんの記事です。
是非最後まで読んでください!(初版:2023年2月1日)
先ずはゲーム全体のコンセプトを理解する。
製作するゲームのコンセプトを掴む。
例えばIPであればオリジナルのコンテンツである、
- アニメ
- 映画
- コミック
などに基本のコンセプトが存在します。
特にIPの場合はゲーム化にあたり、それに独自の+αが加えられる場合もあるが、ユーザーにとってはオリジナルのイメージが反映されていることで、より没入感が生まれゲーム全体を引き立てる事ができます。
例として最近まで製作に携わったIP系のゲームを挙げてみます。このゲームのコンセプトは絆でした。
某海賊王のゲームですが、コミック上で仲間たちが総力戦を行うことがあまり存在しない。(主に対等か1VS多勢)本来、RPGであればパーティの職業や役割があり、パーティで敵に挑む形になるのですが、このゲームでは、コミックのイメージを元に以下のように構成しました。
- バトルフィードを4~6の区画に分け、各キャラクターを配置するようにした。
- 1区画には通常6人まで配置ができ、大きさにより存在できる体数が調整される。
- バトルの状況やステータスに応じてキャラクター同士の会話や演出が発生する。
- 各キャラクターには原作に応じたパラメーターを設定し、キャラクター性を引き立たせる。
- 区画間は対峙する敵がいない(倒した)場合と味方がピンチの場合に移動が可能になる。
上記のバトル設計を踏まえてパラメーターのテーブルを作成していく事になります。
データテーブルの設計
戦闘の仕様と方針が決定した時点で必要なパラメーターのテーブルを作成します。
キャラクターのイメージを具現化するように得手不得手をパラメーターに含んでいきます。パラメーターの種類や効果はかなり増えますが、後のダメージ計算などにどう結び付けるかを考慮し、数値化(比率や確率)やフラグ(有る無しによる判定)化することで扱いやすくなります。また、数値に関しては、今後の拡張も含めLONG INTEGERで幅を取っておくことが大切です。
レベルデザインとデータ作成と順序について
ここから実際にデータを作成しレベルデザインを行っていくのですが、最終的な調整や追加を考慮して、以下の手順で設定していくことでスムーズな開発が行えます。
1)メインとなるプレイヤーキャラクターのステータスを設定する。
- メインキャラクターの成長値や装備加算値を数値化し設定する。
- 成長値や加算値は各ステージの難易度を仮定し増加率を定める。
- 基本的にはゲーム全体の10%~20%まではなだらかな上昇で導入難易度を低めに設定する。
2)キャラクターのステータスは ここでほぼ決定して規定値とする。
最終的に調整や追加は行えるが、全体に影響するため、第一にプレイヤーキャラクターを基準にしなければならない。
3)プレイヤーのキャラクターに対して敵のステータスを決定していく。
ここからが本当の意味でのレベルデザインとなります。プレイヤーのキャラクターに対して、強弱を決めることでバトルの難易度が決定されていきます。当たり前のことのようですが、このステータス決定の順番が大切です。
プレイヤー側のステータスがある程度固定化していれば、敵側のステータスはどのようにでも調整ができるからです。また、プレイヤーが追加された際にも、それに対応した敵を作成できるのでバランスが頭打ちになることがありません。
敵のデータはエクセルなどにダメージ計算式を仕込み、分かりやすい形でデータを算出できるようにしておくと良い。実際にどのような算出を行うかと言うと、例えば敵のHPを算出したい場合、プレイヤーの攻撃によるダメージ計算でどのくらいの値が出るかを割り出し、それに何回耐えられるかを設定するとよい。
例えばプレイヤーの与ダメージが敵の防御値を減算した場合の数値がAとした場合、3発は耐えられるとするなら、HP=A×3.2(コンマ以下は残HP)と言った簡単な算出が行える。
プレイヤーに与えるダメージにしても、プレイヤーの防御値を含めたダメージ計算でプレイヤーに対して何割くらいの与ダメージが与えられるかを計算すれば良い。プレイヤーが該当LVの時に200のHPであればHP全体の何%を減らせるかで攻撃値を算出できます。
ここまでのまとめ
- バトルのデータはゲームコンセプトに合わせて設計する。
- データの作成はプレイヤーから決定し、それを基準とする。
- 敵のデータはゲーム内のダメージ計算からできるだけ簡易に算出できるようにする。
※上記を踏まえて、ダメージ計算式をエクセル、またはスプレッドシート上でシミュレートし、 バランスを目視できるようにすることで、全体のバランスも見えてきます。
トータルでのバランスとレベルデザインについて
ユーザーが遊びやすく継続しやすいデザイン
これは製作するゲームのコンセプトによって異なると思いますが、よりユーザーが遊びやすく継続しやすいバランスにすることが大切です。
ゲーム開始時は敵を容易く倒せる程度にする。全体ボリュームの10~20%はあまり悩まずに進めるほうが良いでしょう。デフォルトで戦って倒せる程度と言うことになります。
キャラクターを強くする、強化する事にユーザーが慣れ始めたら敵のステータスを上げていきます。この時に、ポイントとして弱点を設定し、ユーザーに強化することの意味を促します。加えて、敵のAI等に変化を加えバトルに対しての戦略性を促します。(回復や妨害などの行動を追加していく)
後半に向かってはロジック的に攻略方法を仕込んで行く工夫が必要となります。正しい行動に対して正解を導けるように敵の行動を組み立てることが必要になります。これもバトルとしてユーザーが飽きないようにするための手法です。
シナリオ、または世界観への没入を妨げないバランス
レベルデザインの要ですが、ゲーム進行の上で大切なのは物語の進展です。
ユーザーの心情に沿った敵の強さや障害は、よりバトルを引き立てます。シナリオとの親和性も十分考慮すべきでしょう。
なので、画一化したシステムでデータだけ完璧にしても、ユーザーにとってバトルは作業になってしまいます。
システム、ジャンルによる調整について
ここまで上げた例は、基本的にデータによるバランスのとり方ですが、システムによってはアクション重視のバトルもあります。ここでは簡単に手法だけ記載します。
アクション重視のRPG場合
データも無論重要ですが、ユーザーテクニックを重視する場合があります。この場合以下の方法で調整します。
- モーションヒットストップのタイミング(プレイヤー側)
攻撃モーションに対してヒット時のラグタイム(次の入力許可)を制限します。
大技ほどヒットストップが長く、 敵に対してプレイヤーの行動時間が制限されます。
アクションの場合、ヒットストップは10f~60f程度なので、実際にはもたつきは感じません。
また、行動のキャンセルなども行えればアクション性が高まります。 - AIの索敵時間(敵側) 敵の場合はヒットストップだけではなく、AI内にもウェイト(索敵)を仕込むことができます。
行動命令が短いほど敵は強くなります。(連続行動、思考を進める) - 上記に加え、モーションの長さなどにより、入力のタイミング、キャンセルをコントロールします。
巌さんありがとうございました!
アピリッツでは自分が得た情報や技術を積極的に共有し、それらを吸収しながら各々のスキルアップを目指しています。
アピリッツに少しでも興味を持った方、エントリーお待ちしております!
エントリーはこちらをチェック→〈https://recruit.appirits.com/〉