*All archives   *Admin

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2012.03.12 (Mon)

AI誤作動問題

ちょっと,緊急性が高そうなバグがあったのでそれについて

bug.jpg

結論から先に言うと,私の作成した全てのAIおよびキャラAI起動暴発の危険性が確認されました。
全てです,やべぇ。

暴発条件は
①試合開始後1P(自)キャラを一切動かさない状態(AI未起動)
②2P(相手)キャラを1Pの後ろに回り込ませる
③1Pキャラでレバーで前か後ろに入力
④1PキャラAI暴発
※説明上,1P2Pと書いてますが,逆でも起きます。

原因は,AI起動用ヘルパーステート内プレイヤー判定部分の誤作動です。

[State 10000,プレイヤー判定]
type=varset
triggerAll=isHelper&&Time>0
triggerall=var(59)!=-1
trigger1=command="up"&&root,command="up"
trigger2=command="down"&&root,command="down"
trigger3=command="back"&&root,command="back"
trigger4=command="fwd"&&root,command="fwd"

trigger5=command="a"&&root,command="a"
~~~(略)~~~
var(59)=-1
ignorehitpause = 1

こんな感じに,試合開始時にコマンド入力がされたとき,
プレイヤーとヘルパーのコマンド入力が一致した場合AIを起動しないフラグを立ててるのですが
位置が逆転した場合はプレイヤーは勝手に振り向きますが,ヘルパーは振り向かないので
左右のコマンドが逆になり,AI未起動フラグが立たたず,
さらに,その下にあるAI起動フラグをONする部分が反応してしまい,暴発するという感じです。

対策としては,要するにキャラとヘルパーの向きを一致させればいいので
AI起動用ヘルパーステート内にTurnステートをぶち込めばOKだと思います。

;---方向不一致によるAI暴発対策---
[state 10000, Turn]
type = Turn
Trigger1 = Facing*ifelse((EnemyNear,Pos X-Pos X)>=0,1,-1) < 0
IgnoreHitPause = 1
supermovetime = 99999999
pausemovetime = 99999999
;---対策ここまで---

↑をcns内のAI起動用ヘルパーステート(多分cnsの一番下あたり)内の
[State 10000,プレイヤー判定]部分よりも上においてもらえればとりあえず大丈夫かと思われます。


報告してくださった方,ありがとうございます。
前提条件的に発生しにくいかとは思われますが,条件成立時はほぼ100%暴発します。
早めに更新・修正したいと思いますが,気になる方は各自修正お願いいたします。

13:25  |  MUGEN  |  TB(0)  |  CM(2)  |  EDIT  |  Top↑

★報告が二つ

報告が二つ有ります。

秋静葉のりどみに誤表記。
七の花・桔梗のコマンドが、りどみでは623+XorYですが、実際のコマンドでは623+AorBになっています。
以前にも報告した、マキシマのMAX発動時の点滅消失が、
ペイパーキャノンのHIT時でも起きるようです。

度々の報告への、迅速な対応に感謝します。
haha |  2012年03月17日(土) 20:28 | URL 【コメント編集】

★Re: 報告が二つ

報告ありがとうございます。
リドミのコマンドミス修正しときます。

マキシマのベイパーキャノンの点滅も以前のと同様の理由によるものと思われます。
次回更新時に直しておきます。

青村 |  2012年03月29日(木) 10:23 | URL 【コメント編集】

コメントを投稿する


 管理者だけに表示  (非公開コメント投稿可能)

▲PageTop

この記事のトラックバックURL

→http://aomuramugen88.blog37.fc2.com/tb.php/123-5de4bf10
この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。