2D格闘ツクール2ndのバグ・よくあるミス

■ チュートリアル


■ コマンド解説


■ テクニック解説
 001 特殊なキャラクターセレクト
 002 画面レイアウト
 003 カラーセレクトの設定
 004 ヒットエフェクトの研究
 005 ヒットエフェクトの描き方
 006 スクリプト一覧のテキスト化
 007 通常立ちの設定
 008 VSで開始位置指定
 009 雛型キャラの作成
 010 INIファイルの内容
 011 変数の大小チェック
 012 当て身投げの作り方
 013 必殺技コマンドの設定
 014 アニメ作成_通常攻撃
 015 ゲームモードによる分岐
 016 変数の一覧を記録
 017 受け身入力の判定
 018 ダウン値による分岐処理
 019 飛び道具の作成
 020 ワープ技の作成
 021 ヒット硬直のコントロール
 022 ステージの地面表現
 023 ヒット数表示の固定
 024 横方向のホーミング攻撃
 025 1P/2Pの判別
 026 ライフ減少アニメ
 027 画面下部の表示内容
 028 ステータス表示の意味
 029 ガードクラッシュの表現
 030 押せないOBJ
 031 アイテムのあるゲーム
 032 復活する技の作成
 033 空ガードの作成
 034 ステージ選択付きキャラセレ
 035 ゲージMAXの表示
 036 固定ダメージを表現する
 037 ラン動作の作成
 038 投げ技によるKOの作成
 039 ボタン溜め押し技の作成
 040 中段攻撃の作り方
 041 製作に役立つツール
 042 カラーセレクトに適した画像
 043 相手によって動作変更
 044 横幅のあるキャラを表現
 045 ラウンド限定の動作
 046 影色の塗りを効率化
 047 モードを切り替えるキャラ
 048 当たり判定設定のコツ
 049 空中ジャンプを表現する
 050 キャラの向きを判別する
 051 途中でKOしない乱舞技
 052 カウンターヒットの作成
 053 OBJの動作を停止
 054 ハイジャンプの作成


■ バグ・よくあるミス


■ テスト時のチェック項目


■ 解説用データ ダウンロード


011

ガードされてもキャンセル可能

格闘ツクールにはキャンセル条件というものがあります。
これは、「キャラが技を出した後にキャンセルできるか?」
をルール決めするための設定になります。

MEMO

キャンセル
キャラが技を出した後に
その戻り動作(隙)を省略して次の技を出すこと。
大抵の場合、キャンセルを行うには条件が必要となります。
( 例としては、攻撃のヒットや必殺ゲージの消費など )

キャンセル条件にはいくつかのパターンが用意されていますが、
その1つが「ヒットしたら」です。
名前のとおり、攻撃判定を持つ技においてよく使う設定ですが
ここで言う「ヒット」という言葉をそのままの意味で捉えると少し問題があります。

今回は、キャンセル条件「ヒットしたら」の意味と
それを踏まえた設定のヒントについて説明しましょう。


キャンセル条件「ヒットしたら」の意味
言葉どおりに解釈するのであれば、
「技の攻撃判定が、相手にヒットしたら」という意味になりますが…
実際はちょっと異なるようで、
「攻撃判定が相手にヒット、もしくはガードされたら」という判定になっています。
( 攻撃が通るかどうかに関係なく、攻撃判定が相手に届いたらOK…という感じです )

以下、実験を通してこの仕様を確認していきます。
⇒ テスト内容を飛ばす場合はこちら


テスト用素材の準備
キャンセル条件の確認用に、次のような攻撃動作を用意しました。
攻撃動作1

大きなハンマーを振り下ろす攻撃です。
攻撃後の隙は非常に大きく、ゆっくりとハンマーを持ち上げます。

以下は上記アニメの元となった画像です。

※なお、ゲーム用BMPは上記画像のリンク先にて提供しております。

エディタに読み込んだ際の動きは以下のような感じになります。

※上記画像は、GIFアニメで動きのタイミングを再現したものです。
ハンマー振り下ろし後の「戻り動作」の部分をよく覚えておいてください。
 今回は「戻り動作が表示されるかどうか?」を基準として
 キャンセル成立の有無を見分けます。


------------------------------------------------------------
もうひとつ、キャンセル後の動作用に技を用意します。

攻撃動作2

大きなハンマーを振り上げる技です。
こちらの内容に大きな意味はありませんが、キャンセルが成立した場合は
攻撃動作1 → 攻撃動作2 という流れで技がつながります。

こちらの動作についても、元となった画像を公開しておきます。

※ゲーム用BMPは画像のリンク先です。

スクリプトの内容はこのような感じです。
( ここでは、攻撃動作2に関する詳細は省略します )

ブロック番号 命令 設定内容
1 ヒットしたら、 レベル0〜255
2 防御枠 やられ・ぶつかり判定
3 防御枠 やられ判定
4 〜 9 画像呼出 攻撃前の動作
10 各種「強ヒット」動作
11 「キャンセル」の項目をON
12 画像呼出 攻撃のポーズ
13 攻撃判定の解除
14 〜 19 画像呼出 攻撃後の動作


キャンセル条件の設定内容に注意してください。
また、攻撃枠命令において キャンセル用の設定をしている点も忘れないでください。


キャンセル条件のテスト
ここからは、実際にテストプレーを通してキャンセル条件の動きを見ていきます。

------------------------------------------------------------
まずは、攻撃動作が空振りした場合です。


キャラの攻撃が空振りしています。
動作中に続けて「攻撃動作2」のコマンドを入力してもキャンセルは成立せず、
「攻撃動作1」の戻りモーションが表示されます。

------------------------------------------------------------
次は、攻撃動作がヒットした場合です。


キャラの攻撃が相手にヒットしています。

この状態で「攻撃動作2」のコマンドを入力すると…

続けて「攻撃動作2」がスタート、キャンセル条件の成立が確認できました。
この時、「攻撃動作1」の戻りモーションは表示が省略されます。

------------------------------------------------------------

今のところ、「ヒットしたら」という言葉どおりのキャンセル判定が行われていますが…
問題となるのは、次のパターンです。

------------------------------------------------------------
攻撃動作がガードされた場合


キャラの攻撃が相手にガードされています。

この状態で「攻撃動作2」のコマンドを入力すると…

攻撃後の隙をキャンセルして「攻撃動作2」がスタートします。
攻撃がガードされたにも関わらず、きっちり動作をキャンセルすることが出来ました。
 威力が低く出が早い「弱攻撃」なら、これも有りですが
 同じ条件で「強攻撃」がキャンセルできるようだと、ゲームバランス的にちょっと考えものです。


------------------------------------------------------------
今回の実験結果から…
キャンセル条件にある「ヒットしたら」とは、
「ヒット/ガードに関係なく相手に当たったら」 と解釈するのが妥当です。


問題点:
上で述べたヒットしたらの解釈について
そういうルールなんだ、と言ってしまえばそれまでですが
ここではゲームバランスを考えて
このルールが原因で発生する問題について説明しておきましょう。

再びテストプレーの画面を見てください。
現在、左側のキャラが攻撃を行っています

一方、右側のキャラは相手の攻撃をガードしました。

この時、双方の立場について考えてみると だいたい以下のようになると思います。
 攻撃側: 攻撃が失敗、相手の反撃を受けるピンチ
 防御側: 防御に成功、相手に反撃するチャンス


しかし、前述したルールについて考えると少し状況が変わってきます。

攻撃側は、 攻撃後の隙をキャンセルして次の攻撃を出しました。

反撃の隙をうかがっていた防御側は、仕方なくガードを続けます。

今回は防御側がガードを続けるという結果になりましたが、場合によっては
反撃を行おうとした防御側が、逆に迎撃されるという可能性もあります。
( 特に、防御側が動きの遅いパワータイプキャラの場合 )

いずれにせよ、ガードの利点が小さく
攻撃側が非常に有利なルールだと言うことがわかるかと思います。

MEMO

キャンセルコンボによる固め
上の説明から、格闘ツクール標準の仕様では
どちらかと言うとスピード重視キャラが有利だということが
感じられたと思います。

これに加えてゲーム内容がコンボ重視な場合
防御側がガードに成功しても、
一連のキャンセルコンボが終わるまで長く反撃し辛い状況が続く…
といったパターンも考えられます。
 ここにキャンセルでガード崩し的な要素を持つ技が入ってくると、
 ちょっとした「固め」と言えるかもしれません。


解決策:
キャンセル条件に関する問題について長々と説明してきましたが、
このあたりは、見た目に目立たないわりに
ゲームのプレイ感覚与える影響p?る影響ですきい気がします。
 特に、「ガードされたらキャンセル不可」というルールに慣れている人にとっては
 どうしても違和感を感じる部分でしょう。


実際にテストプレーしてみて、どうしてもキャンセル条件に違和感がある場合は
以下に示す2種類の方法が「ガードされてもキャンセル可能」のルール変更に
役立つかと思います。

------------------------------------------------------------
1. プレーヤーストップ命令を活用する
非常に強引な方法ですが、最も簡単な方法でもあります。
※もうひとつ、応急処置的な方法であることも付け加えておきます。
 恐らく、格闘ツクールもこの方法でゲームバランスを
 取ることを想定しているのではないかと思います。


スクリプト解説
防御側のガード動作に「プレーヤー:ストップ」命令を入れます。

防御側よりも攻撃側が長くストップするよう設定します。
※両者のストップ時間の差が、反撃の隙となります。

上図について、攻撃側・防御側それぞれに
「プレーヤー:ストップ」による硬直時間が挿入されると考えてください。

テストプレーで確認
攻撃がガードされた後の状況です。

相変わらず攻撃側はキャンセル可能ですが、
この時既に 防御側はガードによる硬直時間が済んでいるため
攻撃側にしっかり反撃を行うことが出来ます。
( プレーヤー:ストップ命令による静止時間で、防御側に反撃のチャンスが出来ました )

弱点
この方法を取った場合の弱点についても載せておきましょう。
以下A〜Bの問題が目に付く場合は、
後述する2の方法をとることをお勧めします。

A. 攻撃側の隙が見た目上に現れにくい
1の方法だと、
攻撃側の隙 = 攻撃側の動作がストップしている間となります。
戻り動作自体は静止時間後にキャンセルできるため、 
攻撃後の隙によって攻撃の重さ・リスクを持たせるといった表現ができません。

B. キャンセルしなかった場合の隙
攻撃側がキャンセルを行わなかった場合は
「静止時間+攻撃動作の戻り時間」が隙となるため、
設定値によってはキャンセル有無による差が非常に大きくなります。

------------------------------------------------------------
2. スクリプトを分ける
1で説明した方法は、手軽にゲームバランスを
調整できる一方でいくつか問題点がありました。

方法としては少々大掛かりになりますが、こちらは
「攻撃がヒットしたかどうか?」によってスクリプトを2つに分岐させる
という考え方になります。
 なお、1では防御側のスクリプトに処理を追加しましたが、
 今回は攻撃側のスクリプトを対象として処理を追加します。


スクリプト解説
具体的なスクリプトを以下に示します。

ブロック番号 命令 設定内容
1 キャンセル不可
2 防御枠 やられ・ぶつかり判定
3 防御枠 やられ判定
4 〜 9 画像呼出 攻撃前の動作
10 攻撃が当たったら 22へ
11 各種「強ヒット」動作
12 「キャンセル」の項目をON
13 画像呼出 攻撃のポーズ
14 攻撃判定の解除
15 〜 20 画像呼出 攻撃後の動作
21  
22 無条件で、レベル0〜255
23 防御枠 やられ・ぶつかり判定
24 防御枠 やられ判定
25 攻撃判定の解除
26 〜 32 画像呼出 攻撃後の動作

表中2種類のカラーで示した範囲がそれぞれ対応する処理となっています。

10 条件分岐:攻撃が当ったら に注目してください。
13の攻撃判定が相手に当たった場合は
キャンセル条件が設定された 22〜32 の処理へ分岐します。
( 当らなかった場合は、キャンセル不可な 13〜20 のルートを続行します )
キャンセル条件の「ヒットしたら」と違い、
こちらは攻撃が相手にヒットすることが判定の条件となっています。
また、スクリプトの飛び先である 22〜 の部分で
各種防御枠・攻撃枠の再設定を行っている点にも注意してください。

テストプレーで確認
攻撃がガードされた状態です。

この時、攻撃側がコマンドを入力してもキャンセルは効きません。

攻撃後の戻りモーションが表示されています。

防御側からすると、見た目にわかりやすい隙になるでしょう。
 これは攻撃モーションの内容にもよりますが
 防御側から見ても、動作停止よりは攻撃後の戻り動作の方が
 相手の隙を判別しやすいかと思います。

 この 「見た目にわかりやすい」 という点もゲームバランスを考える上で
 非常に重要なポイントとなるため、覚えておくと良いでしょう。

やや強引ではありますが、
「ガードされてもキャンセル可能」というルール自体を変えることが出来ました。

当たり前の話ですが、
全ての技・攻撃にこの新ルールを適用する必要はありません。
例えば、「弱攻撃は威力が低いかわりにガードされた後も連発できる」
など、ゲーム全体のバランスを考えてうまくルール決めしてください。

MEMO

ガードされたらキャンセルできない
このルールを各キャラ標準の仕様としておけば、
そのルールから外れた例外的なキャラも表現できるかと思います。

2の方法だと、隙の大きさを攻撃側スクリプトでコントロールしているため
キャラ間の違いを表現するのも難しくありません。
( 対象のキャラのみ、ルール変更のスクリプト追加を行わなければOKです。 )


以上、長くなりましたが
ガードされてもキャンセル可能に関する説明を終えます。
今回の内容について何か質問などありましたら
掲示板 にてお気軽にお尋ねください。


ページ先頭へもどる

トップページへもどる

inserted by FC2 system