DHQの雑記とか

mugen関連でいろいろと

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

キャラ作成上とりあえずやっておいた方がいいこと(必須部分)

格ゲーかそれに近いものをさせたい時にしておいた方がいいこと。
必須部分は、主に相手キャラクターに異常な動作をさせないための記述が中心になります。
単に思いついた順番通りに書いてあるので、重要なことが後の方に書かれていたりします。
ネタが入り次第更新しています。


14/06/02
必須部分と推奨部分に分割

必要なもの
・stupa氏が製作されたいっしょにとれーにんぐ
ADI氏が製作された非公式拡張ファイルを追加し、sffとairを自分(DHQ)が公開している改変物に差し替えたもの。
・icl氏が製作されたDamage Sprite Tester
各種hitdefを吹き飛びベクトルを変化させて実行できる優れもの。
吹き飛びモーションの確認に必須。くらい判定のつけ忘れの確認にも。



大前提.mugenのトレーニングモードは例外処理を確認する時にしか使わない
トレーニングモードはかなり特殊な状況です。
KO時の挙動やゲージ回収量などが全く確認できないので、原則としてvsモードを使用して下さい。

1.CLSN1(airの攻撃判定)の規定にはデフォルト枠を使わない
該当anim中は攻撃判定がhitdefだけで制御されてしまうことになります。
hitdefは一度実行されるとステートが変わるかmovetypeがA以外になるまで出たままで、
変なタイミングで攻撃がヒットすることがあるのでデフォルト枠はお勧めしません。

2.コンボに組み込めない投げのhitdefのトリガーにはp2movetype!=Hを仕込む
hitflagに-を付けただけだと、hitoverでリバーサル行動ができない大多数のキャラクターに対し、
別の攻撃をヒットorガードさせてからの投げが猶予0Fで確定します。

3.ガード硬直を投げられない投げのhitdefのトリガーにはp2stateno!=[150,155]を仕込む
これもhitflagに-を付けただけではガードさせてからの投げが猶予0Fで確定します。

4.完全無敵以外ではnothitbyのvalueにSCAを指定しない
value=SCA,ATやvalue=SCA,APはどちらも完全無敵になります。
無敵の種類によってはnothitbyではなくhitbyを使った方が管理が楽になることも。

5.nothitbyやhitbyのtimeは原則1にする
ここでいうtimeはvalueなどと一緒に並べるもので、トリガーとは異なります。
nothitbyでのtimeはステートが変更された後にも持続するので、
無敵で指定しなかった攻撃を受けた(打撃無敵の状態で飛び道具を受けたなど)場合
5000番台のくらいステートまで無敵が持続してしまいます。
また、全身無敵であってもステートが変更される場合、変更された後にも無敵が持続します。
追加入力はわかりやすい例ですが、忘れがちなのが着地によるchangestate。
色々と考えるぐらいならtimeを1にしてトリガーで毎フレーム延長してやる方が無難。
起き上がり直後の投げ無敵なども、できれば変数管理にして付加した方が安全。

6.くらい判定はplayerpushが無効化されている場合を除き、全てのスプライトに設定する
完全無敵をnothitbyではなくくらい判定を全く設定しないことで再現した場合、
くらい判定が設定されていないフレームではキャラクターの押し出し判定は行われません。
そのため、無敵の持続中に相手をすり抜けることがあります。

7.ステートを奪った相手に、必須スプライト以外のスプライトを含むanimに飛ばしてはいけない
ついやってしまいがちなのがガードに使われているスプライトなど。
意外かもしれませんが、ガード用スプライトは必須スプライトではありません。
150番animに120番台のスプライトを使っていて、150番台のスプライトがsffに登録されていないケースもあります。
特にガードに使われているスプライトについては、kfmに対して使うだけでは気がつかないので要注意。

