人生エクソダス

なんてことのない日々のこもごもをつらつらと書き連ねたり連ねなかったりする。

おつかい氏のマミさん 2 特殊動作のレビュー

2020-01-12 19:16:38 | MUGEN

 おつかい氏のマミさんについてもうちょっと語っていこうと思う。

 今回は特殊動作について。

  前回の所感は https://blog.goo.ne.jp/jinsei-exodus/e/68b3e3a1c89884f1dd01eafcd3149d20


◎マギアブート [900,901]

 いわゆるロマンキャンセル。「通常技がmovehitした時」と「必殺技中」に入力することで1ゲージ使って動作をキャンセルできる。ニュートラルだとその場でキャンセル900、前入力だとダッシュして追いかける901になる。無制限ではなく、1コンボにつき1回という制限の他、AIには禁止時間がある。

 この901ダッシュがマミさんの移動の中で最速(ダッシュが5、空中ダッシュが6、901が9)なので立ち大P(220)の先端が空中の相手に当たった場合や、ヴォレー(1000、1100)やメテオリーテ(3100)などの牽制に相手が引っかかったが遠くて追撃できない時にミラッジオ(1300、1350)をわざと出して901で走った方が普通にダッシュするより早い。空中ダッシュでの追撃は永久禁止のvar(13)がかませてあるので大して追撃できないことから、立ち弱Kで拾って地上→JC→空中コンボのルーチンに入りたいなら1ゲージ使ってコンボを獲った方がいい。

 ただ走って追いかける為に1ゲージ使うのは抵抗があるかもしれない。

 が、マミさんは受けに回ると厳しいのでゲージを抱えて大技狙うより、1ゲージガンガン使ってラウンド奪取を優先すべきというのが私の考えだ。ただし例外もある。

 <例外1 相手の防御力が高い/自分のティロフィナーレLV3>

 相手の防御力が高いときは普通にコンボをつないでもダメージの見込みがないので、800ヒットするTFlv3「ティロフィナーレ・ガラッシア」(3500)(TFG)で刈り取った方が良い。普通のキャラクターなら1はダメージが発生するので。なおTFGはダメージのある400ヒットとダメージのない400ヒットの合計800ヒットなのでATKを高く設定しているならゲージ過剰となる場合もある。

 <例外2 相手のlifeaddが普通に殴るダメージより早い>

 相手にlifeadd(体力回復)が設定している場合、マミさんのコンボ補正も相まって「最初はダメージが通っていたのにだんだんイコールまたは逆に回復される」こともある。そういう時は1ゲージでこつこつやってもしょうがないので、3ゲージ溜めて簡素に地上コンボ→JC→レガーレ→ティロフィナーレ(3200)で500ちょいダメージを獲った方がいい。TFスイッチ1以上なら2ゲージ技「ティロフィナーレ・ソル・レヴァンテ」(3300)が撃てるのでこちらの方が手軽かもしれない。

 一応発生1F目に無敵時間が1Fあるが打撃のみ(sca,aa)なので、飛び道具(ap)投げ(at)はそのまま喰らう。ただ9/毎F走って移動する性能なので、たとえばミラッジオ中に後ろから投げられそうな時に走って逃げればぎりぎり行けるかもしれない。攻めにも使えるが、前述のミラッジオしくじった時やヴォレー準備したらジャンプ攻撃されそうになったときに逃げる為に、その場900でモーション解除してHJで飛んで逃げるとかも選択に入る。そのくらい近距離でがちゃつかれるのがマミさんの受け性能からして致命的で、1ゲージ払うかラウンド獲られるかという状況にまでなりかねない。


