2007年01月31日

雑記。

AI人力アンテナに対人AIと狩りAIの区分が増えてるので情報を。
こっこAIにGvGモード、MirAIにPvPモードがあります。
どちらも外部のLuaファイルを読み込ませる方式です。
ただこっこAIのは注意書き程度にしておいた方がいいかもしれません。
(それほど試しているわけではないようです。)

Glenelgのソースを見ててワープポイントのIDって一定で、他のNPCももしかしたら一定だったり?という疑問を感じたこの頃。
(ここでいうIDはタイプIDではなくて、プレイヤーIDと同じように扱われる数字です。)
それにしてもほんと、NPCやオブジェクト、職業など各種タイプIDの割り当てルールが滅茶苦茶、プレイヤーの職業とホムの種類が重なるとか…
将来の計画なんて適当といわんばかりの手抜きに見えました。

今は狩りを優先して頑張っているので、来週までAI更新をお休みします。
明日にもクリエがLv98になれそうです。もし可能なら出来る限り
そのまま突っ走っていきます。
posted by silica at 23:21| Comment(3) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

RacerAI version 0.3

変更履歴
・タイプIDを複数指定、優先度の設定が出来るようにしました。
・Alt+Tをデバッグ情報出力に割り当てました。

ダウンロード:RacerAI version 0.3

特徴:
・AIの機能と仕様を確認しつつ最初から書き上げています。
(標準AIの設計は全てゴミ箱に投げ捨てました)
・スキルを使う関数自身がHP/SPチェック機能を持っています。(ver0.2から)
・「目標の存在」や「目標との距離」の状態で行動が変わります。
(標準AIの「遷移状態」に相当するものです)

簡易機能AIを作る時の参考にもどうぞ。

Special Thanks: ちずきち様(青いリボンで結びます
posted by silica at 22:40| Comment(0) | TrackBack(0) | RacerAI | このブログの読者になる | 更新情報をチェックする

2007年01月29日

ラグ対策を思案中。

RacerAI Version 0.3(予定&実装済み)
・目標を複数指定可能(現在はモンスタータイプ・プレイヤーの職業のみ)
・目標の優先度は自動的に決定されます。(左から右へと優先度が下がっていく)

ドキュメント:AI詳細/RacerAI - AI機能比較表

現在、初回限定さんのラグ対策案をテスト中です。
現在わかっているのは、ばにるみーで赤い/黒いキノコを攻撃した場合
ホム自身のモーションはほとんど0の状態となることです。
GetActors()で取得できたID配列からモーションと座標の配列を新たに作って
直接比較することが果たして現実的かどうか…
posted by silica at 21:33| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月27日

ライブラリ設計に対する雑感。

AIライブラリを設計する時、色々なAIを見て参考にしたりしているのですが
こういうプログラムはあまり参考にならないです。
なぜなら、そのまま持ってきても意図したとおりに動かないからです。

関数内からグローバル変数を参照(変わらない定数はOK)

一番参考になるのは、友瀬さんのGlenelgで再利用しやすい関数がいっぱいあります。
最もひどい例は標準AIです。
状態遷移をグローバル変数で管理するために、再利用が出来ない関数が多数。

それと、今回のレーサーAIみたいな使用用途が激しく限定されるようなもの以外は
結局他のAIで十分と思うことが多く、独自AIを作るだけの価値はあまり感じていません。
ですが、独自にこれはほしいと思える機能などは色々ありそれを
使えるように既存のAIを改造したりしています。
しかし…改造しても既存AIがバージョンアップしたりして変わると、それを
追いかけていくのも大変です。
それで、改造した部分のみお手軽に持っていけるようにすることを考えると
結局独自ライブラリを作り、決まった関数を数行呼び出すだけで
出来るようにした方が楽になるでしょう。
各AIに依存する部分を極力減らせば、どのAIにも使えるように出来るという
利点もあります。

そのためには、冒頭にも書いたとおり以下の方向で考えていくと使いまわしやすく
感じます。

・関数内にグローバル変数を使わない
・関数の出入力を明確にする
・大抵のAIが持っている機能があればそれを利用するように設計

ホム命令ライブラリの場合で考えると:
・特定の会話があれば、特定の状態を実行させる通知を発行
具体的例)
画面内の検索(プレイヤー・オブジェクトなど)をチャットで入力。
→候補に当てはまるものがあれば、そこの周りまで移動しくるくる回る

