簡易AIテンプレ等

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

簡易AIテンプレ等」(2018/04/07 (土) 00:50:34) の最新版変更点

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

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

まずはこれらのサイトを見て回ることをお薦めします。 -名の無限 一からのAI作成講座(名無し/Nanashi氏のサイト)&br()[[>>http://nanomugen644.blog54.fc2.com/blog-entry-157.html]] &br()[[>http://nanomugen644.blog54.fc2.com/blog-category-6.html]] &br()※完全初心者からAI作成に挑戦される方にオススメ -㍻㌢氏製作のAI説明書&br()[[>>https://onedrive.live.com/?authkey=%21AHiQCBHj6az5zwg&id=495747B6F9328805%21167&cid=495747B6F9328805]] -厨忍氏のAI作成に関するQ&A集&br()[[>>http://www7b.biglobe.ne.jp/~tsuyoshishiki/QA/index.html]] -夢幻回廊のAI講座(⑨氏のサイト)&br()page.freett.com/mugen9/から※&bold(){移転済}&br()諸事情により、現在のページのアドレスは伏せておく。 -ステートコントローラー一覧&br()[[>>http://homotaro.s44.xrea.com/scr.htm]] -トリガー索引&br()[[>>http://homotaro.s44.xrea.com/tr.htm]] -[[>>AIガードテンプレ]](wiki内リンク) -ニコニコMUGEN視聴者うp主交流掲示板よりAI作成相談スレ&br()[[>>http://jbbs.livedoor.jp/bbs/read.cgi/internet/1117/1232180149/l50]]&br()[[>>http://jbbs.livedoor.jp/bbs/read.cgi/internet/1117/1279433137/l50]] -MUGEN初心者用簡易AI講座(外部wiki)&br()[[>>http://wikiwiki.jp/simple-ai/]] &nicovideo(sm26590233) -ADIのMUGENメモ&br()[[>>http://mugen.niza.nobody.jp/index.html]] -MUGEN-AI講座&br()[[>>http://www.nicovideo.jp/tag/MUGEN-AI講座]] ---- 掲示板より引用 #region([[MUGENについて語るスレpart10>>http://bbs.nicovideo.jp/test/read.cgi/question/1195749036/]]より) >537 名前:&font(#057cbe){&b(){&font(#057cbe){&b(){no name}}}}[sage] 投稿日:2007/11/25(日) 13:20:51 ID:/+KHwFpW >AI動画上げたら、AIうp希望者が多くて吹いたw >強AI程度なら、慣れたら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 >statetype = *  自分の体勢。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 >&nowiki(){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と呼べるか怪しいが、一応方法はあるぜ? //ほぼ確実にキャラクターの挙動に異常をきたす方法であるためコメントアウト。 #endregion ----
まずはこれらのサイトを見て回ることをお薦めします。 -名の無限 一からのAI作成講座(名無し/Nanashi氏のサイト)&br()[[>>http://nanomugen644.blog54.fc2.com/blog-entry-157.html]] &br()[[>http://nanomugen644.blog54.fc2.com/blog-category-6.html]] &br()※完全初心者からAI作成に挑戦される方にオススメ -㍻㌢氏製作のAI説明書&br()[[>>https://onedrive.live.com/?authkey=%21AHiQCBHj6az5zwg&id=495747B6F9328805%21167&cid=495747B6F9328805]] -厨忍氏のAI作成に関するQ&A集&br()[[>>http://www7b.biglobe.ne.jp/~tsuyoshishiki/QA/index.html]] -夢幻回廊のAI講座(⑨氏のサイト)&br()page.freett.com/mugen9/から※&bold(){移転済}&br()諸事情により、現在のページのアドレスは伏せておく。 -ステートコントローラー一覧&br()[[>>http://homotaro.s44.xrea.com/scr.htm]] -トリガー索引&br()[[>>http://homotaro.s44.xrea.com/tr.htm]] -[[>>AIガードテンプレ]](wiki内リンク) -ニコニコMUGEN視聴者うp主交流掲示板よりAI作成相談スレ&br()[[>>http://jbbs.livedoor.jp/bbs/read.cgi/internet/1117/1232180149/l50]]&br()[[>>http://jbbs.livedoor.jp/bbs/read.cgi/internet/1117/1279433137/l50]] -MUGEN初心者用簡易AI講座(外部wiki)&br()[[>>http://wikiwiki.jp/simple-ai/]] &nicovideo(sm26590233) -ADIのMUGENメモ&br()[[>>http://mugen.niza.nobody.jp/index.html]] -MUGEN-AI講座&br()[[>>http://www.nicovideo.jp/tag/MUGEN-AI講座]] -猿でもわかるMUGENAI作成講座 |&nicovideo(sm32941288)|&nicovideo_mylist(<iframe width="312" height="176" src="http://ext.nicovideo.jp/thumb_mylist/39699460" scrolling="no" style="border:solid 1px #CCC;" frameborder="0"><a href="http://www.nicovideo.jp/mylist/39699460">【ニコニコ動画】</a></iframe>)| ---- 掲示板より引用 #region([[MUGENについて語るスレpart10>>http://bbs.nicovideo.jp/test/read.cgi/question/1195749036/]]より) >537 名前:&font(#057cbe){&b(){&font(#057cbe){&b(){no name}}}}[sage] 投稿日:2007/11/25(日) 13:20:51 ID:/+KHwFpW >AI動画上げたら、AIうp希望者が多くて吹いたw >強AI程度なら、慣れたら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 >statetype = *  自分の体勢。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 >&nowiki(){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と呼べるか怪しいが、一応方法はあるぜ? //ほぼ確実にキャラクターの挙動に異常をきたす方法であるためコメントアウト。 #endregion ----

表示オプション

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