◎通常投げ [500-501,550-551]

 地上投げ「びんた(ティロフィナーレ(笑))」が500、空中投げ「グランディーネ」が550。

 500は頬をはたいた時に501になり、これがブーキャンできるので901で追いかけていつもの230からのコンボに移行できる。相手が画面端密着ならギリギリ屈小K(330)が入るかもしれないがかなりの曲芸になるので普通に1ゲージ払った方がいい。

 550は空中の相手を摑んで蹴り落とし、同時に呼び出した銃で地面に叩きつけられた相手を撃つ。摑んだ位置が高すぎる時は追撃ができないが、ある程度低い場合、銃が当たっている間に自分が動けているのでそのまま走って230からのコンボをつなげることもできる。しかし蹴り落とした瞬間にctrlが可能になっているので、エルクゥのようにのけぞり時間の短いキャラクターには銃の追撃が入らないこともある。普段のAIは有情なので自分の体力が半分切らなければ550を振らない。

 共通することは、ニュートラル状態の相手(movetype=i)の相手にしか当たらない/すかりモーションがある ことで、投げミスがそのまま隙になることや、相手は固めないといけないがガードモーション中は投げられないというジレンマがある。 投げ判定は若干広く、伸ばした手の先端からキャラ0.5人くらいまで届く。といっても、キャラによってはinguarddistでなくてもとりあえずガードステートに引きこもって様子を見る記述になってることもあるので、ほいほい振れない。


◎ガードキャンセル攻撃 [2000]

 貴重なマミさんの切り返し。しかし1ゲージ使う。これ以外はただガードするしかないので削り倒されたり判定負けの可能性を考えれば1ゲージ払ってでも生き延びなければならない。そして地上でしか撃てないので、空中でガード固めさせられたら試合終了ですよ。場合によっては。そのくらいガードするという状況が致命的。

 すくっと立って銃を使って射撃する。この姿勢が問題で、密着状態や屈んだ姿勢が低いキャラクターには当たらない可能性もあるので全幅の信頼とはいかない。反面300くらいの射程があるので中距離で飛び道具などをガードした時にガーキャンを当てることも出来る。といっても”できる”というだけで、その後何もないので本当に切り抜けるだけとなる。


◎ジャンプキャンセル・空中ジャンプキャンセル [40,45]

 ある意味マミさんの最重要項目。立ち大K(250)/屈大K(350)/ジャンプ大P(420)/ジャンプ大K(450)を除いた通常技をジャンプモーションでキャンセルする。movehitを返したことが条件。つまりガードされた通常技はジャンプキャンセルできない。また永久ループ禁止のvar(13)の条件の一つともなっている。

 var(13)は、地上通常技を当てる&相手のけぞり→1 ジャンプキャンセル→2 となり、var(13)=2のときジャンプ大K(450)以外の全ての通常技がのけぞり1Fとなり、実質当てたら最後になる。そのため、AI設定のジャンプコンボなどは〆がレガーレ(1400)になっている。逆に450は普通に当たるわけだが、450は強制ダウンの上、普通にJCすれば加速度の関係で昇りになるので硬直のまま空中を飛ぶことになり、やはり隙だらけになる。どうしても当てるなら696でJC→空中ダッシュして450を当てるのが隙は少ない。そこまでする意味があまりないが。

 また空中でもJCできるので、これがマミさんの空中コンボの生命線となる。デフォルトだと空中コンボは、

 [J小P→J小K→J中P]→JC→[J小K→J中P→J中K→J大K] を主に振っている。J大Pは空中の相手にダウンを誘発するものの判定が下に強いので、コンボを当てるたびにマミさんは下に慣性がかかる一方で相手は上に慣性がかかるので、J大Kでなければ相手に引っかからない。空中通常技が何か当たったものの次が届かない場合なども、JCを真上・後ろにして仕切り直しが出来る。

 またmovehitを返した時にJCできるという性質上、相手が通常技をブロッキング・チャンスメイクしたときにもJCは可能。なので処理的には、自分は攻撃を当てたけど相手が自分ののけぞりを特殊動作でなかったことにしている という感じなので、通常技をミラッジオでキャンセルするより474でJC空中バックダッシュして逃げた方が安全な場合もある。(ブロッキング→超必とかされたら逃げる暇はないかもしれないが)


