日記/2007-01-10 のバックアップ(No.1)

お名前:

Ver0.46で対応した氷割りモードですが、実はかなりやっつけ仕様なのは自覚しています。
たぶん現状動作では、確かに凍結敵を狙って攻撃してはくれますが、その後の動作はあんまり美しくないと思います:本当は攻撃したら「SGの範囲内に引き込む」ような動きをしないとならないんですよね。

まあもともと一切できなかった機能ですから、ちょっとしたおまけと思ってください。
改善案はちょこちょこありますが、手を打つ暇が・・・


氷割り関連で調べた話で、AI作者にとって意外&困るはずの仕様について補足。

ある敵が誰を攻撃しているのかを取得する手法として当たり前に使われている「GetV(V_TARGET, <敵ID>」というもの。
これ、凍結前後でどうなっているかというのを調べると、ある意味妥当な、ある意味困った状況になっています。
実際に観測した際の情報を列挙すると、こうなってます。

実施した手順
ウィズがノンアクティブの敵(アンバーナイト)を一発殴ってタゲを取ったあと、SGでそれを巻き込み凍結。
その後放置でそれが自然解凍。

このようにしたときのGetVの状況を見ると、以下のようになっていました。

step行動GetV(V_TARGET,<敵ID>
step 0初期状態0
step 1Wiz、殴ってタゲ取り(この時点ではまだ)0
step 2敵、Wizに反撃攻撃開始WizのID
step 3SG詠唱・発動→敵凍結中WizのID
step 4放置→自然解凍
敵は非アクティブに。
WizのID

ここで気をつけて欲しいことは、step 4のGetV値とその時点でのタゲ状況。
自然解凍するとその敵は(もともと非アクティブの敵なので)PCたちへの攻撃を「行いません」。
にもかかわらず、その敵はホムからみると「Wizを狙っている」ように見えます。

なかなか面倒ですね。