日記/2014-03-21 のバックアップの現在との差分(No.4)

お名前:

  • 追加された行はこの色です。
  • 削除された行はこの色です。
**ホムAI:雑記的、種族変更時のお引越しメモ。 [#q2325b70]

Glenelg では、1ユーザーが複数のケミ・ホムを所有することを想定し、
ホムの学習情報をホム種類別に記録するようにしています。

例えば物理防御がすごいゴーレム類に対して、
『バニルなら魔法のカプリスを使おう』『フィーリルではあきらめてスキルなし』とか。~
『進化してないリーフでは基本パッシブ』『育ったバニルではがんがんいこうぜ』とか。~
そういう設定ができるようにしている、ということです。

それに起因して。~
初期ホム→進化、および進化ホム→ホムS進化といった
『内部的にホム種別が変わる』状況になると、以前の学習状態が変わってしまうという難点があります。

で、これは手動処理で解消できるのですが。~
あまり詳しく解説したことがなかったので、今回の『覚醒パッチ』で影響を受ける人も多いと思うので。~
ここで改めて書きます。

以前に比べるといろいろ『静か』になったことだし、いわゆる設定ツールの類を提供してもいいんですけどね〜。~
面倒なんですよ(笑)

#region(→続きを読む。)

***前提知識: ホムンクルスとID [#n8049563]

ホム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での種族ごと設定ファイル [#u9b78fee]

Glenelgでは、以下の2種類のファイルにおいて、上記IDを利用して区別を行っています。

ai_option_xx.ini : その種類のホムの、基本動作設定~
vs_enemy_xx.ini :その種類のホムの、敵種類別の動作設定

上記xx 部分が、ホムIDのファイルです。~
ですから例えば、水羊羹バニルなら ai_option_4.ini / vs_enemy_4.ini の2つのファイルにしたがって動作します。

***ですから、もし進化したら・・・ [#hcfd8b4d]

ホムの進化(未進化→進化、進化→ホム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 にこぴぺしています。

以上、ご参考までに。

----
ご意見などがあれば。
#comment2(below)
-早々のご回答ありがとうございました。&br;無事スキル発動致しました。&br;今後とも愛用させて頂きます^−^ -- けんぞ &new{2014-03-24 10:46:18 (月)};
-ご利用ありがとうございます。&br;すみませんが、3/3の日記に書いてあるように、Glenelgは現時点ではまだホムSのスキルの自動使用には対応できていません。暫定でよければ、以下のようにGlenelgのプログラムを部分的に編集してみてください。&br;&br;USER_AI/skills.lua を編集。&br;次のような部分があるので・・・&br;SKILLDATA[8009] = {}				-- ■ムーンライト■&br;SKILLDATA[8009][1] = { 4,2500,0,0}&br;SKILLDATA[8009][2] = { 8,2500,0,0}&br;SKILLDATA[8009][3] = {12,2500,0,0}&br;SKILLDATA[8009][4] = {16,2500,0,0}&br;SKILLDATA[8009][5] = {20,2500,0,0}&br;&br;これを編集。上記の8009 になっている部分を8028に編集して保存。&br;その上で、ai_option_48.ini 内、攻撃スキル指定を以下のように変更。&br;&br;ATTACK_SKILL_TYPE = 8028&br;&br;これでとりあえず、ソニッククローがでるはずです。&br; -- ともせ%管理人 &new{2014-03-24 05:37:25 (月)};
-ご利用ありがとうございます。&br;すみませんが、3/3の日記に書いてあるように、Glenelgは現時点ではまだホムSのスキルの自動使用には対応できていません。暫定でよければ、以下のようにGlenelgのプログラムを部分的に編集してみてください。&br;&br;USER_AI/skills.lua を編集。&br;次のような部分があるので・・・&br;SKILLDATA[8009] = {}				-- ■ムーンライト■&br;SKILLDATA[8009][1] = { 4,2500,0,0}&br;SKILLDATA[8009][2] = { 8,2500,0,0}&br;SKILLDATA[8009][3] = {12,2500,0,0}&br;SKILLDATA[8009][4] = {16,2500,0,0}&br;SKILLDATA[8009][5] = {20,2500,0,0}&br;&br;これを編集。上記の8009 になっている部分を8028に編集して保存。&br;その上で、ai_option_52.ini 内、攻撃スキル指定を以下のように変更。&br;&br;ATTACK_SKILL_TYPE = 8028&br;&br;これでとりあえず、ソニッククローがでるはずです。&br; -- ともせ%管理人 &new{2014-03-24 05:37:25 (月)};
-バニル→エレノアです。&br;自動スキルでソニッククローが使えません。&br;どのように設定すればよろしいのでしょうか? -- けんぞ &new{2014-03-23 23:56:25 (日)};

#endregion