◎ハイジャンプ [60,61]

 通常ジャンプ、ジャンプキャンセル、2段ジャンプ、空中ダッシュ、空中バックダッシュと空中での機動力はとにかく高性能マミさん。そして地上で出せないとはいえ300くらい余裕で移動するハイジャンプもあるので、攻撃されそうで困った時にはとりあえずハイジャンプ→空中ダッシュとかで逃げることで対応できる。

 そしてマミさんの基本性能であるジャンプ加速性能がY軸-9.7X軸前3.8/後-3.6で、この性能を強化する形でのハイジャンプになる。具体的にはX軸1.8倍Y軸1.4倍(直上は1.5倍)なので、前ハイジャンプはX6.84Y-13.58移動し、直上だとY-14.55移動ということになる。これらはYaccelで減衰されるのでずっと-13.58/F進むわけではないが、それでもelqueを追いかけて飛び回れるくらいには高速長距離移動ができる。

 これによって、マミさんには対空技はないが上に判定の強いジャンプ中K(8F)やジャンプ大K(11F)をのぼりで出すことで対空処理できる。ジャンプ中Kは前面の判定強めだが喰らい判定も近い一方、強制ダウンがないので当たればジャンプキャンセルしてエリアルコンボに移行できる。ジャンプ大Kは攻撃判定と喰らい判定の距離が前面25上部60離れているので攻撃判定を比較的安全に押しつけることができるが、強制ダウンするので追撃が何もない。

 どちらも無敵時間なんてない通常技なので、攻撃モーション中の相手に突っ込んだり釣られて必殺技とか出されたら大人しくやられるしかないけども。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MUGEN小話 3 playsndでもっと大きい音にしたいときのあれこれ

2020-01-12 19:00:13 | MUGEN

 本当はmugen@wiki chaosで見て網羅できれば一番良いが、1.0以降の記述についての解説が少ないので、stageのBGM音量調整が昔はbgvolumeで良かったけど今はbgmvolumeじゃないと機能しない、とか、キャラクターの音調整もvolumeじゃなくてvolumescaleだとか、どっかのbbsに書いてあるのを検証して正誤判断しないといけないのがしんどい。

 ちなみにキャラクターの声とか、技しゃべってるときに殴られたら音を止めるようにchannel=0をつけたりするが、これを書くと音が埋もれて普通の時にも音量が小さくなってしまう。手っ取り早いのはchannel=0を消して同じステートをコピペするもの。ただ、これにすると叩かれたりKOされた時も技名を叫んでたりして(要は音が止まらないので)滑稽なので、movetype=hのときにstopsndになるよう記述すれば喰らい状態の時とそうでない時で音声をコントロールできる。ただ貴重なvarを1枠使ってしまうので、そこはそういうものと断念するか、helperは別枠でvarを保存できるのでishelperをtriggerに入れて判断させてもいい。ただ私はそのやり方を知らない。

;殴られたら音止めます
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=2
ignorehitpause=1
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=3
ignorehitpause=1
[state -3, ototomemas]
type=stopsnd
trigger1=movetype=h
channel=4
ignorehitpause=1

;パゼストバイフェニックス
;降下
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
channel=2
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
channel=3
[state -3, voice pb-phoenix raid]
type=playsnd
triggerall=time=1
trigger1=stateno=2110
value=s12101,var(0)
volume=44
volumescale=44
channel=4

 ↑みたいにすれば、喰らったらchannel=2~4の音を止めるようにできる。

 playsndを重ね掛けしているのは、所詮一個のplaysndで音量最大にしても効果音で埋もれるから。全く同じフレームで同じ音を出せば音が大きくなるので、記述が苦にならないならこのやり方が一番確実。ただvalueのs0000,floor(random/250)みたいにランダム要素を入れると各ステコンごとに計算するのでわやになってしまう。ステコンvarrandomとか、nullでvar(--):=floor(random/250) || 1みたいにランダムしたvarを代入するとかで同じvalueになるようにする必要がある。

 めんどくさいやり方として、sndファイルの音量を直接上げるという方法もあるが、これは本当に音を上げるだけなので音割れのケアなんかしてくれない。またモノラル*2でステレオにすれば音量も上がるが、これはsndを直接いじってできることではないので、「wavで出力」したものを編集し再取り込みしナンバリングしてようやく、というところになる。このやり方でコンプレッサーで中音域をつり上げて圧縮することで音量アップできるので、音量アップ+モノラルのステレオ化をやるならwavで出力したほうがいい。

 でも面倒でしょ。playsnd重ね掛けした方が楽だよ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MUGEN小話 2 自分と相手の高さと攻撃判定の相関

