FC2ブログ
指弾チャンプの不定期気まぐれ日記
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
俺の俺による俺の為の・・・
こんばんわ。いとーです(・ω・)ノ




最近はすっかりホムにかかりっきりで、チャンプが疎かになってますw
AIは相変わらず配布サイトの奴を使わせてもらっているのですが、
中身をちょこちょこっと変えたり付け加えたりしてLua勉強中です。



まず始めにやったのが、ホムンクルスの攻撃モーションの問題。
これはホムが攻撃する時に、攻撃モーションが全部表示される前に
モーションキャンセルが掛かってしまい、ブルブル震えているような
モーションで攻撃してしまうという不具合(?)。

これを修正するには、AI上で攻撃するリクエスト
モーションが完了するまで止めなければいけない。

単純になにをすればいいのかというと、

Attack(MyID,MyEnemy)

という命令文を実行させないようにする。

その為に最初に考えたのが、ラグナロクのような2Dキャラクターは
ドット絵と呼ばれる一枚一枚の静止画を連続に表示させる事によって
アニメーションをしている訳なのだが、そのアニメーションが攻撃モーション
の時には実行しないようにするというプログラムを考えやってみた。

が、
これがなかなか上手くいかない・・・Σ(゚Д゚;=;゚Д゚)!?
理論的には完璧なはず・・・(;´Д`)
どんなのを作ったのかを簡単に説明すると
GetV(V_MOTION,MyID)
関数を使い、ホムンクルスのモーション属性を取得しようと試みた。

そこでTraceAIでログを流してホムンクルスの、
攻撃モーション属性を調べてみたところ・・・
攻撃中にも関わらず、モーション属性はIDLE(待機:0)のままなのだ!

そして、もう1つ重大なことが分かった・・・それは・・・

AIの実行間隔が一定じゃない
ということ・・・(;´Д`)
ちゃんと調べてないが、間隔は短い時で0.093sec、長い時で0.632sec

これはネット環境や、PCの性能にもよるところがあるかもしれないが、
結構バラバラでちょっとショックだった・・・(;´Д`)

まぁ話を戻すと、攻撃時にモーション属性が待機のままって・・・
これは明らかにガンホー又は、開発元のグラビティの不具合だろと。
まぁ愚痴っても仕方ないので、これは何とかしないといけない・・・。
と、色々情報を集め考えた結果、結局は攻撃モーションを認識する
コードがない為、こちら側で時間を計り、
「一定時間経過するまで攻撃リクエストをしないようにするしかない」
という意見があったので参考にしてみてやってみた。

if (GetTick() - AttackTime >= A_wait) then 
    Attack (MyID,MyEnemy)
    AttackTime = GetTick()
end


結局これだけで終わってしまったw

分からない方の為に簡単に説明すると、
上から
「もしGetTick()-AttackTimeがA_waitより大きい時」
という条件文。
「MyID(ホム)がMyEnemy(敵)に攻撃をする」
という命令文(リクエスト)。
「GetTick()(現在の時間)をAttackTimeに代入」
代入された時間を新しく更新されてきたGetTick()(現在の時間)から
引けば、更新されるまでにかかった時間が分かる。
そしてさらに更新された時間が、A_waitよりも大きい時に
アタックリクエストするというプログラムです。

感のいい人は気づいたかもしれませんが、A_waitって何だ!?

A_waitは自分で好きな文字に変えてもいいグローバル変数で、
例えば元々の値を150あたりに設定しておけば、
GetTick()-AttackTime0.150秒過ぎた時
アタックリクエストするという感じで使えるのです。
あ、後AttackTimeもグローバル変数なので、初期値は0でいいのですが
最初に宣言しておかなければいけません。

それとちょっと条件を増やせばConfig.Luaで条件を入れる事によって、
逆にモーションキャンセルさせたりも設定可能にすることができます。



と、言う訳で。
なんか忘れないようにメモ的なブログになってしまった(;´Д`)
「俺の俺による俺の為のAI講座」
という事で勘弁してくださいw

まぁ無事に攻撃モーションを見る事ができて安心(?)しました(*・ω・)

配布されてるAIの性能がよすぎて、自分で変えるところがあまりないw
後やったことと言えば、待機中の動きをランダムに走り回ったりとか
そんなことくらいかな・・・ヽ|・∀・|ノカワイイヨ

今回SSないな・・・ということで一枚。
ホムLvUP

スポットライトが眩しいぜ!(・∀・)b
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。