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 ハイジャンプの作成


■ バグ・よくあるミス


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


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


019

やられ中にしゃがみ可能

格闘ゲームの中には攻撃が連続でヒットする技があります。

2D格闘ツクールでもそういった技を表現可能なのですが、
1つ問題があってやられ動作中に
キャラが立ち ⇔ しゃがみ など状態を変更することが出来てしまいます。
※現象としては、やられよりもガード時の方が発生しやすいです。

ゲーム内での具体的な現象だと、
本来ヒットするはずだった攻撃がやられ中のしゃがみによって避けられる
といった問題が発生します。

何かの設定ミスだと思うかもしれませんが、普通に処理を組んで発生することから考えると
残念ながらこれは2D格闘ツクールの仕様なのだと思います。

この現象はプレイヤー(特に格闘ゲームに慣れている人)にとってかなり違和感があると思います。
そこで、このページではやられ中に状態変更出来てしまう問題 について
その対処法を説明したいと思います。


現状の確認
まずは問題の発生状況を確認しておきます。
※動作チェックする際はゲームスピードを遅めにしておくと動きを確認しやすいです。

ゲーム開始。
画面右側のキャラが左側のキャラから攻撃を受けています。

現時点で攻撃は2回連続でヒットしておりやられ側は立ちやられ状態となっています。

引き続き攻撃を行いますが、ここでやられ側が下方向に入力すると…

3ヒット目、やられ側はしゃがみやられ状態になります。
この時、やられ側は「しゃがみ中」「しゃがみ」の待機ポーズを取らず
「立ちやられ」 から「しゃがみやられ」へダイレクトに移行します。
※後述する対策では、この状況を処理に利用します。


対策
立ちやられ中に下入力するとしゃがみやられに化ける。
残念ながらこの流れ自体は止めることが出来ません。

そこで、ここでは
しゃがみやられに入ってから再び立ちやられ動作へ矯正する
という方法をとります。

具体的には
各種待機ポーズ先頭にてキャラの状態(立ち/空中/しゃがみ)を変数に記録、
やられリアクションが発生した時は
変数の値を基準にしてそのリアクションが正しいかどうかを判定、
間違っている場合はキャラの状態に合った動作へ移行します。

処理の流れをイメージにすると以下のような感じになります。

ここから先では、実際にスクリプトの組み方について説明していきたいと思います。


スクリプトの作成
まずはキャラの状態を判定するルールについて確認しておきます。
今回の処理では判定用にキャラ変数を1つ使います。
どの番号のキャラ変数を使うか決めておいてください。
※例ではキャラ変数Kを使用します。

次に、キャラの状態を表わす変数値を決めます。
ここでは以下のようなルールにしました。



状態変数のセット
キャラの状態を決める動作にて状態変数に値を代入します。

「通常立ち」 のスクリプト先頭に変数処理を追加、
キャラは立ち状態なので値0を代入します。


同様にして「しゃがみ」 状態にも処理を追加しましょう。
こちらの場合は変数に値2を代入します。

MEMO

どのスクリプトで状態変数をセットするか
例では話をわかりやすくするため「通常立ち」「しゃがみ」
スクリプトのみを対象として処理を追加しましたが、これら以外にも
ジャンプや空中落下、着地など主に移動・待機系の動作には
状態変数の処理を置いておいた方が良いです。

また、必殺技の中でキャラの状態を変えるものがある場合は
これについて考えておくべきでしょう。
( 例えば、跳び上がって攻撃する必殺技など )


リアクション先頭に状態判定の処理を追加
上で設定した変数を基準とした判定処理を各種リアクションの先頭に置いていきます。


しゃがみスクリプト先頭に変数分岐を追加しました。
本当は立ち状態なのに下方向入力によってしゃがみやられになっている
という場合はこの判定にひっかかって「立ちやられ」 スクリプトへ移動します。


同様にして「立ちやられ」のスクリプトや、その他
立ち/しゃがみ の化けが発生している動作にも処理を追加しておきましょう。


以上の処理が済んだら、リアクション化け対策は準備完了です。


処理を確認
再びテストプレーを実行して処理を確認します。

画面右側のキャラが左側のキャラから攻撃を受けています。

この時、やられ側は立ちやられ状態となっています。

引き続き攻撃が発生、ここでやられ側は下方向に入力しますが

やられ側は引き続き、立ちやられ状態に入ります。