2020-01-12 18:58:43 | MUGEN

 p2bodydist yがp2dist yと変わらないとかpos yとはじゃあどう違うのか、とか、空中にいる相手と攻撃判定の相関のはかり方がわからない。これがまた自分が空中に居る時と自分が地上にいる時でいろいろ変わってよくわからない。かと言ってすごい拾うの上手なAIの記述を見ても変数代入・ヘルパーとんでもなくててんで理解できない。
 これで合ってれば良いなあという期待を込めた記述として記述のひな形を書き残す。

 まず大前提として、p2bodydist y=p2dist y。bodydist xの場合キャラ幅を含めているのでdist xと内容が変わるがdist yに関しては一緒。
 さらに、敵がのけぞり中かそうでないかで変わるvel x、vel y、yaccel。
 enemy(var(xx)),movetype!=h(敵のけぞり中じゃない)のときは、enemy(var(xx)),vel x、enemy(var(xx)),vel y、enemy(var(xx)),const(movement.yaccel)
 enemy(var(xx)),movetype=h(敵のけぞり中)のときは、enemy(var(xx)),gethitvar(xvel)、enemy(var(xx)),gethitvar(yvel)、enemy(var(xx)),gethitvar(yaccel)
 これをtriggerで記入する時に注意しないといけない。それか変数にして別に記入しておくか。


