Glenelg詳細 のバックアップ(No.12)

お名前:

Glenelg とは

友瀬が作っているAIの開発名称です。
同時に、友瀬のキャラ・Viceのホムンクルスの名前でもあります。
要はもともと、個人的に使うつもりだったAIということです。

Glenelgの開発方針

「友瀬が使いやすいように作る。」 これにつきます。

現状友瀬が使っているホムンクルスはバニルミルスなので、AIも基本的にバニルでの動作確認。
そして、友瀬が実際に使っていて痒いところを直す、という感じで作っています。

上記のような状態なので、バニル以外のホムンクルスについてはスキルについてはほとんど手を入れていません。どういうときに便利かわからないので。
まあ、スキルを手動でやるつもりなら、十分これでも戦えるとは思いますが。

どちらにせよ、正直実用性一辺倒の無骨なAIで、「どきどきAI」のような娯楽性は、ほとんどありません。

Glenelgの特徴

AIにはさまざまな特徴があります。
Glenelgの特徴は以下のようなところです。
(細かい変更は他にもいろいろしてますが、特徴というには弱いので記載しません)

独特の「学習」操作

多くのAIでは、ユーザーが自分の戦闘スタイルにあわせてホムンクルスが動くように、カスタマイズする手段があります。そして、その多くは ini ファイルによって設定するようになっています。

Glenelg ではそれに加えて、敵や味方キャラに対する対応方法について、ROの画面上のシンプルな操作:RO画面上の特定位置を「ALT+SHIFT+右クリック」するという操作で、さまざまなカスタマイズ設定を行えるようになっています。これらについてはiniファイルをエディタで操作・・・というような作業は不要です。

エクスプローラを使ったホムンクルス状態表示

標準AIで持っている「ALT+T」による待機/通常切り替え。
これ、使ったはいいが「待機/通常どちらになっているのかわからない」で困ったことはありませんか?
Glenelgでは、この状態を画面表示して確認できる術をサポートしています。
同時に、上述した/以下に説明するさまざまな「RO画面からの設定」も、その設定状態がフィードバックされるので、「設定できたかどうかわからない」ようなことはありません。

独自の索敵優先度

元AIでは、ケミに敵がいればそれがどんな雑魚で、ホムがどんなに囲まれていても、ケミの敵を攻撃しています。
なにか違いますよね?
Glenelgでは敵の数・敵の脅威度を基準に、多数の敵を相手にしたときに優先的に倒していく敵を判断して攻撃します。
またその「敵の脅威度」も、ROの画面上からユーザー操作で設定できます。

体力による戦闘レベル切り替え

元AIでは、どんなに体力があっても攻撃しないホムは攻撃してくれないし、逆にどんなに厳しい状態でも攻撃するホムは攻撃をします。
なにか違いますよね? Glenelgでは、ホムの体力の状態によって、敵に対する反応が変わります。

体力残量挙動
100%
〜91%
アクティブ。
原則的には「戦っている味方」を支援攻撃します。
加えて、一切戦闘がない状態でも、数マス以内に敵(含ノンアクティブ敵)がいると、積極的攻撃を仕掛けます。
90%
〜31%
パッシブ。
原則的には「戦っている味方」を支援攻撃するだけで、自ら戦闘を仕掛けることはありません。
30%
〜1%
逃亡。
敵から距離をとりつつ、ボスの周囲を移動します。
敵への攻撃は一切しません。

上記の%比率はデフォルト値。気に入らなければ iniファイルの編集で、自由に調整できるようになっています。

横殴り防止と友達設定

元AIでは、マップ上にいる他プレイヤーのキャラが「知人なのか、同じPTのメンバーなのか、ただの通りすがりなのか」がわかりません。結果的にアクティブ動作させていると横殴りしてしまうことが大きな問題になっており、多くのAIでは「パッシブ動作」にする改造が標準的に行われています。
でも、何か違いますよね?
悪いのは「横殴りしてしまう」ことであって、アクティブ索敵することではないはずです。人間はアクティブ索敵してるはずですから。

Glenelgでは、たとえアクティブ索敵をするような設定・状態であっても、横殴りになるような攻撃を自律的に行わないように動作します(もちろん、ユーザー操作では強行できます:そうしないと死にそうなアコさんを助けられないですよね?^^)

また同時に、他のキャラ/ホムンクルスを「友人」として登録できます。これにより、これらの「友人」を上述した「横殴り判定」の例外として、自分やボスを襲っている敵を迎撃するのと同じように、友人への敵も迎撃対象に加えます。
つまり、不自由なく共闘が行えます。

敵ごとに対する、アクティブ/パッシブ設定

元AIでは、アクティブ索敵をするときにその敵の都合を考えません。
もっと先に攻撃したい敵がいるのに、草をなぐっていたりして困ったりしませんでしたか?
Glenelgでは、上記表内の「アクティブ」になる条件でも、敵ごとに「攻撃を仕掛ける/仕掛けない」の設定ができます。

攻撃スキル自動使用(オートスペル的攻撃)と、敵ごとの発動率調整

元AIでは、ホムは自分のスキルを使う仕組みをまったく持っていませんでした。
何をするにもユーザー操作が必要だったのです。
乱戦時にスキルを使ってくれたらうれしいと思いませんか?
Glenelgでは、バニルの持つ攻撃スキル・カプリスを、戦闘時に確率的に使用。
また敵ごとにその使用率を変更できます。
例えば「草にはスキルを使わない」「強敵には多用」などができるわけです。

本当に危険な敵とは接敵しない設定

FLEEやDEFの関係で、ホムンクルスが直接接敵したくない状況というのはしばしばあります。
そういう敵と、普通に戦える敵とが同時に視界にいたら、どうします?
Glenelgでは、そういう「直接戦いたくない」敵がフリーな状態でいるならば・味方がタゲを奪ってくれるまで逃げ回るような動作をサポートしています。
もちろん他のさまざまな設定同様、これは敵ごとに設定ができます。

おまけ。

Glenelg は、エディタとして構造化エディタを使用しています。
ソースが劇的に見やすくなるので、一度お試しあれ。

開発詳細メモ

マニアックな話。

これ以降は、Glenelgで採用を見送っているものについて。