------------------------------------------------------------
正確には「しゃがみやられ」 に入って
すぐに「立ちやられ」 に変化しているのですが
グラフィック表示する前に変数分岐で処理が移動しているため
ここではそのまま立ちやられ動作が連続しているように見えます。


「しゃがみ」 スクリプト先頭では、変数代入によって
「キャラ = しゃがみ状態」の処理が行われるのですが
最初の方でテストでプレイした結果から
「立ちやられ」 ⇒ 「しゃがみやられ」 の間に
「しゃがみ」 動作が入ることは有りません。

 もし、格闘ツクールの仕様でやられ中に
 「しゃがみ」動作を通るようだと今回のテクニックは使えません。
 「立ちやられ」⇒「しゃがみ」⇒「しゃがみやられ」の流れでは
 「しゃがみ」の時点で変数も「キャラ=しゃがみ状態」となるので
 「しゃがみやられ」先頭、変数分岐での矯正が効かなくなります。

立ちやられの動作確認が済んだら
同様にして他のリアクション系動作についても処理を確認、
問題がある場合は再び変数処理を追加してください。


補足説明
ゲーム内で使用しているリアクションの数が多い場合、
リアクション化け対策も大変だと思います。

そこで、ここでは上で説明した処理を組んでも問題が解決しない場合の
追加の対策・調整のコツを説明しておきたいと思います。

立ちやられ⇔しゃがみやられのリアクション化けを
防ぐ処理を組んだのに、たまに防ぎきれずに化けが発生してしまう。
この場合の問題点は変数代入の効きすぎ が考えられます。

再び処理内容の確認になりますが、
リアクション化け対策の処理をきっちり組んでいるのであれば
「変数側でキャラの状態 = しゃがみ」 となっていない限り
「しゃがみやられ」「立ちやられ」に矯正されます。

「しゃがみやられ」 への化けが発生するということは、
どこかのタイミングで「変数処理:キャラの状態 = しゃがみ」
行われているということなのです。

「立ちやられ」 ⇒ 「しゃがみやられ」 の間に入る動作があるとしたら
「しゃがみ中」「しゃがみ」が考えられます。
テスト時の表示ではこれらのスクリプトを通っていませんでしたが
もしかしたら内部的には処理を通っているのかもしれません。

「しゃがみ」 はともかく「しゃがみ中」先頭に
変数代入を入れている場合はこれを外すと良いかもしれません。

変数代入の抜けによって動作の矯正に失敗する
というパターンは思いつきやすいですが
変数代入の効きすぎによって矯正が行われない
というパターンも有るということを念頭に置いて調整を進めると良いでしょう。

------------------------------------------------------------
処理の勘違いにも注意
もう1つ、作者側の勘違いという可能性も忘れないでください。
上で説明した対策では、「通常立ち」「しゃがみ」 の先頭に変数代入の処理を入れました。
「しゃがみやられ」 の先頭を通れば、変数処理でキャラの状態はしゃがみと記録されます。
この状態で攻撃を受けた場合、当然ながらキャラは「しゃがみやられ」 となります。

気をつけたいのが
「立ちやられ」 ⇒ 「しゃがみやられ」 のリアクション化けに見せかけて、
実は「立ちやられ」 ⇒ 「しゃがみ」 ⇒ 「しゃがみやられ」 という
通常の流れを実行している場合。

これはバグではなく単なる勘違いです。
コンボ継続の条件もそうなのですが、「しゃがみ」 など待機の動作が一瞬でも表示されると
キャラの状態は切り替わるので、処理的には何も問題ありません。
テストプレーする際は多少ゲームスピードを落として
確認するとこういった見間違いを防ぐことが出来ます。


ページ先頭でも述べた通り、立ち・しゃがみでのりアクション化けは
ゲームをプレイする上でかなり大きい問題となります。
テストプレーを繰り返してしっかり調整するようにしてください。

また、ここでは立ち ⇔ しゃがみでの化け を対象として説明しましたが
より深刻な問題として地上 ⇔ 空中でのリアクション化け についても
今回のテクニックでかなり防げるのではないかと思います。

 こちらの問題はやられ側の入力ではなく、恐らく
 格闘ツクールにおけるキャラの地上/空中判定が曖昧なのが原因だと思われます。



以上、長くなりましたがやられ中に状態変更出来る問題に関する説明を終えます。
なお、今回説明した内容について気になる点や疑問点などがあれば
掲示板 にて質問を受け付けておりますので気軽にお尋ねください。


ページ先頭へもどる

トップページへもどる

inserted by FC2 system