Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2007-10-07

[アイデア]ダメージ計算その他戦闘に関わることのメモ

キャラクターの能力・スキル等を決めたいので、ダメージ計算方法を中心に戦闘システムに関するアイデアを思いつくままにメモ。

プレイヤーの数値を把握させてあれこれ考える余地を与えたいから、 ダメージ計算のロジックは人間が頭で計算できるほど単純なものがいい。

戦闘に関わる基本要素

  • STR
  • 武器
    • 定数
    • 乱数 0-x
  • Jobスキル
  • 後方支援
  • STR
  • 装備
  • Jobスキル
  • 後方支援

攻撃力

攻撃力はSTRと武器攻撃力の合計値。 武器によってはボーナス値を持っていてランダムな値をダメージに加算する。

攻撃力 = STR + 武器の攻撃力
攻ボーナス = 武器の攻ボーナス

防御力

キャラクターの防御力は防具でのみ決まる。 防御力は装備品の防御力の合算値となる。 ただし盾の防御力は初弾にのみ有効。

防御力 = 装備品の防御力の合計

AGI値を防御力に加算する手もあるが、 AGI値は攻撃順序を決定する重要なパラメータとなっているので ここでは影響させないことにする。

ダメージの計算方法

ダメージ = 攻撃力 + rand(攻ボーナス) + 攻撃支援 - (相手の防御力 + 相手の防御支援)
(ダメージは最低1)

最大HPの計算方法

HPをSTRに比例させればSTRを防御力に影響させる必要はない。

hp = str * 5

防具

  • 盾 …… 初弾のみを防ぐ。効果は大きい
  • その他の防具 …… すべての物理攻撃を軽減する

戦士のスキル

戦士のスキルに物理攻撃にボーナス値を与えるスキルを用意する必要はない。 なぜならば物理攻撃に関してはジョブ毎の装備制限で同じ効果を作ることができるから。 つまり戦士にスキルは不要。 その場合、戦士の長所はあらゆる武器を使いこなせることである。

他のジョブとの組み合わせを考えると、 FFのように剣装備や斧装備、盾装備をスキルにするのも面白い。

後方支援

悩むのは、たとえばアーチャーに直接攻撃と後方支援の両方の能力を持たせるかどうか。 もし両方できるならその使い分け(UI)をどうするか。 UIを考えるとどちらかに固定したほうがいいいか。

アーチャーの役割は、直接攻撃を受けない中列から物理攻撃を行うことだ。 初弾をアーチャーに撃たせてシールドをはがすことができる。

単体モンスターには複数毎のシールドを持たせないとダメかも。

あと攻撃支援と防御支援、さらに初弾支援を分けると人数的に役者が不足するかも。 たとえば5人でPTを作るとすると、

  • A アタッカー1
  • B アタッカー2
  • C 後方支援1
  • D 後方支援2(シーフ)
  • E 回復1(後方支援?)

これが標準的なバランスPTになるのかな。 Cが攻撃支援して、Dが防御支援、Eは戦闘中の回復役に充てるとすると、直接支援は2つしかできない。 しかしたった2つしかできないということは、逆に支援1つの価値が高まり、 組み合わせ次第でパーティの戦闘力が大きく変わって面白いかもしれない。

スキル

スキルには2つの種類がある。 ひとつはアクションスキル。もうひとつは状態スキル。

支援系にAGIの意味を持たせるか悩むのだけど、 アタッカーAGI依存でもAGIの意味は十分に出せるので、支援者のAGIは無視で。 そのほうが楽だし。

アクション

  • 追い討ち …… 攻撃支援。AT
  • ? …… 攻撃支援。MAG
  • 後方支援A …… メイジによる攻撃/防御支援。MAG*2
  • 後方支援B …… 僧侶による防御支援。MAG*2
  • 影縫い …… ターゲットのAGIを-1する
  • ? …… 防御支援。AGI*2
  • 残像剣
  • 分身攻撃 …… 攻撃回避効果。防御支援は受けられない
  • 遅延攻撃(ディレイアタック) …… ターンの最後に攻撃。もっともHPの少ない相手を狙う
  • 弓攻撃 …… アーチャー専用。他のジョブは弓を装備できないから

状態

  • 変わり身の術 …… 物理的な致死攻撃を100%防ぐ。戦闘中1回のみ有効

前列からの遠距離攻撃

前列に遠距離攻撃のユニットを置くと中列への攻撃が可能になる。 その場合ターゲットは前列と中列の中からランダムで決まる。 ただし中列への攻撃はダメージが1/2になる。 中列の被弾はまれなので、中列のユニットに防具をつけないプレイヤーも多い。

ちなみにメイジの落雷攻撃は全ユニットの中からターゲットがランダムで決まる。

スペルカードによる状況改善

クリティカルヒットや中列被弾で不意に発生したダメージから立て直すために スペルカードを使うことになるだろう。 不運な被弾はスペルカードによって回避できるが、 それが多く発生する場合は戦力差が少ない状態であり、スペルカードの消費頻度で戦力差が把握できる。 スペルカードの使用頻度でバランスがとられる。

アライアンス

課題はパーティ間の支援関係。 4つのパーティでひとつのアライアンスが作れるとする。

  • トップ
  • 左サイド …… トップに対して支援可能
  • 右サイド …… トップに対して支援可能
  • バック …… トップ・サイドに対して支援可能。前キャラクタを回復ターゲットにできる

サイドからの支援

サイドのパーティのユニットは通常は自ユニットへの支援を行う。 ただし、自パーティ内に支援対象が見つからない場合はトップのユニットを検索する。

バックは前列が他パーティの中列に位置する。

上記は1トップのダイヤ陣形。 2トップの場合はスクエア陣形となる。

  • 左トップ
  • 右トップ
  • 左バック …… 左トップに対して支援可能。回復ターゲットも左サイドのみた対象
  • 右バック

戦闘回数

余談。

アイテムのランクを向上させる幸運のお守りの効果のひとつに、 アイテムのドロップをスロットのストックのように特定の期間だけ大量放出するタイプがある。 天井もあったりするので、ある一定数以上の連続戦闘が可能なPTを組むという方針もありえる。 MP切れをスペルカードで補う方法もある。 つまりPTを編成するときには瞬発力とスタミナのバランスを考える必要があるということ。