[地対空] 攻撃発生10F・判定Y座標上限-89の場合
   p2dist y+enemy(var(xx)),vel y*5 >= -89*const(size.yscale)

 -89というのは攻撃判定のy座標の上限。相手の浮いてる時間を厳密にenemy,const(movement.Yaccel)使うのを面倒くさがって10F目に攻撃判定が出るので、さすがに等速で浮かないでしょということでvel y*5(5F分)くらいにしてみる。

 蜂百合氏のAIでは、↑のenemy(var(xx),vel y*5にあたる部分をfvar(11)として、ステコンの中で代入させている。
Triggerall =1 || fvar(11) := Ifelse( enemy(var(20)),MoveType!=H ,enemy(var(20)),const(Movement.Yaccel) ,playerid(var(8)),GetHitVar(Yaccel) )
Triggerall =1 || fvar(11) := Floor(( enemy(var(20)),Vel Y * fvar(10) ) + ( Fvar(11)*( (fvar(10)*(fvar(10)-1))/2) ))
Triggerall =1 || fvar(11) := fvar(11) * (enemy(var(20)),StateType = A)
 がトリガーに入っていて直に代入されている。
 このfvar(10)というのは攻撃発生フレームで、↑の例を使えば10ということになる。で、この記述のすごいところは、相手が空中(statetype=a)のときは1が代入されるのでそのままfvar(11)としてこの行より上の部分で計算された値が代入されるが、相手が空中でなかったら0、つまりfvar(11)自体を計算しない。
 fvar(10)を代入してfvar(11)を出しているので、たぶん落下加速度を勘案した正確なy座標を出せるのだろうと思う。
 1||としているのは、うっかり計算結果が0になってしまったらステコン自体読み込んでくれないので、とりま進めていく為にnull代入では必要な工程。


[空対地] 攻撃発生10F・判定Y座標上限-89の場合
  p2dist y+ifelse(enemy(var(xx)),statetype=S ,enemy(var(xx)),Const(Size.head.pos.Y) ,enemy(var(xx)),Const(Size.Mid.Pos.Y)
)>= -82*const(size.yscale)+vel y*5

 -82というのは攻撃判定のy座標の上限。ifelseを使って、相手が立ちならhead.posしゃがみならmid.posを参照するようにY座標割り出す記述を蜂百合氏のAIからぱくる。適当に、10F目に攻撃判定が出るのでvel y*5(5F分)―さすがに等速で浮かないでしょということで*10ではなく*5にしてみる。
 立ち屈みの判別がめんどくさい・相手を飛び越える高さでざっくり決めるということなら+enemy(var(xx)),const(size.head.pos.y)などを-enemy(var(XX)),const(height)にすればいいかもしれない。いずれにしても相手の座標を引いた結果攻撃判定の座標になるように設定。


[空対空] p2dist y+0.5*const(movement.yaccel)*16+(vel y+0.5*enemy(var(20)),vel y)*4 >= (-61-8)*const(size.yscale)+const(size.height)

 OG子 OGヲ氏のジャンプふっとばしの記述を丸パクして、helperで動作全管理してるキャラからのなのでroot,とついてる部分を全部削除。4F目に攻撃判定が出るので4*4の*16をmovement.yaccelに掛けて、自分の空中での移動速度vel yと相手の空中での移動速度enemy,vel yを4F分掛ける。丸パクなので0.5をどうして掛けているか分からなかったが、要は1+2+3+4=(4*(4+1))/2であり、いちいちmovement.yaccelのシグマを足して長い式にしなくても2乗÷2で同じ値を求められるのだ。攻撃判定はY軸から見れば最大も最小もマイナスなのでキャラ高さのsize.heightを足して調節。
 (-61-8)の-8は、このステート攻撃判定前にanimelemno(xx)=zzでvelsetが入っていてそこから先はY座標が動かないから。攻撃判定が出るまでvelsetがなければ別に引く必要はない。velsetが有る場合は、掛けるフレーム数をanimelemno(xx)=zzまでのものにして、「それ以降から攻撃判定前までのフレーム数*velsetで指定された移動速度」を別途に引いている。-8はこの場合velset y=4で判定まで2Fだったため。

 これで想定どおり動くかはわからない。だからAI制作は大変だ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MUGEN小話 1 のけぞり時間計算とenemy(var(--))の使い方とブロッキングされた時の対応

2019-10-19 00:40:13 | MUGEN

 他人の記述をぱくったことを利用して書き残す。

 なお神キャラとかつくれる人みたいに当たり前にビット演算とかできないので、そこまで専門的なものを要求されても困るし、helperに監視とか高度なテクニックもないのでそこを期待されても困る。


 「movetype=h」は”喰らい状態ならなんでも”なのでガード状態も含まれる。普通は「stateno=xxxx && movehit」とかと組み合わせて使う(movecontact は当たってればガードでも1なのでコンボ繋げたい記述に入れるもんじゃない)が、それ以外にも「enemy(var(xx)),stateno!=[120,155]」を入れておけばガード状態の相手に振らない。

 「movetype=i」は普通”ニュートラル状態”のことを指すが、当て身の始動モーションもmovetype=iになってたりするので、「movetype=i && enemy(var(xx)),stateno<120」とかにしておけば一応純粋なニュートラル状態になる。だからといって技を出せばいいわけでもない(後出しすればいいから)。

 movetype=hはのけぞってれば対象になるので相手が投げられているときもmovetype=hである。タッグ戦で相方が敵を投げてるとかだと投げ中になんか事故ったら(投げてる最中に敵が殴られて外れたら次に正常に移行しないのでそこで止まってしまう)処理が大変なので、普通は自分と敵を無敵にする。なので敵がのけぞり状態だと思って技を振るものの無敵なので当たらない、というゲージの無駄遣いをすることが結構ある。

 そういうわけで打撃・飛び道具でのけぞってるという普通ののけぞり状態は、     enemy(var(xx)),gethitvar(hittime)+enemy(var(xx)),gethitvar(hitshaketime)+2>0

を入れておけば判断してくれる。これはのけぞり時間をそのまま出すので、0の部分を技の〇〇フレームのフレーム数として、たとえば14Fの技を振る際にこれが>14なら振っていい、というトリガーにしておけばいい。ただ絶対正しいわけではないらしい。とはいえ他に判断のしようがないのでこれを指標にすればかなり正確になる。タッグ戦とかで範囲の広い飛び道具とか当たってても黙ってみてるだけだったりしなくていい。黙ってみてる方が(乱入してコンボ切ってしまうことがあるので)良い時もあるが。

 上のenemy(var(xx))は、enemynearではKOしてるのも近くだからと反応したりするらしいので、numenemyを使ってvarsetすることで対応する。普通はp2statenoとかp2bodydistとかがenemyとかenemynearより生死判定含めて便利なものの、タッグだったりplayer判定のhelperとか居るとその辺わちゃるので、どっちも理解して使えた方が良い。

;■敵のインデックスを取得 enemy(var(20))
[State -1, Get Enemy Idx]
type = null
; 敵の数が2未満→enemy(0)
trigger1 = numenemy<2
trigger1 = var(20):=0 || 1
; 敵の数が2以上 近くの敵≠敵一人目→enemy(1)
trigger2 = numenemy>=2
trigger2 = enemynear(var(20)),ID !=enemy(var(20)),ID
trigger2 = var(20):=1
; 敵の数が2以上 敵KO→0なら1 / 1なら0
trigger3 = numenemy>=2
trigger3 = !enemy(var(20)),alive
trigger3 = var(20):=!Var(20)
ignorehitpause = 1


 本場のブロッキングやチャンスメイクがどういうからくりかは分からないが、mugenでこれを再現した場合hitoverrideを使って敵の攻撃movehitだけどのけぞりじゃないモーションに変えて対応しているので、当てた側はmovehit=1になる。つまり当たったと思って普通にコンボをつないだら実は相手はブロっててのけぞってません、反確。…ということになる。

 なのでstateno=xxx && movehitで終わりにしないで、たとえばブロッキングとか特殊動作はコモンステートじゃないからstatenoが200より大きいだろうということでenemy(var(xx)),stateno>200とかを書き加えたり、のけぞってないのでmovetype=hとか入れてのけぞってたら今の技を振る、とか思いつく限り記述を加えた方が正確に動いてくれる。↑で書いたgethitvar(hittime)と(hitshaketime)返したかもあれば便利。検証は大変だけども。


 ↑のを踏まえて技のステートを書くなら、例えば

;■しゃがみ中パンチ 4F
[state -1, crouching strong]
type = selfstate changeでいい
value = 310
triggerall = var(53) = 0 var(53)→AIレベル
triggerall = fvar(12):=4 変数にenemy(var(20)),gethitvar(hittime)...を代入
triggerall = var(50) && !var(59) && roundstate = 2 && alive && numenemy
triggerall = numenemy=1 || (numenemy>1 && (!enemynear(1),numproj || enemynear(1),hitdefattr!=sca,ha,hp)) 
triggerall = statetype=s || statetype=c
triggerall = ctrl || stateno=11 || stateno=21 || stateno=101
triggerall = p2statetype!=l 「敵ダウンじゃない」をtriggerallにしておく
triggerall = p2statetype!=a || enemy(var(20)),pos y-fvar(11)<0
triggerall = fvar(7)+fvar(8)*4 = [15*const(size.xscale)-enemy(var(20)),const(size.ground.front) ,92*const(size.xscale)]
; レガーレ90Fまでアトワズカ…
trigger1 = p2stateno=1490 && enemy(var(20)),time=[80,88]
trigger1 = random <= 50*var(50) ;150
; 立ち/空中攻撃にさしこみ
trigger2 = p2statetype!=c || random>765
trigger2 = fvar(7)+fvar(8)*4 > 54*const(size.xscale)
trigger2 = p2statetype!=a || p2dist y+fvar(11) = [-46*const(size.yscale) ,-32*const(size.yscale)]
trigger2 = p2movetype=a
trigger2 = enemy(var(20)),hitdefattr=s,na,np || (enemy(var(20)),hitdefattr=s,sa,sp && facing=enemy(var(20)),facing) || enemy(var(20)),animtime=[-5,-3]
trigger2 = random/var(50) < 34+life*.034
; 敵ニュートラル 超反応反撃とかあったら嫌なんですけど
trigger3 = p2statetype!=a || p2dist y+fvar(11)=[-46*const(size.yscale),-32*const(size.yscale)]
trigger3 = p2movetype=i
trigger3 = (p2stateno<120 && random>500) || ((p2stateno>199 || !enemy(var(20)),ctrl) && enemy(var(20)),animtime=[-5,-3])
trigger3 = random <= 83*var(50) ;150
; 発生4F 走って立ち小K>のけぞり時間
trigger4 = p2statetype!=a || p2dist y+fvar(11)=[-46*const(size.yscale),-32*const(size.yscale)]
trigger4 = p2movetype=h && p2stateno!=[120,155]
trigger4 = enemy(var(20)),gethitvar(hittime)+enemy(var(20)),gethitvar(hitshaketime)+2>3
trigger4 = (fvar(7)-66)/const(velocity.run.fwd.x)+4 > enemy(var(20)),gethitvar(hittime)+enemy(var(20)),gethitvar(hitshaketime)+2
trigger4 = (var(28)>1 && power>4000) || random<400+floor( (lifemax-life)*.34+(enemy(var(20)),const(data.life)-p2life)*.34 )
trigger4 = random<150*var(50)
; PUNISHMENT 立ち小K撃てない距離
trigger5 = fvar(7)+fvar(8)*4 >= 66*const(size.xscale)
trigger5 = p2statetype!=a || p2dist y+fvar(11)=[-46*const(size.yscale),-32*const(size.yscale)]
trigger5 = !enemy(var(20)),ctrl
trigger5 = p2movetype=a && !enemy(var(20)),hitdefattr
trigger5 = enemy(var(20)),animtime<-3
trigger5 = random <= 91*var(50)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

おつかい氏のマミさん 4 ちょっとリスクのある通常技のレビュー

2019-10-02 18:52:17 | MUGEN

 おつかい氏のマミさんについてもうちょっと語っていこうと思う。

 通常技で割と振るのに勇気が要る、振らない方が割と安全な方。


◎立ち中K(240) 発生24F

 まわしかかし落とし。(連続ヒットしないので)中段。

 下段ガードを潰すことが主な用途になるものの、先端をこするようにしても結構近距離になるので昇竜系の反撃行動や投げを見てから振られてしまう。ヴォレーやロンディーネの射撃中のどさくさで振るとしても投げが成立すれば実質無敵状態になってしまうのでリスクが伴う。起き上がりに重ねるようにすれば当たりやすいが、それでもリバサがある相手ならそちらの方が技性能的に勝ってしまう。そしてそういう打撃必殺技(sa)にミラッジオは無力なので出し損になる。

 完璧に死に技というとそうでもなく、当たれば各種大攻撃につながるので220→レガーレや250→テンペスタなどに移行できる。


◎立ち大K(250-251)

 ステップイン250-回し蹴り251。小中攻撃からつながるようなら屈ガード可能、ディレイなら屈ガード不可。

 ディレイ入力で中段攻撃として使えるものの、その頃にはガード硬直もとけて無防備にステップインするところが見えるので迎撃のリスクもある。逆にこのステップインがあることでリーチが100程度まで伸びる(蹴り自体は70くらい)。JCできないが必殺技・超必殺技につなげることができるので、AIのコンボパーツとしてテンペスタやマギアブートの手前動作として利用されている。逆に他のどの必殺技でキャンセルしてもつながらないし隙をさらすことになるので、牽制で振るとしてもメリットが少ない。また空中やられ時間(air.hittime)が5しかないので空中の相手に当たってしまったら何を出してもつながらない。地上の相手に中攻撃が刺さった時に大Pではリーチが足りなそうなときに振る技だが、ゲージが無い場合は無理に振らない方がいい。


◎屈大K(350)

 足払い。下段でダウン誘発。

 攻撃属性がMAFDの数少ないダウン時の相手に当たる技。とはいえヒットしてもテンペスタは当然つながらないので地上ヴォレーかメテオリーテを中か強で出して相手の起き上がりに被せるように設置するしかない。一応マギアブート901から立ち小Kで拾えることも可能だが、拾ったところで屈大Pにつなげても大して浮かないので空中コンボが完走できない。そしてダウンした相手に当たることは当たるがタイミングが際どく、当てた時には自分の硬直より先に相手が起きるので隙を晒してしまうのでそこまで狙いにいけない。下段だがY軸の厚みが屈小Pくらいあるのでタイミング次第で着地狩りを狙えるが、そこまで隙を晒すくらいなら屈中Pで牽制した方が良い。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする