とりあえず、ホムSのスキル情報をGlenelgに組み込みました。
ただし、残念ながら友瀬が現時点で確認できるのは
『エイラのイレイサーカッター』だけです。
それ以外については、実装はしたものの未テストな感じ。
#いちおーダミー確認はしてますけど。
以下、あんまり整理できてないですが、いろいろ列挙。
- 基本的なスキル情報追加。
- Glenelg では、スキルに必要なコストやディレイを確認して
『使いたいけど、使っても失敗するから(通常攻撃をとめないために)スキルを使わない』
ような振る舞い、『知らない』スキルについては使わない(使えない)ように動きます。
- Glenelg 0.52 でスキルテーブルを追加したので、上記条件をクリアしました。
- 召喚系スキル(サモンレギオン)の召喚物無視する設定追加。
- もともと「ジオとかFAWを無視」する仕組みがあるので、ハチ系を追加しただけです。
- ただし、セラがいないので未確認(笑)
- 地面指定スキル、暫定サポート
- 基本AIでは昔からサポートされていたのですが。
旧ホムではそもそも存在しなかったので、Glenelgでは『テストできない』ことも含めて未実装でした。
- Glenelg 0.52では実装はしましたが、まだ動作確認はできていません。
ダミー確認のみ。
- 残項目:地面指定スキルのオートスキル登録。
- 実際に使うかどうかは別として。
- 例えば『ゼノスラッシャーをイレイサーカッター』代わりに、という使い方は想定できる。
- ディレイ/クールタイムの管理見直し
- 従来『ホム全体で1つのディレイ管理』だったのが、
ホムS以降は『各スキルごとにクールタイム管理』となった。
- ものすごく単純にいうと従来は
『強化スキルによるディレイ』が長く、強化スキル使用中に射撃スキルを使えなかった。
が、今後は『同じスキルの連打』はできないが、『複数のスキルを平行して』使うことはできる。
とりあえずはこんな感じか。
バニルエイラな友瀬的には、近く地面指定のゼノスラッシャーでテストします。
それ以降は、不明、かなぁ。
前にも書いた記憶があるんですが、ホムSのスキルはいろいろ癖が強くて、
オートスペルで使用するのは結構難しいところ。
そのあたりが悩みどころ、ですね。
ご意見などがあれば。
前提知識: ホムンクルスとID†
ホムAIプログラムにおいて、ホムンクルスが「何者か」を判断するための手段は原則として「ホムンクルスID」というデータしかありません。
これは「未進化・原種・バニル」とか「進化・亜種・フィーリル」、「ホムSバリエリ」といった、
画面上での見た目にヒモづいた数値です。
具体的には、以下のようになっています。
| 原種 | 亜種 |
未進化 | 進化 | 未進化 | 進化 |
リーフ | 1 | 9 | 5 | 13 |
アミストル | 2 | 10 | 6 | 14 |
フィーリル | 3 | 11 | 7 | 15 |
バニル | 4 | 12 | 8 | 16 |
| |
エイラ | 48 |
バイエリ | 49 |
セラ | 50 |
ディータ | 51 |
エレノア | 52 |
未進化原種バニル(水羊羹)なら ID 4、進化亜種フィーリル(火の鳥的なの)ならID 15、という感じですね。
Glenelgでの種族ごと設定ファイル†
Glenelgでは、以下の2種類のファイルにおいて、上記IDを利用して区別を行っています。
ai_option_xx.ini : その種類のホムの、基本動作設定
vs_enemy_xx.ini :その種類のホムの、敵種類別の動作設定
上記xx 部分が、ホムIDのファイルです。
ですから例えば、水羊羹バニルなら ai_option_4.ini / vs_enemy_4.ini の2つのファイルにしたがって動作します。
ですから、もし進化したら・・・†
ホムの進化(未進化→進化、進化→ホムS)を行った場合。
AIから見たホムのIDは変わってしまいます。
そのため、それまでの設定値もまた、無意味になってしまいます。
前述の通り、水羊羹バニルは ai_option_4.ini に基づいて動作していますが、
それが進化すると今度は ai_option_8.ini に基づくわけです。
ここまで書けばもうお分かりだと思いますが。
ホムを進化させた場合、昔の姿(ID)で使用していた設定を、今の姿(ID)にコピーすることで設定を継続させることができます。
前述の例であれば、進化した時点で ai_option_4.ini および vs_enemy_4.ini の内容を、ai_option_8.ini および vs_enemy_8.ini にそっくりコピーペーストすればいい。
ホムS進化も同様です。
例えば友瀬は昨日『進化原種バニル→エイラ』のホムS進化をしたので、
ai_option_8.ini を ai_option_48.ini にこぴぺ。
vs_enemy_8.ini を vs_enemy_48.ini にこぴぺしています。
以上、ご参考までに。
ご意見などがあれば。
- 早々のご回答ありがとうございました。
無事スキル発動致しました。
今後とも愛用させて頂きます^−^ -- けんぞ
- ご利用ありがとうございます。
すみませんが、3/3の日記に書いてあるように、Glenelgは現時点ではまだホムSのスキルの自動使用には対応できていません。暫定でよければ、以下のようにGlenelgのプログラムを部分的に編集してみてください。
USER_AI/skills.lua を編集。
次のような部分があるので・・・
SKILLDATA[8009] = {} -- ■ムーンライト■
SKILLDATA[8009][1] = { 4,2500,0,0}
SKILLDATA[8009][2] = { 8,2500,0,0}
SKILLDATA[8009][3] = {12,2500,0,0}
SKILLDATA[8009][4] = {16,2500,0,0}
SKILLDATA[8009][5] = {20,2500,0,0}
これを編集。上記の8009 になっている部分を8028に編集して保存。
その上で、ai_option_52.ini 内、攻撃スキル指定を以下のように変更。
ATTACK_SKILL_TYPE = 8028
これでとりあえず、ソニッククローがでるはずです。
-- ともせ%管理人
- バニル→エレノアです。
自動スキルでソニッククローが使えません。
どのように設定すればよろしいのでしょうか? -- けんぞ
変わっているもの: require 命令でのファイルパス指定。
そのため、require 命令でAIの分割モジュールを読み込むことに失敗しています。
とりあえず、require で grepして、そこにあるパス記載を以下のような感じにすればよい。
Glenelgでは都合20か所弱あるはず。
従来 「AI/USER_AI/main.lua」
今後 「AI\\USER_AI\\main」
従来のスラッシュ指定をダブルバックスラッシュにして、拡張子 lua指定を削除、ということ。
各種 config, ini 系ファイルへのアクセスは未確認。
ただ、立ち上げてみた感じだととりあえず読んではいるっぽい。
詳細は今週末にでも確認します。
以上、とりいそぎ。
ご意見などがあれば。
まず、散文的にダイジェスト。
- 前述の通り、基本的な対応は『Sホムが来てもAIが止まらない』というものです。
- もちろん、現状実際に来ていないので、当日以降多少の追加変更が発生する可能性はあります。
- Sホムに進化させる場合、ユーザーによる ini ファイルの編集が必須です。
- 編集しなくてもとりあえず動作はしますが、いわゆるオートスペル的なスキル使用はしません。
ちょっと踏み込んだ、具体的な作業。
- Sホム対応の1つの課題が、Sホムが持っているスキルがわからない、ということ。
参考記事
- 例えばバニル経由版なら、どのSホムであってもカプリスを使用できる。
- Sホムのスキルばかり使うという選択肢もあるにはあるが。
例えば「基本白兵戦限定のエレノアが、
タゲ取り・対高DEF用途でバニルのカプリスを使う」など、
特徴的なことはできるはず。
- この課題に対する Glenelgの現状の対応については、以下の方針とした。
- とりあえず、Glenelgの中でホム種別に基づいて動作を切り替えている部分は、
別途 iniファイルで指定する情報に基づいて動くようにした。
- 例えば『バニルだから、カプリスを使う』と判断していた部分は。
『iniファイルで攻撃スキルにカプリスを指定されているから、カプリスを使う』という形に。
- Glenelg ではホムの種類ごとの振る舞いは ai_option_xx.ini ファイルで定義している
(xx 部分はホムの見た目に対応するID)。
これにSホム用のファイルも作る。
- 上記Sホム用の ini ファイルは、実際には『空白』の内容とする。
Sホムを作ったプレイヤーは、その元となったホムのiniファイルの内容をコピーペーストする。
- 例えば、進化バニル(id 16) をエイラ(id 48)に進化させた場合、
ai_option_16.ini の内容を ai_option_48.ini に貼り付ける。
- ai_option_xx.ini には、用途別に3種類のスキルを登録できる。
『攻撃スキル』『強化スキル』『治療スキル』。
もしSホムのスキルを使いたい場合、当該スキルのIDを ini ファイル上で編集することで対応する。
- 例えば上記『バニル→エイラ』の場合。
単純にiniファイルをコピーペーストするとその時点では『バニル動作』する設定なので、
攻撃スキル:カプリス
強化スキル:なし
治療スキル:カオシックベネディクション
・・・となっている。
- 望むならば、上記の攻撃スキルを書き換えて、『攻撃スキル:イレイサーカッター』に書き換えればよい。
とまあ、かなり手動設定することになるんですが、現時点ではわかっていないことも多いため、ご容赦を。
ついでに補足。
実はSホムのスキルの多くは、『条件を選ぶと強い』傾向が強いと考えています。
以前・・・といってもかなり昔ですが、ともあれ検討したにもあるとおり。
そのため、オートスペルで使用するのに向いていない、と思ってます。
よって、先々そのあたりに追加をしていくかどうかは、微妙。
例えば、エレノアのコンボ。
『決まった順番・タイミングで順にスキルを使っていく』という特質は、一見プログラム向きに見えます。
ですが、そのコンボスキルには『エレノアが特定数の気弾を持っている』という前提が必要で。
おそらくはAIから、それを判断することはできません。
なんとなく、コンボをうとうとして攻撃が止まる未来がみえてきちゃいます。
それなりに回避手段もあるにはありますが、ともあれ試せない現状では机上の空論ですし。
ともあれ、友瀬は以前にも書いたとおり、当面は
『バニル→エイラ』のSホムです。
よって、Sホムスキルに何か対応するとしても、
まずはエイラ系がメインになると思います。
あしからず。
ご意見などがあれば。
Glenelgのヘルプは Windowsの chm形式で作成していたのですが。
htmlのつくりにかかわって、環境によって見ることができないケースがあるようなので。
そんな感じ。
ご意見などがあれば。