2017年09月13日

【超重要】キャラによって重力が強くかかってしまう現象の原因と対策

MUGENの空中コンボにはキャラによって若干浮き方に違いがあることは
なんとなく多くの人が気づいているかもしれませんが、
その原因についてはあまり知られていないような気がするので記事にします
(既にどこかで記事にされている方がいらっしゃった場合、
そちらの方のブログ等をこちらで引用させていただきます。
とあるスレで言及があったのは見つかりましたが…)。

※追記
既に記事にしてくださっている方がいらっしゃいました。
しもつきさんのブログです。
http://simotukinew.blog135.fc2.com/blog-entry-713.html

具体的な内容は続きから。



【浮きの違いが起きる原因】
デフォコモンの空中で吹っ飛ぶ動作は主に次の4つのステートから成り立ってます。
5020番(空中で攻撃を受けて震えている)、
 ↓
5030番(吹っ飛び上昇する)、
 ↓
5035番(吹っ飛びから落ちるまでの移行)、
 ↓
5050番(地面にバウンドするまでの落下)。

5020番は速度0で固定で、5030番になってから動き始め、同時に重力がかかります。
そして一定時間が経過すると次のステートに移っていくのですが、
ステート移行を行う記述の前に重力計算を行う記述があるために、
移行前のステートの重力計算と、移行後のステートの重力計算が
1Fに2回行われてしまう瞬間が存在します。
そしてこのステートの移行が行われるタイミングは
キャラのアニメーションの表示時間によって変動してしまうのです。


そして重力の加算されるタイミングが違うために、
空中で短時間に何度も攻撃を当てるタイプのコンボをしてしまうと
(たとえば浮かせてから小パンを何度も当てる等)、
カンフーマンであれば2重計算が行われる前に攻撃を受けるはずが、
それよりも先に2重計算が行われてしまい重力が強くかかるキャラが存在するわけです
(ちなみにあまりいませんが2重計算のタイミングがカンフーマンより
遅れるために普通より浮いてしまうキャラも存在します)。

なんだこれは…(ヽ´ω`)2重計算対策とかゲーム設計の初歩でしょ…
これに関しては悪いのはキャラ制作者さんではなく、
こんなコモンをデフォルトにしてしまったElecbyteです。
浮きが低くなってしまっているキャラたちのほぼ全てはこのことを知らずに
アニメーションのコマを弄ってしまったのだと思います。
食らいアニメーションの自由度を奪うすごいミスですね…
しかしこれが普及してしまっているので必要な対策を取りましょう。


【具体的な解決方法】
キャラのairファイルをテキストエディタで開きます。
そして"Action 5030"で検索。

[Begin Action 5030]
Clsn2: 2
Clsn2[0] = -21,-88, 5,-61
Clsn2[1] = -8,-66, 16,-38
5030, 0, 0,0, 5

上記はカンフーマンのものです。
5030番ステートはこのアニメの表示が終わったら次のステートへ移動しますので、
このアニメーションの長さはカンフーマンと同じ5にすればOK。
つまり、"5030, 0, 0,0, 5"の一番右の数字が5になっていない場合は
5に書き換えてください(コマが2個以上ある場合は合計が5になるように)。

次に大抵は5030番のすぐ下にある5035番です。無ければ"Action 5035"で検索。

[Begin Action 5035]
Clsn2: 2
Clsn2[0] = -21,-88, 5,-61
Clsn2[1] = -8,-66, 16,-38
5030, 0, 0,0, 4
Clsn2: 2
Clsn2[0] = 19,-39, -5,-66
Clsn2[1] = 2,-57,-26,-83
5030,10, 0,0, 7

同じくカンフーマンのものです。
カンフーマンのものは2コマあってその合計が4+7なので11ですね。
やはりこれもカンフーマンと同じく合計で11にすれば浮きが同じになります。

5035番が存在しないキャラもいます。
MUGENのデフォコモンはそれを想定した作りになっていますが、
その場合もやはり浮きが普通のキャラより低くなりますので、
5030番のアニメを複製して5035と書き換えるなどして11F表示するようにします。

めったにいませんが(というか特定の作者さんを指すことになりかねないのですが)、
5020番ステートで行っているアニメーションの固定化の記述を削除して、
実質的に5030番のアニメーションの表示時間が短くなっているキャラもいます。

[State 5020, 4] ;Freeze anim
type = ChangeAnim
trigger1 = Time > 0
value = anim

この記述が5020番ステートに無かった場合は追加することが必要になるでしょう。

これらの対策を行えばカンフーマンと同じように浮くことができるようになります。
浮きが他のキャラより低いということは有利なことです。
対策を施すことである意味弱体化になるかと感じる方もいるかもしれませんが、
コンボをミスるということは動画的にも見た目があまり良くないということ、
操作をする上ではストレスにもなりかねないということですので、
できればこれらの点に注意して制作していただければと思います。

なおデフォルトコモンの2重計算自体を無くしてしまうことはおすすめできません。
確かにそれがElecbyteが本来想定した浮き方なのですが、
今までたくさんのキャラがデフォルトコモンを想定して
技の浮き方を調整されてきているはずです。
浮きが高くなるために逆に入らなくなるコンボもあると思いますので、
カンフーマンの浮き方に合わせるようにするのが無難だと考えています。

posted by リック at 20:32 | Comment(0) | MUGEN豆知識 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]