8.physicsがAのステートを作るときは、いつ52番ステートへのchangestateが発生してもいいようにしておく
physicsがAの時は、キャラクターのconstで定義されたyaccelの値に応じた座標移動が、
そのキャラのステートの処理が終わった後に実行され、そこでposが0以下になると
52番ステートへのchangestateが発生します。
そのため、いつchangestateが発生してもいいようにしておくか、physicsをNにして着地移行を管理する必要があります。

9.ステートやanimは極力使い回さない
問題が生じたときの原因の切り分けが困難になるので、使い回しは避けた方が作業がはかどります。
ただし、全く同じ処理を行うことが明確であり、使い回すこと自体が重要な目的である時はその限りではありません。

10.movetype=Hの時に勝手にwidthを実行してはいけない
ステートを奪われている最中は論外ですが、くらいモーション中に実行するだけでも
本来永久にならないよう調整されている相手側のコンボが永久になるなどの弊害が発生します。
ステートを奪った状態で、相手側ステートで実行する時も注意が必要です。

11.commandのbuffertimeを2以上にしてはいけない
ステートを奪った状態では、ステートを奪われた側はステートを奪った側のcmdを参照します。
ここで、ステートを奪った側がbuffertimeの長いcommandを持っていて、
ステートを奪われた側がそのcommandをステートを成立させた場合、
成立させたコマンドに対応するコマンド(コマンドの内容ではなく、cmdファイルに記述されている順番が同じコマンド)の、
トリガーがbuffertimeの長さだけ成立し続けます。
具体例
I キャラクターRのcmdファイルの上から10番目に、nameがhadouken、コマンドが236x、buffertimeが5のコマンドが記述されている
II キャラクターKのcmdファイルの上から10番目に、nameがtatsumaki、コマンドが214aのコマンドが記述されている
III いまRがKのステートを奪い、Rがステートを返す1F前に、Kが236xを入力してhadouコマンドを成立させたとする
IV ステートを返された後、Kのcnsに記載されているcommand="tatsumaki"が4Fの間成立する
このため、Kを操作している側は、入力した覚えのない必殺技を出すことになります。
また、並び順によってはAI起動用のコマンドが成立し、人操作中にAIが勝手に起動するということも起こります。
buffertimeは必ず1にして、先行入力には変数を使うようにして下さい。

12.ctrlが有効になりうるステートを指定したprevstatenoは信用してはいけない
デフォルトコモンを使用した際にctrlが有効になりうるステート(書き漏らしがあれば随時追加します)
立ち・歩行関係:0、10、11、12、20
ジャンプ関係:40(time=0の時のみ)、50、52
ダッシュ・バクステ関係:100、105、106
ガード関係:120、130、131、132、140、151、153、155
くらいステート:5040
これらのステートは内部処理で頻繁にchangestateが行われるので、
prevstatenoを使うときは変数などとセットで使わないと役に立たないことが多いです。

13.superpauseのオプションにはp2defmul = 1.0を追加しておく
p2defmulを指定しない場合mugenの内部処理で補正がかかりますが、
相手がdefencemulsetを実行しているとそちらの値が適用されるので、
相手依存で極端にダメージが上下することになります。

14.ダメージを無視するのが目的でなければ、被弾後に飛ぶステートに入ってすぐに
movetypeがHでないステートにchangestateをしてはいけない
被弾後に飛ぶステート(5000、5010、5020、5070、150、152、154)に入ったフレームで
time=0でchangestateをかけてると、本来入るはずだったダメージが入らなくなります。
くらい抜けやガーキャンでは特に注意。time>0を仕込めばたいてい回避できます。

15.nameやauthornameに2バイト文字(半角英数字以外の文字)を使用してはいけない
記事を独立させました。