「くるくる回る。」というのは既にあるAIに実装しようとした場合
既存の機能と相互干渉して上手く行かなくなります。

そのための対策として、機能をさらに細かく分けて以下のようにすると
元となるAI自体の改造労力を減らせると思います。

それぞれの条件に合ったら改造元のAIに通知を送る

改造元のAIは、その通知に合わせた状態遷移に移行するように数行変更
posted by silica at 19:26| Comment(0) | TrackBack(0) | チャットコマンド | このブログの読者になる | 更新情報をチェックする

RacerAI version 0.2

変更履歴
・AI.lua:単体で動きます。(Const.lua, Util.luaがなくても大丈夫です。)
・行動割り込み:ホムに対する他の命令を割り込み可能にしました。
・ステータスチェック:スキルを使う前にホムと主人のHP/SPをチェックします。
・ラグ対策:移動・攻撃の時、AI()関数の処理を指定回数スキップします。
・移動:ターゲットと同じ座標に移動します。
・攻撃:ターゲットに対して、隣接だけでなく1セル離れていても攻撃可能になりました。

ダウンロード:RacerAI version 0.2

Special Thanks: ちずきち様(青いリボンで結びます - 検証レースですよ

ID識別ライブラリ version 0.7
・NPC/ObjectのIDリストを追加しました。

ダウンロード:discriminator.lua version0.7
解説:AI資料/ID識別ライブラリ - AI機能比較表
posted by silica at 17:41| Comment(0) | TrackBack(0) | RacerAI | このブログの読者になる | 更新情報をチェックする

2007年01月22日

れーさーAIの検証。

とある方にレーサーAIを試してもらったのですが、
AIの一周期一回攻撃でも4〜5秒止まるようです。

二〜五周期に一回だけ攻撃するようにしたほうがいいのでしょうか。
そもそも、ラグや過負荷による止まりがGvG時間以外で再現できないと
対処方法を考えることすら難しく感じました。
GvAIを参考にしてみるものの、結局はラグに合わせて秒当りの攻撃回数を
調整しなければならないのでしょうか…

ラグっているという状態をAIでどのように検知しましょうね…。
単に周期を見て、間隔が300-500msを超えたら次の攻撃回数を減らすという
調整方法がいいのかなー?
posted by silica at 20:55| Comment(1) | TrackBack(0) | RacerAI | このブログの読者になる | 更新情報をチェックする

2007年01月21日

RacerAI version 0.1

RacerAIをダウンロードしてAI.luaにりねーむするだけです。

・リーフ専用。
・エンペリウムなどのターゲットが固定。
・ターゲットが画面内にいなければ自動安息します。
・安息する前にリーフがケミやクリエに緊急回避を掛けてくれます。
・ターゲットから5セル以内であればメンタルチェンジして攻撃します。
・ターゲットTypeIDを変えればそれをターゲットにします。
・複数のターゲットIDの場合、どれを先に狙うか分かりません。
(スドリMAPの赤きのこ群生で試した時は、MAP内のきのこの選択順番が決まってる模様。
どうやら、きのこは場所によってIDは決まってるらしい?)

ホムがリーフの人に実際に試してもらう予定です。
posted by silica at 18:45| Comment(0) | TrackBack(0) | RacerAI | このブログの読者になる | 更新情報をチェックする

2007年01月20日

プレイヤー虫眼鏡らいぶらりめも。

ボス時間を知るためにホムを使う場合の考察です。
考えてみただけで実際に作るかどうかはわかりません(汗

1.準備
ボスマップの1つしかないWP前に張り込みます。

2.条件
・ロードナイト/クリエイター/チャンピオン/アサシンクロスなら特にチェック
・画面内にいる最終時間が10分以内なら最新の時間に書き換える。
・画面からいなくなったらそれを最終時刻とします。
・WPの座標から1マス以内を通過したら記録でもいいかも?

3.出力
WPを通過したプレイヤーの情報をファイルに出力します。
CSV形式にすればエクセル・Rubyなどでさらに詳細処理が出来るように。

ID,Job,最終時間1,最終時間2,...

一覧リストを見て、一定時間間隔に来ていればその前後からボス時間を予想します。

4.時間
ボスによって時間を調整。
ボス前マップのWP座標で時間を自動判定してもいいかもしれない。


posted by silica at 22:37| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

ID識別らいぶらり。

ホムンクルスAI用ライブラリを書き上げました。
説明や更新もAI機能比較表で行っていく予定です。
これを使うと、きゃらくえもどきの情報取得を何時でもできるようになります。

AI資料/TypeID - AI機能比較表
AI資料/ID識別ライブラリ - AI機能比較表
続きを読む
posted by silica at 22:10| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月16日

れーすAI。

前回作者不明だったのでファイルを直接アップしていましたが
書き方の特徴とLydiaというキーワードから心当たりの作者のブログを
探してみた所、ありました。

初回限定のAI配布。::SIMPLE AIシリーズ その1 The Race

実際に使ってみて説明と違う部分です。

・作者名が入ってないので最初見た時は誰のAIか分かりませんでした。
・Ctrl+tではなく、Alt+Tで切り替えます。
・攻撃命令時にエラーが出ます。→変数ActivityRangeを初期化無しで使ってるからです。
(呼び足した時点でnilが入っていてそれを数値と比較するためエラーになります)
posted by silica at 20:33| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

2007年01月13日

真理の扉。

トップページのProfileを簡潔にまとめなおしました。
そのうち、キャラクターも紹介していくつもりです。

最近はウィズで狩りが楽しいー。
魔法で敵が一気に消えていくのが気分最高。
GvGで出る気はあまりないのですが。

そしてホムAIで色々分かったことをAI人力アンテナにメモ代わりとして
毎回書いてるとブログのこと全然書けませんね。
ブログはこういったメモをまとめるのに不向きなので
書きづらかったりします。

最初はハガレン関係の引用を書こうと思ったのですがかなり
堅苦しかったので削除しました(というかプロフィールの方に書いてます)。
posted by silica at 19:37| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

レーサー集計 ver1.12

レーサー集計ver1.12を出しました。

ver1.11からはバグ修正のみです。内容自体はver1.10から大幅に変えました。
その中でも一番大きいものは、結果作成にERB(テンプレート)を使ったことです。

これによって、出力結果から集計を見直すと設計の荒さとか問題点
が山ほど見えて泣けてきました;;
中身が複雑すぎて構造の問題が分からなくなっていたのですね〜
集計の改造も、ERBによるテンプレート書式を使えば前よりは
とても簡単になると思います。
時間がもしあれば、根本的に作り直したいのですがそれだけの価値があるやら?

さて、うちではLydiaの攻城戦集計をしているわけですが、集計結果を
勝手に書き換えて都合のいい結果を出してる可能性もあるわけです。
それに対しては、以下のやり方で誰でも検証可能にしてあります。

・自動集計(による細工の可能性減少)
・集計スクリプトの中身公開(による第三者のチェック)

現状言えることは、設計ミス(によるバグ)以外はそういったことは
ありません。
また、特定ギルドの削除機能は意味があまりないと思ってますのでつける予定はありません。
posted by silica at 19:15| Comment(0) | TrackBack(0) | 攻城戦 | このブログの読者になる | 更新情報をチェックする

2007年01月04日

12/31

周りに言っていた通り、レーサーに加入して参加しました。

最初の予定は、ありすさんのネタギルドにて参戦予定でした。
その準備のためモロクカプラへ行った所…
続きを読む
posted by silica at 17:36| Comment(0) | TrackBack(0) | 攻城戦 | このブログの読者になる | 更新情報をチェックする

ホムンクルスAI情報のまとめ。

海外では、標準AI以外はRampageAIとMirAIの二極化が進んでるようです。
海外掲示板では、ほとんどこの二大AIの質問しか見かけません。
また、海外では日本と違って匿名の掲示板は全然みかけません。
(検索に引っかからないのかもしれませんが。)
RampageAI作者はドイツ人、MirAI作者はイタリア人です。
最近の海外ROでは、ホムAIのケミスキル使用は容認状態となってるようです。
この二大AIは、ケミスキルサポートが充実しています。
ただし、実際の利用は英語のドキュメントを実際に読みこなすだけの
覚悟は必要です。

AI詳細/RampageAI
AI詳細/MirAI

韓国ではオートSBR(フィーリルの奥義連打)がまだ使えるということですが、どんなAIを使っているのでしょうね〜。
まさかこっこAIをそのまま持っていってたり…は、してそう…。

そして、個人的にAI機能比較表+人力アンテナをホムAI専用Wikiとして活用しています。
LydiaWikiは、出来る限りLydiaローカルの内容を扱いたいのでこちらにしたわけです。
また、ここは初回限定様の好意により、自分専用のAI解説・説明コーナーを作成することも可能です。
AI作者がマニュアル作成代わりに項目を作って載せていってもいいでしょう。
AI情報交換もここを出来る限り使ってみたいと思います。

去年のコメントにて寄せられたホムンクルス掲示板をみましたが、
管理されてるのかどうかかなり不安なので書き込む気は一切ありません。
あそこを使うくらいなら専用の掲示板を立ち上げますね。
そして専用の掲示板が必要なのかどうか、なのですが今のままで特に
困るわけでもないです。
よほど特定の細かい話をするなら各自のブログでやっていくほうが
いいと思います。
後はホムAI用の共通したライブラリがあれば便利かもしれないです。
ただ、それだけのまとめる時間がちょっと微妙…
(かつてあったROツールよりも使う人がさらに限られるので頑張っただけの効果があるのやら?)
posted by silica at 17:05| Comment(0) | TrackBack(0) | ホムンクルス | このブログの読者になる | 更新情報をチェックする

今までの更新まとめ。

・HeimdalのユウさんのレーサーWIZの為のGvサイトLydiaWikiからリンクを張りました。
・リディア百科事典、ネタ攻城戦、砦・城名、アナウンスはLydiaWikiへ移しました。
・砦名を全て調べなおして、漢和辞書でさらに確かめました。
・現在分かっている占領アナウンスの仕様を海外・日本全てまとめました。
・迷える子羊AI Version 0.10をユーザーAIに加えました。
AI機能比較表+人力アンテナAI資料/可能性AI資料/コンパイルを追加しました。
AI詳細/RampageAIも更新。他にMirAI, GvAI, 可能な限りAIの項目を追加しました。(詳細は書いていません。)
・ホムAIに関するまとめをAI機能比較表+人力アンテナのAI資料に書き込みました。
MirAIとRampageAIの翻訳も一緒にのせてあります。

後はレーサー集計の修正がある程度終わったので最終版の準備中です。
後は改行記号"\r"をどこで直したらいいかと言う問題のみです。
今回の売りは、出力内容を簡単に変えられる
ようにするというもので変更しない人には特に変わらないものです。
その結果、2つのスクリプトの中身が重複過ぎたものをまとめて
きれいさっぱりにすることが出来ました。
続きを読む
posted by silica at 16:25| Comment(1) | TrackBack(0) | 更新 | このブログの読者になる | 更新情報をチェックする

賀正新年。

あけましておめでとうございます。

今後ともうちのサイトをよろしくお願いします。
今年の目標
posted by silica at 16:14| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。