堕落街道まっしぐら。

現在のゲームプレイ状況: アリスギア = ウマ娘 > DMMブラゲ > Crossout >> それ以外

MUGEN++/補足的な何か

手前の記事を見れば分かると思いますが、埋もれてたヘルパー式のアーマー記述テンプレをサルベージして
保管庫に別カテゴリとして投稿しなおしました。
汎用性はあると思ってるので、いつでも活用できる状態にあった方が便利かなーと。
更新による変更点などは該当記事最下部の履歴を参照くだちい。

~ ~ ~

>>そんなヘルパー式アーマー記述で私信
リュートーシサーンですが、見事にアーマーが機能してませんでした。以下原因。

Statedef9000(アーマーヘルパーステート)の某トリガーにて、

trigger1 = Parent,StateNo != 3200 ;大回転撃
trigger1 = Parent,StateNo != 3210
trigger1 = Parent,StateNo != 3220
trigger1 = Parent,StateNo != 240 ;通常4発目最大タメ
trigger1 = Parent,StateNo != [1000,1005] ;空斬
trigger1 = Parent,StateNo != 1200 ;疾風突進時
trigger1 = Parent,StateNo != 1630 ;巨旋風最大タメ時
trigger1 = Parent,StateNo != 1710 ;ラクホウ飛び中
trigger1 = Parent,StateNo != 3000 ;ランゲキ
trigger1 = Parent,StateNo != 3010 ;ランゲキ2
trigger1 = Parent,StateNo != 3300 ;ムソウゲキ
trigger2 = Parent,StateNo != 200 && Parent,AnimElem = 2 ;通常1発目
trigger2 = Parent,StateNo != 210 && Parent,AnimElem = 2 ;通常2発目

間違いは3つあってですね。
まず有効期間を個別指定する場合は != じゃなく = を使わないといけないんですよ。
これだと「ステート200番のアニメが2枚目になったら」という本来の目的が満たされていません。
下から2行目は

trigger2 = Parent,StateNo = 200 && Parent,AnimElem = 2 ;通常1発目

が正解ですね。
んでその下も同様ですが、こっちはtrigger2じゃなくtrigger3で書かないと駄目なんですよ。
「ステート200番のアニメが2枚目になった時」と
「ステート210番のアニメが2枚目になった時」は同時には満たせませんよね。
3つ目は該当ステート全体版のトリガーがありません。具体的には

trigger1 = Parent,StateNo != 200 ;通常1(全体)
trigger1 = Parent,StateNo != 210 ;通常2(全体)

この2行です。これがないと他の終了条件を満たしてしまうのでアーマー化した直後に効果終了します。

~ ~ ~

ここの(DestroySelfの)トリガーの分け方ですが、分類としては2種類なんですね。

1つ目はアーマーが有効にならない動作
アーマー効果のある動作が終わったのにまだヘルパーが残っていたらずっとアーマー状態に
なってしまうので、ここで「アーマーが有効じゃない動作」を!=で指定するんですよ。
アーマーじゃない動作を列挙するよりアーマーが有効な動作を列挙する方が楽ですからね。
要はノットイコールを使った消去法です。
これを書き忘れるとどうなるかっていうと、アーマー状態が即時終了します。
つまりアーマー化した直後にアーマー効果が終了します。
言い換えると「ここに書いたステート中はアーマーは切れません」って宣言してるわけですね。
それがtrigger1に列挙された子たちの正体です。

2つ目はアーマーを意図的に終了させるタイミング
動作の途中でアーマーが切れるようにしたい時はこの分類のトリガーを使います。
これは必ず個別のトリガーとして扱ってください(すでに使われているtriggerXと同じ条件値にしない)。
これを間違えるとアーマー状態が終了しなくなります。
言い直すと「ここに書いたタイミングでアーマーを終了します」って宣言してるわけです。


ホントはこんな補足記事を書いてる時点で汎用記述として負けなんですけどねー。
説明不足が招いた事態なので修正案でも載せておきます。
記述全体としてもちょっと更新したので追加部分もコピペしといてください。
2重被弾の頻度が減ると思います。
・・・減るとはいえ、長すぎる無敵もどうなんだろうね。
原案者準拠でこうしてみたけど、正直10Fは長い気がする。
アーマー中に連続ヒットする攻撃を複数発受けることだってあるわけだし、
1発受けたので被弾時の無敵適用ーってやってたら連続ヒットする数も減りそうな気がする。
かといって短いと貫通性のある飛び道具をアーマー受けした時とか2重被弾しやすくなるし。
難しいよねぇ・・・って思ったけど無敵なのは本体だけで、アーマーヘルパーは無敵じゃないから
普通に連続ヒットする攻撃は全部当たってダメージになるのか。アーマーは有効のままで。

