松井です。大変お待たせしてしまいました。

FFXIの敵対心に関する処理がどうなっているのか、
一部は数字も含めて説明させていただきました。
またどこから調整を行おうとしているのかについても簡単に触れています。

ひとつご理解いただきたいのは、今後全ての仕組みや計算式を公開するということではありません。
「敵対心」という大きな仕組みを調整していく上で、大元の部分から知って頂くことに意味があると考えて、
今回に限り骨と言える部分やその考えをお伝えすることにしました。

結果、少し難しく、それなりボリュームのあるテキストになっていますが、
敵対心に関する議論を深めるためにも、是非ご一読いただければと思います。
--
 
  • (藤戸くん風に)敵対心システムとは
    • 定量化
      敵対心システムとは、モンスターが自分にとって一番脅威的なプレイヤーキャラクター(以後、PC)を攻撃するしくみのことです。一番脅威的という判断をするために、敵対心というパラメータを使って脅威度を測ったり比較したりできるようにしています。
       
    • 目的
      ですが、敵対心システムはモンスターAIを賢くするためにあるわけではありません。
      どちらかというと、PCにモンスターのターゲットを(ある程度)コントロールする術を持たせることで戦術性を担保するという意義の方が強いです。
       
    • 種類(敵対心の減衰の仕方による分類)
      FFXIの敵対心は、減衰の仕方によって二つに分けて記録されます。
      • 時間揮発型敵対心
        時間とともに減衰する
      • 被ダメージ揮発型敵対心
        PC側がダメージをうけることによって減衰する
      モンスターに対して複数のPCが敵対行動をとるので、敵対心を記録しておくワークは、
      PCに対するリストになっています。
      (これを敵対心リストと呼んでいるのですが、このドキュメントではおそらくもう登場しない言葉です。)
      このリスト上で、「時間型揮発敵対心」と「被ダメージ揮発型敵対心」の合計値が最も高いPCを、
      モンスターは主ターゲット(オートアタックのターゲット)にします。
       
    • 行動(コマンド、魔法など)に設定されている敵対心関係のデータ
      • 敵対心の増え方による分類(直接、間接、無し)
        敵対心処理に関係しない「無し」タイプはよけるとして、敵対心の増え方によって二つに分類されます。
        • 直接タイプ
          PCがモンスターに対して敵対的な行動をとることで、PCに対するモンスターの敵対心が増えるようなタイプです。主にダメージ系、弱体系のコマンドです。
        • 間接タイプ
          既にPC1がモンスターに対して敵対的な関係があるとき、PC2がPC1に対して友好的な行動をとることで、PC2に対するモンスターの敵対心が増えるようなタイプです。
          主に回復系、強化系がこのタイプです。
         
      • 敵対心の増加量の算出方法による分類(固定、効果依存)
        • 固定タイプ
          行動が有効だった場合、時間揮発型敵対心と被ダメージ揮発型敵対心にデータで設定されている値を直接加算するタイプです。結果に数値を伴わない強化、弱体などがあてはまります。
        • 効果依存タイプ
          ダメージや回復量に比例して、時間揮発型敵対心と被ダメージ揮発型敵対心に、一定ルール(計算式)で加算されるタイプです。
 
  • いよいよ計算式
    • 敵対心の1が意味するもの
      ここでFFXIVのお話になりますが、敵視(敵対心)改修の時に松井から説明させていただきましたが、1敵対心=1ダメージを計算のスタートとしています。また、敵対心はシステム的に減衰することはありません。

      FFXIでは、敵対心システムが「時間揮発型」と「被ダメージ揮発型」に分けて管理しているワークのサイズが、NM戦などを考えたダメージ量に対して十分ではないため、減衰の仕組みと、効果依存タイプの敵対心を固定タイプの敵対心にスケールする計算式を使用する方式をとりました。
      その上で、1秒間で揮発する「時間揮発型」敵対心が60となるように、敵対心1が定められています(PS2で開発をスタートしているため、当時のフレームレートの最小単位としての1/60secが時間の尺度としてつかわれています)。
      例えば、(数値を出すのは躊躇われましたが、えいやっ)ジョブコマンド「挑発」は固定タイプで、時間揮発型敵対心に1800と設定されています。これは30秒で完全に揮発する敵対心量ということになります。
       
    • 効果変動型の敵対心計算
      まず、レベル毎に、敵対心計算用の標準ダメージというデータをもっています。
      ※この値は、武器データを作成するときの基準値(攻撃間隔240の片手剣)のD値とほぼ同じにしました。

      与えられたダメージがdダメージ時の敵対心は、
      時間揮発型敵対心=240*d/標準ダメージ
      被ダメージ揮発型敵対心=80*d/標準ダメージ
      (標準ダメージはモンスターのレベルから取得)
      となります。
      つまり、標準ダメージを4秒毎に与えている限り、時間揮発型敵対心は240から0への減衰を繰り返すだけということになります。また、被ダメージ揮発型敵対心は時間揮発型敵対心の1/3(全敵対心の25%)となるように係数80が決められました。

      現在の火力は、当初の設計基準よりも大幅に高いので、敵対心計算用の標準ダメージを見直すことで、揮発型の敵対心がキャップに到達しやすい状況を修正すべきだと考えています。
       
    • 被ダメージ揮発型の揮発量計算
      PCがモンスターからdダメージ受けたとき、モンスターのPCに対する被ダメージ揮発型敵対心が減少します。

      被ダメージ揮発敵対心=1800*d/PCのHPmax
      となります。
      つまり、そのPCのHPmaxと同量のダメージを受けた場合に、1800(挑発1回分)の敵対心が揮発するということになります。

      ※センチネルの効果によって、この量は補正をうけます。
      ※1800は後衛職からみると渋いと感じるかもしれません。
      この値を大きくすれば被ダメージによって敵対心は抜けやすくなりますが、逆に盾役がダメージを受けた時にターゲットを維持しにくくなります。もしここを調整するなら、特殊な分岐をいれるなどの検討が必要です。
      ※回復魔法は、上記計算の半分の値となります。
 
  • その他
    • ヒーリングによる敵対心増について
      ヒーリングによる敵対心増は、対象となるモンスターから、一定距離離れることで0にすることができます。距離は、魔法が届く距離の半分くらいで大丈夫です。
       
    • 敵対心キャップ
      敵対心の上限は、ご存じの全ジョブ共通となっていて、時間揮発型、被ダメージ揮発型とも同じです。
      この上限をあげることで、敵対心の上限張り付きを防げないかというと、ワークサイズ的には3倍程度までしかあげられないので効果的ではありません。
      上限値をジョブ毎に変える提案もされましたが、張り付くことが前提での提案だとすると、その状態になった場合、必ずターゲットを維持できる/できないということになりますので、現状ではもうひとネタと合わせてできないか検討中です。
 
  • 調整のはじめの一歩
    • 標準ダメージ(時間揮発型)
      まずは標準ダメージの調整だと考えます。標準ダメージは、レベル毎に設定できるため、他のレベル帯に影響を与えることなく高レベル帯のみ調整することが可能です。
       
    • 被ダメージ揮発型
      標準ダメージ調整後は、被ダメージ揮発型敵対心の調整となります。
      ダメージや回復の時の、時間揮発型と被ダメージ揮発型の割合や、PCがダメージを受けた時の敵対心の揮発量の調整となります。
       
    • 個別のコマンドアビリティ
      固定型タイプのデータに問題があれば調整します。
       
    • コンテンツ
      HP2倍、被ダメージ2倍のモンスターと、HP50%、被ダメージ50%のモンスターでは、倒すまでの時間(攻撃回数)では同じになりますが、敵対心の処理的には大きく変わります。モンスターの被ダメージを抑え過ぎると効果依存タイプの敵対心よりも、固定タイプの敵対心を持つ行動の方がより多くの敵対心を稼ぐということになります。これらの仕組みを理解した上でのモンスターのパラメータ設定であるか、コンテンツのチェックも必要となります。