簡易AIテンプレ等

「簡易AIテンプレ等」の編集履歴(バックアップ)一覧はこちら

簡易AIテンプレ等 - (2008/01/17 (木) 18:21:26) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

まず初めにこれらのサイトを見て回ることをお薦めします。 最果ての家 AI講座 http://saihate-house0154-06.hp.infoseek.co.jp/mugen/mugen_material.html ※1/12に削除されました。 ㍻㌢氏製作のAI説明書 http://drinvincible.hp.infoseek.co.jp/ http://drinvincible.hp.infoseek.co.jp/AIManual.zip ステート一覧 http://homotaro.s44.xrea.com/sctrlref.htm トリガー一覧 http://homotaro.s44.xrea.com/triggerref.htm [[AIガードテンプレ]] [[AI用擬似中下段学習]]        掲示板より引用 >537 名前:&font(#057cbe){&b(){&font(#057cbe){&b(){no name}}}}[sage] 投稿日:2007/11/25(日) 13:20:51 ID:/+KHwFpW >AI動画上げたら、AIうp希望者が多くて吹いたw >強AII程度なら、慣れたら2~3時間で簡単に作れるんだが・・・・・・最果てとかを参考にしながらw > >某動画でうpられたKFMとかは、良AIで、製作者のセンスが出てるから、欲しがる理由も分かるが、 >簡易~狂AI程度なら、誰が作っても大差ないだろうにww > >独断と偏見による、AIの定義 > >簡易AI :特定の条件下で、特定の技を一定確率で繰り出す。 >(対空に昇竜拳、離れてたら波動拳、立ち大パンチ→強昇竜拳など) >強AI  :上記の条件指定を厳しくして、高確率~100%で繰り出す >(間合いに入ったら即投げ。小足見て昇竜拳、ウメハラ・ブロッキングなど) >狂AI  :強AIに加えて、ステータスが変化する >(攻撃力や防御力上昇。ゲージの自動回復など) >良AI  :簡易AIに加えてチャーンコンボやエアリアルなどを一定確率で入れてくる >(下段弱キック2発→下段中キック→波動拳など。目押しコンボやオリコンも含む) >凶AI  :狂AI+良AI。さらに、通常では不可能なコンボや、CPU専用技などを使ってくる >(歩きサマー、メガロマニアなど) > >AI作成難易度 >↑ 低い >↓ 高い > >簡易、強、狂の製作は簡単。0からはじめても三日もあればできるようになるはず >つっても、良AI、特にオリコンとかは、かなり複雑で、ちゃんと繋がるようにするのはかなり面倒だがw > >ちなみに、リトライ前提なら、簡易AIでも十分見られる試合を撮れると思われ >541 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:00:01 ID:/+KHwFpW >statetyep = *  自分の体勢。A:空中 S:立ち C:屈み L:ダウウン >p2statetype = * 敵の体勢。↑と同じ >p2movetype = * 敵の状態。A:攻撃中 H:やられ中(ガードも含む) I:その他(棒立ち、パワー貯め、挑発など) >p2bodydist X = [*,*] 敵との相対距離。-5,5:ほぼ密着。10,20:打撃距離。80,160:端から真ん中くらい。160,320:真ん中から画面端 >InGuardDist ガード可能範囲にいる状態。= 0で攻撃範囲外も検出可 >Random <= * 0~999の範囲。300~700くらいが妥当 >RoundState = 2 戦闘中のみ。これがないと延々と死体殴りしたり、やられたはずなのに起き上がったりする >BackEdgeBodyDist <= * 20~50で、画面端に追い詰められた状態 >FrontEdgeBodyDist <= * 20~50で、画面端に追い詰めた状態 >MoveContact キャンセル用。statenoと併用しないと認識しないっぽい。攻撃が当たった時(ガードも含む) >! ~以外 >&& ~と同時に >|| ~もしくは、~ > >簡易なら、とりあえずこれだけ覚えればおk 詳しくはググれw > >注意点としては、MoveContactとctrl = 1を一緒に使わないこと >statetype != Aは、SとCだけでなく、Lも含むので、ctrlと併用しないと起き上がりキャンセル暴発してしまうこと >【】を使った後は、()で括らないと、&&や||を置いても、エラーが出ること。 >「p2bodydist X = [*,*] && statetyep = *」だとエラー。「(p2bodydist X = [*,*]) && statetyep = *」ならおk >空白スペースでも、全角だと、エラーがでること >!は=の前に置くこと 「=!」ではなく「 !=」 >542 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:04:27 ID:8urY39hy >>>541 >P2BodyDist X = [*,*] && StateType = * >の部分は >StateType = * && P2BodyDist X = [*,*] >という風に順番を変えるだけでもいける。 >既に知っているだろうとは思うけど補足として。 >543 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:21:20 ID:/+KHwFpW >手順としては、cmdファイルをコピーしてバックアップ。 >codを開く→statedef -1のステートの,、command ="****"を含むtriggerに「;」をつけて無効化 >全「ctrl」に&& random <=**を追加 > >あとは、各種条件をtriggerに振って完成 >ただし、これだとCPU専用になるので、それが嫌なら、var(**)を併用すること。詳しくは「最果て」でおk > >;三烈カンフー突き手(ゲージレベル1) >[State -1, Triple Kung Fu Palm] >type = ChangeState >value = 3000 >triggerall = command = "TripleKFPalm" >triggerall = power >= 1000 >trigger1 = statetype = S >trigger1 = ctrl >trigger2 = statetype != A >trigger2 = hitdefattr = SC, NA, SA >trigger2 = movecontact > >↓ 近くに居る倒れてない、何もして無い相手、または、何らかの攻撃が当たった相手に超必殺技を使用 > >;三烈カンフー突き手(ゲージレベル1) >[State -1, Triple Kung Fu Palm] >type = ChangeState >value = 3000 >;triggerall = command = "TripleKFPalm" >triggerall = power >= 1000 >trigger1 = statetype = S || statetype = C >trigger1 = ctrl && random <=100 && (p2bodydist X = [0,10]) && p2statetype = S && p2movetype = I >trigger2 = statetype != A >trigger2 = hitdefattr = SC, NA, SA >trigger2 = movecontact >trigger3 = ctrl && (p2bodydist X = [0,10]) && p2statetype != L && p2movetype = H >558 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 15:33:14 ID:/+KHwFpW >とりあえず、簡単な奴を置いとくぜ?w >共通テンプレ >trigger1 = ctrl && random <=700 >対空用テンプレ >trigger1 = statetype != A && p2statetype = A >trigger1 = p2movetype = I ;対空技が無敵時間ありなら「A」でおk >trigger1 = p2bodydist X = [10,30] ;相手の高さの指定はしなくても、たいていの場合は普通に機能する >trigger2 = p2movetype = H ;対空技が非キャンセルでも繋がるなら >trigger2 = statetype != A && p2bodydist X = [0,10] >飛び道具用テンプレ >trigger1 = statetype != A && p2movetype = I ;飛び道具が強力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >trigger1 = p2bodydist X >= 60 ;飛び道具の出が遅いなら80~160で、逆に早いなら削除 >trigger2 = p2movetype = H && p2bodydist X <= 80 ;出が遅いなら削除 >小足用テンプレ >trigger1 = statetype != A && p2movetype = I ;判定が強力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >trigger1 = p2bodydist X <= 10 ;リーチが長いなら、20~30でもおk >小足からの連携用テンプレ(statenoとMoveContactを併用すれば、簡単なコンボなら設定可能) >trigger1 = statetype != A && p2movetype = I ;判定が協力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >triggerall = p2bodydist X = [10~20] ;小足と重ならないように >trigger2 = p2movetype = H && p2statetype != L ;繋ぐのが下段技なら、(p2statetype = S || p2statetype = C)でおk >562 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 15:42:17 ID:/+KHwFpW >ガード用テンプレ(テレポートや緊急回避にも応用可能) >value = Ifelse(EnemyNear,StateType = C,131,130) ;デフォの場合。131が屈み、130が立ちガードに当たる >triggerall = ctrl && StateType != A >trigger1 = Random <= 700 && P2BodyDist X <= 50 >trigger1 = Enemy, HitDefAttr = SCA, AA, SA ,HA ,AP, SP, HP ;うまく機能して無い気もするが一応w >trigger1 = MoveType = I && ((EnemyNear, MoveType = A || p2movetype = A) || (Enemy, NumProj >= 1)) >trigger2 = InGuardDist = 1 && p2movetype = A || (Enemy, NumProj >= 1) :&&を ||に変えると、より硬くなるが、固まり易くなるw >trigger2 = P2BodyDist X >= 50 > >各種ステート(statedef)は、実行の優先順位があり、上から順番に高くなる >条件がかぶってる場合、複雑なほうを↑に配置して、簡潔な奴を↓に配置する事 >テンプレはテンプレ、微調整は必須だぜ? あと、キャンセルできない技をキャンセルしないように、ctrlの適用範囲をちゃんと確認するように >それと、全角が混じってるかもしれないから、コピペするときは要注意なw > >>>552 >&nbsp;>敵が現在無敵かどうか、敵に当り判定があるかどうか。 >画面全体を覆う、透明でダメージやヒットスパークの無い、0フレーム攻撃を行い。そのstatenoとMovehitをtriggerにすれば判別可能 >ただし、当身系の技には無効。むしろ無効にしとかないと分身するがw >&nbsp;>打撃や投げなどは関係なく、敵の攻撃がガード可能かどうか。 >常時ガードしてる、透明helperを用意。そのhelperのstatenoを監視して、それをtriggerにすればおk >ただし、旨く制御しないと、簡単にバグるww > >かなり反則で、AIと呼べるか怪しいが、一応方法はあるぜ? 以上、「''MUGENについて語るスレpart10''」より http://bbs.nicovideo.jp/test/read.cgi/question/1195749036/
まず初めにこれらのサイトを見て回ることをお薦めします。 最果ての家 AI講座 http://saihate-house0154-06.hp.infoseek.co.jp/mugen/mugen_material.html ※1/12に削除されました。 ㍻㌢氏製作のAI説明書 http://drinvincible.hp.infoseek.co.jp/ http://drinvincible.hp.infoseek.co.jp/AIManual.zip ステート一覧 http://homotaro.s44.xrea.com/sctrlref.htm トリガー一覧 http://homotaro.s44.xrea.com/triggerref.htm [[AIガードテンプレ]] [[AI用擬似学習]]        掲示板より引用 >537 名前:&font(#057cbe){&b(){&font(#057cbe){&b(){no name}}}}[sage] 投稿日:2007/11/25(日) 13:20:51 ID:/+KHwFpW >AI動画上げたら、AIうp希望者が多くて吹いたw >強AII程度なら、慣れたら2~3時間で簡単に作れるんだが・・・・・・最果てとかを参考にしながらw > >某動画でうpられたKFMとかは、良AIで、製作者のセンスが出てるから、欲しがる理由も分かるが、 >簡易~狂AI程度なら、誰が作っても大差ないだろうにww > >独断と偏見による、AIの定義 > >簡易AI :特定の条件下で、特定の技を一定確率で繰り出す。 >(対空に昇竜拳、離れてたら波動拳、立ち大パンチ→強昇竜拳など) >強AI  :上記の条件指定を厳しくして、高確率~100%で繰り出す >(間合いに入ったら即投げ。小足見て昇竜拳、ウメハラ・ブロッキングなど) >狂AI  :強AIに加えて、ステータスが変化する >(攻撃力や防御力上昇。ゲージの自動回復など) >良AI  :簡易AIに加えてチャーンコンボやエアリアルなどを一定確率で入れてくる >(下段弱キック2発→下段中キック→波動拳など。目押しコンボやオリコンも含む) >凶AI  :狂AI+良AI。さらに、通常では不可能なコンボや、CPU専用技などを使ってくる >(歩きサマー、メガロマニアなど) > >AI作成難易度 >↑ 低い >↓ 高い > >簡易、強、狂の製作は簡単。0からはじめても三日もあればできるようになるはず >つっても、良AI、特にオリコンとかは、かなり複雑で、ちゃんと繋がるようにするのはかなり面倒だがw > >ちなみに、リトライ前提なら、簡易AIでも十分見られる試合を撮れると思われ >541 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:00:01 ID:/+KHwFpW >statetyep = *  自分の体勢。A:空中 S:立ち C:屈み L:ダウウン >p2statetype = * 敵の体勢。↑と同じ >p2movetype = * 敵の状態。A:攻撃中 H:やられ中(ガードも含む) I:その他(棒立ち、パワー貯め、挑発など) >p2bodydist X = [*,*] 敵との相対距離。-5,5:ほぼ密着。10,20:打撃距離。80,160:端から真ん中くらい。160,320:真ん中から画面端 >InGuardDist ガード可能範囲にいる状態。= 0で攻撃範囲外も検出可 >Random <= * 0~999の範囲。300~700くらいが妥当 >RoundState = 2 戦闘中のみ。これがないと延々と死体殴りしたり、やられたはずなのに起き上がったりする >BackEdgeBodyDist <= * 20~50で、画面端に追い詰められた状態 >FrontEdgeBodyDist <= * 20~50で、画面端に追い詰めた状態 >MoveContact キャンセル用。statenoと併用しないと認識しないっぽい。攻撃が当たった時(ガードも含む) >! ~以外 >&& ~と同時に >|| ~もしくは、~ > >簡易なら、とりあえずこれだけ覚えればおk 詳しくはググれw > >注意点としては、MoveContactとctrl = 1を一緒に使わないこと >statetype != Aは、SとCだけでなく、Lも含むので、ctrlと併用しないと起き上がりキャンセル暴発してしまうこと >【】を使った後は、()で括らないと、&&や||を置いても、エラーが出ること。 >「p2bodydist X = [*,*] && statetyep = *」だとエラー。「(p2bodydist X = [*,*]) && statetyep = *」ならおk >空白スペースでも、全角だと、エラーがでること >!は=の前に置くこと 「=!」ではなく「 !=」 >542 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:04:27 ID:8urY39hy >>>541 >P2BodyDist X = [*,*] && StateType = * >の部分は >StateType = * && P2BodyDist X = [*,*] >という風に順番を変えるだけでもいける。 >既に知っているだろうとは思うけど補足として。 >543 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 14:21:20 ID:/+KHwFpW >手順としては、cmdファイルをコピーしてバックアップ。 >codを開く→statedef -1のステートの,、command ="****"を含むtriggerに「;」をつけて無効化 >全「ctrl」に&& random <=**を追加 > >あとは、各種条件をtriggerに振って完成 >ただし、これだとCPU専用になるので、それが嫌なら、var(**)を併用すること。詳しくは「最果て」でおk > >;三烈カンフー突き手(ゲージレベル1) >[State -1, Triple Kung Fu Palm] >type = ChangeState >value = 3000 >triggerall = command = "TripleKFPalm" >triggerall = power >= 1000 >trigger1 = statetype = S >trigger1 = ctrl >trigger2 = statetype != A >trigger2 = hitdefattr = SC, NA, SA >trigger2 = movecontact > >↓ 近くに居る倒れてない、何もして無い相手、または、何らかの攻撃が当たった相手に超必殺技を使用 > >;三烈カンフー突き手(ゲージレベル1) >[State -1, Triple Kung Fu Palm] >type = ChangeState >value = 3000 >;triggerall = command = "TripleKFPalm" >triggerall = power >= 1000 >trigger1 = statetype = S || statetype = C >trigger1 = ctrl && random <=100 && (p2bodydist X = [0,10]) && p2statetype = S && p2movetype = I >trigger2 = statetype != A >trigger2 = hitdefattr = SC, NA, SA >trigger2 = movecontact >trigger3 = ctrl && (p2bodydist X = [0,10]) && p2statetype != L && p2movetype = H >558 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 15:33:14 ID:/+KHwFpW >とりあえず、簡単な奴を置いとくぜ?w >共通テンプレ >trigger1 = ctrl && random <=700 >対空用テンプレ >trigger1 = statetype != A && p2statetype = A >trigger1 = p2movetype = I ;対空技が無敵時間ありなら「A」でおk >trigger1 = p2bodydist X = [10,30] ;相手の高さの指定はしなくても、たいていの場合は普通に機能する >trigger2 = p2movetype = H ;対空技が非キャンセルでも繋がるなら >trigger2 = statetype != A && p2bodydist X = [0,10] >飛び道具用テンプレ >trigger1 = statetype != A && p2movetype = I ;飛び道具が強力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >trigger1 = p2bodydist X >= 60 ;飛び道具の出が遅いなら80~160で、逆に早いなら削除 >trigger2 = p2movetype = H && p2bodydist X <= 80 ;出が遅いなら削除 >小足用テンプレ >trigger1 = statetype != A && p2movetype = I ;判定が強力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >trigger1 = p2bodydist X <= 10 ;リーチが長いなら、20~30でもおk >小足からの連携用テンプレ(statenoとMoveContactを併用すれば、簡単なコンボなら設定可能) >trigger1 = statetype != A && p2movetype = I ;判定が協力なら「A」でおk >trigger1 = p2statetype = S || p2statetype = C >triggerall = p2bodydist X = [10~20] ;小足と重ならないように >trigger2 = p2movetype = H && p2statetype != L ;繋ぐのが下段技なら、(p2statetype = S || p2statetype = C)でおk >562 名前:&font(#057cbe){&b(){no name}}[sage] 投稿日:2007/11/25(日) 15:42:17 ID:/+KHwFpW >ガード用テンプレ(テレポートや緊急回避にも応用可能) >value = Ifelse(EnemyNear,StateType = C,131,130) ;デフォの場合。131が屈み、130が立ちガードに当たる >triggerall = ctrl && StateType != A >trigger1 = Random <= 700 && P2BodyDist X <= 50 >trigger1 = Enemy, HitDefAttr = SCA, AA, SA ,HA ,AP, SP, HP ;うまく機能して無い気もするが一応w >trigger1 = MoveType = I && ((EnemyNear, MoveType = A || p2movetype = A) || (Enemy, NumProj >= 1)) >trigger2 = InGuardDist = 1 && p2movetype = A || (Enemy, NumProj >= 1) :&&を ||に変えると、より硬くなるが、固まり易くなるw >trigger2 = P2BodyDist X >= 50 > >各種ステート(statedef)は、実行の優先順位があり、上から順番に高くなる >条件がかぶってる場合、複雑なほうを↑に配置して、簡潔な奴を↓に配置する事 >テンプレはテンプレ、微調整は必須だぜ? あと、キャンセルできない技をキャンセルしないように、ctrlの適用範囲をちゃんと確認するように >それと、全角が混じってるかもしれないから、コピペするときは要注意なw > >>>552 >&nbsp;>敵が現在無敵かどうか、敵に当り判定があるかどうか。 >画面全体を覆う、透明でダメージやヒットスパークの無い、0フレーム攻撃を行い。そのstatenoとMovehitをtriggerにすれば判別可能 >ただし、当身系の技には無効。むしろ無効にしとかないと分身するがw >&nbsp;>打撃や投げなどは関係なく、敵の攻撃がガード可能かどうか。 >常時ガードしてる、透明helperを用意。そのhelperのstatenoを監視して、それをtriggerにすればおk >ただし、旨く制御しないと、簡単にバグるww > >かなり反則で、AIと呼べるか怪しいが、一応方法はあるぜ? 以上、「''MUGENについて語るスレpart10''」より http://bbs.nicovideo.jp/test/read.cgi/question/1195749036/

表示オプション

横に並べて表示:
変化行の前後のみ表示: