DHQの雑記とか

mugen関連でいろいろと

スポンサーサイト

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

デバッグの手順とチェックリスト

デバッグの手順とよくあるミスについて。
自分でもここまで試しきれていないレベルなので参考程度に。

ネタが入り次第、随時更新予定。


基本となるデバッグ


stupa氏が制作されたとれーにんぐにADI氏のパッチを導入し、
vs modeの時間制限を無制限(none)にしておく
mugen本体のデバッグモードをオンにする
ctrl+Cを押して判定を表示させる


cnslintで見つかるエラメを潰す
基本。余計なパラメータがあると邪魔になるので消しておいた方がいいです。


mugen本体で表示されるエラメを潰す
基本その2。エラメ垂れ流しでも戦えますが、
デバッグ作業では邪魔になるので潰しておきます。


全ての動作について、コマ送りを使わず動作を確認
ここで見るのはvelや相手の押し出しなど。自分が画面端を背負った状態、
相手を画面端に押し込んだ状態、密着状態、超遠距離、
背面からなど考えうる全てのシチュエーションで確認
背面はトレモでkfmに立弱Pを連打させれば簡単に再現できます。
カウンター判定になって困るときはkfmの立弱PのmovetypeをIに。
1P側で確認した後は、2P側で起動して同様のテストを行います

5
くらい判定を表示させた状態で、
pauseとscroll rockを使ったコマ送りを使用して判定の形状、軸位置との関係、
動作の長さ、無敵の属性および持続、ガードの成立範囲、statetypeなど考えうるすべての要素を確認
被弾モーションの確認はicl氏が制作されたDamageSpriteTesterで。

5
全ての攻撃技について、
ダメージ
発生
硬直差
受身不能時間(fall.recovertimeも厳密に定義するべき)
補正
ヒット数
ゲージ回収量
相手側の吹き飛び挙動
を時間無制限のvs modeで確認。さらに
相手および自分が地上にいるか空中にいるか
打点は高いか低いか
起き上がりに重ねるとどうなるか
最速で出したか限界までディレイをかけたか
ヒット・ガード・スカのすべてについて確認しているか
相打ち時の挙動はどうか
フィニッシュで使用した時はどうか
などを確認。また、逆根性値の確認のためにはとれーにんぐ以外のキャラを殴ることも必要。
ここでもpauseとscroll rockを使ったコマ送りは必須。
相打ちについては、同キャラを起動して
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = command = "x" || enemy,stateno = 200 && teamside = 2
triggerall = command != "holddown" || enemy,stateno = 200 && teamside = 2
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = time > 6
このように、2P側限定でcommandトリガーの代わりに相手のstatenoを参照し、
トレモの自動ジャンプなども併用すれば、これでほとんどの相打ちが簡単に検証できます。

6
とれーにんぐの-3ステートに
[state -3]
type = nothitby
trigger1 = movetype = H
value = SCA,AA,AP,AT
を追加して、全ての技を当てる
くらい判定が極端に小さい相手に攻撃を当てた時や、
タッグ戦で相方に的をかすめ取られた状況の疑似再現。

7
とれーにんぐの-2ステートで、movetype=Hをトリガーにして発生0Fの全画面攻撃判定を出すヘルパーを射出
技の途中で設置飛び道具を受けた時や、タッグ戦で割りこまれた状況の疑似再現。



よくあるミス
cnslintで潰せるものについては触れていません。
エラメは出ないがcnslintでは引っかかる、というものもあります。


airファイル

・1ドットだけ判定が飛び出ているということはないか
クリックミスなどでやってしまいがち。かなり気づきにくいです。

・余計なanimを登録していないか
忘れた頃に番号かぶりなどを起こしてエラーを吐くことに。


cmdファイル

・コマンドに誤りはないか
63214のところを214にしていて、自分が操作しても気づかない、など。
テスト用簡易コマンドの消し忘れもよくあります。~や/の扱いにも注意。

・timeにミスはないか
短すぎる時は気づきますが、長すぎる時は気づきにくくなります。

・buffer.timeに1以外の値がないか
2以上のbuffer.timeはバグの温床。
デフォルト値が定義されているかどうかもチェック対象。

・余計なcommandを登録していないか
忘れた頃にエラーを吐きます。

・同一のcommandに別のnameを当てて複数個登録していないか
これも忘れた頃にエラーの原因に。

・キャンセル条件は正しいか
本来キャンセルできるところができない、というミスには気づきやすいですが、
逆に本来キャンセルできないところができる、というミスには気づきにくいもの。


トリガー

・本当に[,]や不等号でまとめてしまっていいかどうか
200~400まではいいが300で成立されると困る、などということもよくあります。例外処理に注意。


var

・varの番号は合っているか
よくあるミス。var(var(0))など入れ子状になっているとミスが増えます。

・varに代入されている数値は正しいかどうか
15を代入するつもりが156を代入している、など。

・スイッチとして使用されている場合、きちんとリセットできているかどうか
結果的に補正がリセットされないなどのバグの原因に。

・本体とヘルパーの区別を付けられているか
parentvarsetとvarsetの区別は明確に。


その他

・ステコンの名前を間違っていないか
基本的にcnslintで引っかかりますが、
varsetとvaraddを取り違えたりすると引っかかりません。

・physicsの指定は正しいか
AおよびNとそれ以外では決定的に挙動が異なるので注意。
指定を間違えて、専用着地モーションではなく52番ステートに飛んだりしないように。

・movetypeの指定は正しいか
攻撃するときはmovetypeをAに。

・selfstateとchangestateを取り違えていないか
デバッグをするときは相手のステートも確認。

・nothitbyのパラメータは正しいか
よくある勘違い。デバッグでどの属性に対して無敵が付加されているか、しっかりと確認を。

・nothitbyの効果タイミングは正しいか
意図しない挙動の原因になりやすいのでnothitbyのtimeは1に。
持続時間はトリガーや変数で管理した上で、実際に動作させて確認。

・hitdefのgetpower、givepowerは全て書かれているか
0なら0と書くべき。基本的にデフォルト値は信用できません。

・hitpauseが考慮されているか
めったやたらにignorehitpauseを仕込まないように。
なおexplodはデフォルトでignorehitpauseが有効になっています。
また、エフェクトなどのタイミングの調整にあたって攻撃が当たった時しか考慮していないと、
スカった時にボイスが被るなど不自然なことが起きる場合があります。

・奪ったステートをきちんと返しているか
相打ちなどで潰されたときに、奪いっぱなしにならないかどうか。

・ownpalの指定は適切か
なんでもかんでもownpalを仕込むのは困りもの。
かと言って色化けし放題なのも気持ち悪いので、-2ステートに
[state -2 , palfx]
type = palfX
trigger1
add = 64,64,64
time = 1
ignorehitpause = 1
を追加して確認。
なおexplodについては、常時完全無敵で攻撃判定を一切出さないヘルパーから出すようにすると、
パレットを変更されることがなくなるのでownpalが不要になります。
projectileにはownpalは適用されませんが、
ownpalのためだけにhelperを使うことは個人的には賛同しかねます。あくまで個人的に。

・destroyselfの条件は正しいか
destroyselfはそのステートの一番下に置かないとmugenが落ちるケースがあります。

  1. 2012/04/27(金) 23:40:03|
  2. キャラ製作の豆知識
  3. | トラックバック:0
  4. | コメント:0
<<プレイヤー操作動画上げてみました その19 | ホーム | プレイヤー操作動画上げてみました その18>>

コメント

コメントの投稿


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

トラックバック

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

プロフィール

DHQ

Author:DHQ

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

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

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

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

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

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