無敵時間延長を+5Fに変更、これでも対打撃なら十分ぽい。飛び道具は貫通したら半分諦める。


[State 9000, 0]; キャラがアーマーステートを過ぎたら消滅
type = DestroySelf
trigger1 = Parent,StateNo != 3200 ;大回転撃
trigger1 = Parent,StateNo != 3210
trigger1 = Parent,StateNo != 3220
trigger1 = Parent,StateNo != 240 ;通常4発目最大タメ
trigger1 = Parent,StateNo != [1000,1005] ;空斬
trigger1 = Parent,StateNo != 1200 ;疾風突進時
trigger1 = Parent,StateNo != 1630 ;巨旋風最大タメ時
trigger1 = Parent,StateNo != 1710 ;ラクホウ飛び中
trigger1 = Parent,StateNo != 3000 ;ランゲキ
trigger1 = Parent,StateNo != 3010 ;ランゲキ2
trigger1 = Parent,StateNo != 3300 ;ムソウゲキ
trigger1 = Parent,StateNo != 200 ;通常1(全体)
trigger1 = Parent,StateNo != 210 ;通常2(全体)
trigger2 = Parent,StateNo = 200 && Parent,AnimElem = 2 ;通常1のアニメ2枚目(個別)
trigger3 = Parent,StateNo = 210 && Parent,AnimElem = 2 ;通常2のアニメ2枚目(個別)

~ ~ ~

別件でもうひとつ。リーチの長い攻撃ってguarddist満たしてます?
AIのガードトリガーにInGuardDistを使っているにも関わらず、リュー(ryの攻撃が
当たるような位置でもブンブン攻撃を振っていたり走ってきたりする相手キャラを
良く見るので気になりました。内部覗いてないのであくまで推測発言ですが・・・

人操作だといいんですが、AIの場合は攻撃のリーチよりInGuardDistが短い場合は
ガード不能になってしまうんですよね。合間に別の攻撃要素があり、それが結果的に
相手のInGuardDistを満たしているなら間接的にガードできるんですが・・・

一応私はMHSやクロスモアあたりの長リーチ攻撃にguard.distを設定してみました
・・・が、距離が不十分ぽいので値を伸ばした上で再度更新予定→18:55更新)。
特に画面端同士でも攻撃があたる乱撃・無双撃あたりはガード距離を長くした方がいいかもしれません。
ウチのガンナーズは相手が超必動作中の時は余計な攻撃を振らずにガード専念するんですが、
画面端でAIスピ相手に乱撃を出したら何もせず立っているだけでガードしませんでしたね。

まぁ設置系など長時間画面に残る物のガード距離が長すぎるとガード一辺倒になって
相手が攻撃しない状況が生まれたりするんですけどね。某聖帝サウザーあたりがいい例。




もひとつ発見。
無双の相手が埋まる不具合ですが、救済措置が本来の箇所に刺さってませんね。
相手側ステート3303番にSelfStateがないので、攻撃が当たらなかった場合は
そのまま地底へレッツゴーしてしまいます。
trigger1 = Pos Y > 0 && Vel Y > 0 あたりをトリガーにSelfState記述を作成することをお勧めします。
5100番あたりに飛ばすのが妥当かしら。


++
個人で弄ってみたところ、cns設定のデフォルトguard.distは220あたりがよさそうでした。
(200だと若干短い印象、220以降は未検証)
そのうえで乱撃の全てのHitdefと、無双撃フィニッシュのHitdefにguard.dist = 320を追加。
これで以前よりAIがガードする場面が増えた感じです。参考までに。

別件で・・・他人のAI記述に口を出すのも違う気がしますが、
空斬の攻撃ステート移行記述(1000番内のchangestate部分)にもう1つ、
時間経過なりのトリガーを追加した方がいいかもしれません。
現状だとガード体制を取っている相手を目の前にした時に溜めた状態のまま固まってしまいます。
接触していないのでMoveType=Hでもなく、AnimTime=-9も満たされないため)
私は空斬のクールが終わるTime>180(とAIトリガーのVar(59))を追加して応急処置をしていますねぇ。


アーマー記述諸々を直してみたリュートーシサーンですが、通常にアーマー判定が付加されたおかげで
力押し度合いがいい具合に増してますね。
あと無双の掴み部分は見栄えを気にするならkill=0でもいいかも。