日記/2007-11-08

2007-11-08 (木) 21:47:32
お名前:

昨日の日記の補足。

最後のセクション(ソフトの怖いところ)が理解できなかった人がいるようなので、ちょっと補足。

例えば友瀬がGlenelgで放置狩をして欲しくなくて、「一定時間ケミが移動しなければ、ホムの活動を一切停止する」というAIを組んだとする。
それを公開した場合、何がおきるか。

  • 放置しない人には、まずなにも関係がない。
  • 放置して、かつ自分でAIを読めるレベルの人は、「移動しなければ」チェックをはずしてしまう。
  • 放置して、自分でAIを触れないような人は、「別の公開AI」もしくは「古いバージョン」を使うだけ。
    • もしかしたら、「直せる」人が修正版を再アップor修正箇所指摘とかするかもしれない。

・・・という感じなわけです。
友瀬だって「移動しなければ云々」のプログラムを作るのに多少の時間はかかりますし、それは「放置をしない友瀬」にとってはなんの意味も無い。
さらに、このコードに影響を受ける人は「それを削除」してしまう。
つまり、時間をかけて作っても、それは機能しない・削除される運命にあるわけです。
・・・そういう書くだけ無駄というような、労力を使いたくないのです。

まあ、Glenelgはつくりが難しいとか、設定ツールがないとか、動きが独特すぎとかいろんな理由で、放置はもちろん全体需要も低いようですが(笑)


火壁対策検討中

ひさびさにAIの話。
こんな機能を検討中。
まあ、イベント対応があるので実装するのはいつになるかわかりませんが。

  • 課題:敵が使ってくる火壁。
    よくあるケースとして、GD3のマリオネット。
    現状ホムは敵の火壁の存在に気づくことができないため、火壁を使われるとそれを無視して「敵マリオネットに突撃→ノックバック→また突撃・・・」ループに入ってしまう。
  • 対応方針:
    常時ホムが自分の位置を監視して「ノックバックされた」と判断したら火壁があるとみなして、そこを一時的に進入不能セルとして扱う。
    • Glenelgにはすでに「障害物迂回」の仕組み自体があるので、火壁セルを侵入不能として扱えば、火壁を迂回して敵に近づくことができる。
    • 実際には火壁は3セルの幅を持っている:上記判定では火壁の向きまではわからないことが予想されるため、少し広めに「予想セルを中心に3x3の9セル」を火壁とみなす。
    • この「一時的な進入不能セル」には、タイマーでリセットする仕組みを持たせる。
  • 課題
    1. 火壁以外のノックバックとの兼ね合い。
      ありていに言って、デビルチのJTやボンゴンのバッシュなど。
      ノックバック距離を使って判断するつもり;敵種類を見ると、敵追加になったとき手間がかかるので。
      • 関連して、ここでもPv/Gv対応は考えない。
        こういう条件を含めると、SGなどが微妙になる。
    2. DanceMacable(移動キャンセル)との兼ね合い。
      自分で常に1セル動くわけで。
      火壁のノックバック距離が2であることを利用して、それで判断するしかないか?
      つまり、1セルノックバックは判定対象外。
    3. ノックバック後の動作。
      戦闘中なら、その敵へのChase処理へ。新規Chase動作なので、自動的にルート再検索になる。OK。
      Chaseを含めた移動中の場合、新規処理が必要:今は1つのChase中にルート再検索する仕組みが無い。