16.起き上がり動作中に1回はnothitbyを実行する
ダウン追い打ちを複数回受けると、内部処理でtime=-1、value=SCA,AA,AP,ATのnothitbyが実行されます。
そのため、ダウンステートからの復帰過程でnothitbyを実行しなかった場合、
起き上がった後も完全無敵が持続してしまいます。
デフォルトの5120番ステートの他、移動起き上がりなどで他のステートを使用している場合、
それら全てでnothitbyを必ず実行しておきましょう。
なお内部処理でのnothitbyを上書きしさえすれば無敵の永続自体は回避できるので、
起き上がり動作中で実行するnothibyのパラメータは必ずしも完全無敵にする必要はありません。

17.ニュートラル、歩き、ガード、くらいモーションの横端をconstのsizeで規定される幅より小さくしてはいけない
投げがスカるなどの不具合が発生するため、上記のモーションのくらい判定の横端が
Ctrl+Cを押した際に表示される黄色の線よりも内側にくるようなことがあってはいけません。
その他の技も、特にそういった特性を持たせるつもりがなければ横幅は持たせましょう。

18.5005~5007番、5015~5017番、5025~5027番animの最後のスプライトの表示時間は-1にしなければならない
これらのanimは地上で被弾してノックバックが始まってから、
hitoverが成立するまでanimの長さに関係なく再生され続けます。
そのため表示時間が-1になっておらず、これらのanimが繰り返し再生されるようになっていた場合、
hittimeが大きめの攻撃を受けると、ヘッドバンキングをすることになりかねません。

19.原則としてくらい判定を押し出し判定の内側に引っ込めてはいけない
単純な話で、攻撃が当たらなくなります。
特にくらいモーションに関しては、格ゲーがしたければ必須と言ってもいい事項。
なお大きく仰け反るタイプの地上くらいモーションでは、足の位置を基準にすると
上半身が大きく後方に下がることがありますが、格ゲーで見た目と判定が食い違うのはよくあることで
むしろ商業格ゲーも含めて、見た目通りの判定は往々にしてあまりいい評価を受けません。
大きく仰け反るくらいモーションでは、見えない位置に判定を付けるか、
足をワープさせることになりますが、体全体を前に持ってくるかのどちらかにするのが必須。

20.common1.cnsに記載されている受身用ステートを除く5000番台ステートのstatetypeを変えてはいけない
ダメージを受けている最中の挙動を変えることになりますので、
イレギュラーな動作を引き起こす原因となります。
なお受身用の5200番と5210番も、特段の事情がない限り変えない方が無難。

21.被弾用ボイスのplaysndには必ず共通のchannelを設定しておく
短時間に多段ヒットする技を受けた場合、自分のボイス同士がオーバーラップするだけでなく、
channelを大量に占有してしまい、相手キャラクターのSEをかき消してしまうことがあります。

22.projectileでp2statenoを使ってステートを奪ってはいけない
本体のステートが奪われた状態でp2statenoを仕込んだprojectileが当たると、
本体のステートではなく、ステートを奪った側のキャラクターのステートに飛ばされます。
確実にバグが発生するので、飛び道具などで相手のステートを奪いたいときは、
必ず飛び道具をhelper化し、helper側でhitdefを実行しp2statenoを使うか、
helperのステートでtargetstateを実行してステートを奪うようにして下さい。

  1. 2014/06/02(月) 21:30:51|
  2. キャラ製作の豆知識
  3. | トラックバック:0
  4. | コメント:1
<<キャラ作成上とりあえずやっておいた方がいいこと(推奨部分) | ホーム | const設定上の注意>>

コメント

モーモーの件について

コメントをいただきましたRKです。
モーモーの改変の件ですが、勿論OKです。
モーモーがどのような改変をされるのかとても
楽しみにしております。
では簡単ですが失礼します。
  1. 2013/05/18(土) 20:09:12 |
  2. URL |
  3. 緑光青ドラ猫RK #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dhq.blog137.fc2.com/tb.php/3-9172c8e6
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

DHQ

Author:DHQ

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
お知らせ (2)
mugenの仕様 (16)
mugenのAI (3)
キャラ製作の豆知識 (31)
動画について (32)

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。