日記/2012-09-26 のバックアップソース(No.2)

お名前:
**ホムAI:討伐クエストとホムンクルス。 [#i3239146]

そういえば、すっかりコメントを忘れていたことを思い出したので、メモ的に。

端的な課題を3行でいうと:~
-ROには、『ある敵をx体倒すと条件達成』という、キルカウントシステムがある。~
-ホムンクルスが敵を倒した場合、上記キルカウントシステムにはカウントされない。
--つまり、ホムンクルスで敵を倒している限り、このシステムを使用しているクエストはクリアできない。


多くのクエストでは、倒す数のたかが知れているので問題は小さいのですが。~
近年 ROでの経験値稼ぎに大きな比重を占めている『討伐クエスト』が問題。~
それなりの強さの敵を数百のオーダーで倒すことで、大きなボーナスを得られるこのクエスト。~
ホムが敵を倒してしまうとカウントを得られないため、ホムメインorホムと同時攻撃で狩りをしているアルケミ系キャラにとっては、苦しい要素があるわけです。

で、これに対する Glenelg/友瀬のスタンスについて。

#region(→続きを読む。)

***Glenelg/友瀬的な基本的対処方針について [#q9e916e9]
『Glenelgの''手加減モード''を使用してください』です。~
手加減モードは、もともとは別の目的への対処方法として設計したものですが、本質的には『キルカウントシステム対応』として求められていることと同じだと考えています。

手加減モードの本来の目的は、ホム共闘時のJob経験値喪失という問題への対処です:~
ホムンクルスには『ホムが敵に与えたダメージに応じてJob経験値が失われる』という弱点があるため。~
Glenelgでは『ホムは1体の敵には数秒しか攻撃しない』という振る舞いによって、共闘だけを与えることを狙うようにしています。

『ちょっとだけ攻撃して、とどめはボスケミに任せる』という観点は、討伐クエストについても同じ。~
趣旨はおおむね合致していると、考えています。

***他AIの状況・機能差異について [#p10f81e8]

この『手加減』のような動作は、一部の他公開AIでもサポートされています。~
また、そのうちの一部ではさらに高度な仕組みをもって対応しているようです。

具体的には:~
-ある敵に対する戦闘所要時間を予測し、それに応じて戦闘時間を変化させる。
--予測方法その1:実際の戦闘時間を測定し、その平均値and/or最短値から決定する。
--予測方法その2:いわゆる『計算機』を利用し、ホム/ケミの戦闘能力から時間を計算する。
---狙いとしては『ぎりぎりまではホムに協力してもらう』ことで戦闘時間を短縮することでしょう。

ぎりぎりまで戦闘支援してもらうため、Job経験値の損失は大きいものになるはずですが。~
討伐クエストで得られる経験値は敵から得られるそれよりも大きいため、『倒すことに時間をかけるよりは、討伐クエストを早くこなしたい』という考え方もありそうです。

対して現状の Glenelg では、手加減は iniファイルでの『全敵共通で XXX回のAIカウントの間攻撃』、デフォルト約1秒の指定だけ。~
上記と比べると劣っているといえます。

***上記に対する友瀬の考え方 [#rcaf085f]

友瀬は当面、上記のような『予測による攻撃継続時間変動』は行わない予定です。

根本的な理由は、ホムから観測できない事象が多すぎ、厳密計算の意味がないケースが少なくないということ。
-ばらつく要素1:ケミ攻撃、R化以降のSTR/INTペナルティ。
-ばらつく要素2:ケミ/ホムの空振り、ケミのクリティカル。
-ばらつく要素3:バニルのカプリス。属性による威力差。
-ばらつく要素4:オートスペル装備の発生率。
-ばらつく要素5:ケミ通常攻撃以外の攻撃手段。特に対象を取らない範囲攻撃類。

上記以外にもありそうですが、ぱっと考えただけでこれだけ課題があると思われる。

ケミ・ホムが共にパッシブ攻撃しかしないのであれば、予測計算はかなりの精度で上がると思います。~
ホムは自分が『攻撃しつづけている』ことを知っていますし。~
ボスケミが『攻撃していること』および『その攻撃対象』を観測できます。~
パッシブ攻撃に際しては上記の要素1、要素2のようなばらつきは存在します
が、このばらつきは比較的小さく、~
『試行数』によって平均化すれば、かなり安定した数字がでるはず。

ここでの問題は、予測される戦闘時間のばらつきをどう評価し、どれくらいで手加減するのかを決めづらいということです。~
『パッシブ戦闘』を観測/想定する範囲であれば例えば『最短5秒、最長10秒で倒せる』という予測はできます。~
では、その敵に対してホムはどうするのがよいでしょうか?~
討伐考慮であれば、4秒で手加減することはある程度妥当でしょう。~
でもそのばらつきが、例えば『戦闘の8割は7秒台、6秒を切れるのは5%以下』だったら?~
それでも4秒を狙いますか?

パッシブ戦闘以外の要素が絡むと、話はもっと面倒になってきます。

例えばオートスペル的要素:上記の要素3、4。~
これらの最大の問題は、ダメージ量のばらつきが大きいこと:ホムからの与ダメージが観測できない現状では、反映が難しい。~
バニルは、自分がカプリスを打ったことは理解できますが、その属性はわかりません。~
ボスケミが無詠唱でスキルを使ったことはわかりますが、それが何を引き起こしたのかはわかりません:~
例えば『自力でのラウドボイス』なのか『オートスペルファイアボルト』なのか。~
そして、その『ばらついた』ときの効果は一般に劇的です。~
カプリスであれば0%〜200%の変動幅ですし。~
INTを振っているキャラにとっての宝剣などによるASボルトのダメージは、通常攻撃の比ではありません。~

通常攻撃以外の攻撃手段の存在も問題です。~
例えば、ジェネティックのトルネード。~
例えば、パーティメンバーのウィザードの範囲魔法。~
これらの『戦闘を一気に短くする攻撃』の存在をホムは予測できません。~
特に上記にあげたようなものは、『誰を狙ったのか』をホムが観測できないので、決めうちで判断することも難しい。

このあたりを突き詰めていくと、友瀬的には~
『ホムは2秒くらい攻撃したら止め』で十分では、と考えています。



----
ご意見などがあれば。
#comment2(below)

#endregion