001 はじめに
002 ゲーム作成
003 各種メニュー確認
004 「キャラクター」作成
005 「ステージ」作成
006 「デモ」作成
007 「テストプレー」
008 「ステージ」編集
009 「キャラクター」編集
010 パレット管理
011 アニメーション
012 「座標移動」
013 重力の設定
014 その他スクリプト
015 「リアクション」
016 ヒットエフェクト
017 スクリプトの並べ方
018 攻撃動作
019 「コマンド入力」
020 攻撃判定
021 やられ判定
022 やられ動作の設定
023 「タイトル画面」作成
024 タイトルカーソルの表示
025 「キャラクターセレクト」
026 各種インターフェイス
027 ラウンド関連の表示
028 CPUの動作指定
029 「ストーリー」の作成
030 ヒット数の表示
031 投げ技の作成
032 ゲージ消費技の作成
033 ステージの組み方
034 デモシーンの組み方
035 格闘ツクールの仕様
■ コマンド解説
001 画像呼出
002 座標移動
003 防御枠
004 攻撃枠
005 リアクション
006 サウンド
007 キャンセル条件
008 色変更
009 オブジェクト発生
010 変数による分岐
011 条件分岐:技中有効
012 条件分岐:基本分岐
013 条件分岐:ランダム分岐
014 条件分岐:コマンド入力
015 スクリプト移動: 移動
016 スクリプト移動: 呼出
017 スクリプト移動: ループ
018 座標・画像変更
019 スクリプト変更
020 スペシャルゲージチェック分岐
021 ライフゲージチェック分岐
022 ゲージ変更
023 パレットアニメ・揺らし
024 停止
025 残像
026 終了
■ テクニック解説
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 ハイジャンプの作成
■ バグ・よくあるミス
Q_A よくあるミスQ&A
001 消せない画像
002 リスト選択とキーボード操作
003 アニメプレビューで落ちる
004 起動直後に落ちる
005 OBJ発生位置がずれる
006 着地すると技終了
007 画面端でのヒットバック1
008 グラデーションが汚い
009 画面端でのヒットバック2
010 境界のアンチエイリアス問題
011 ガードされてもキャンセル可能
012 プレーヤーの読込に失敗
013 謎の残像が発生する
014 コマンドが左右反転する
015 パレット管理でよくあるミス
016 下溜め技が失敗する
017 パレットウィンドウで落ちる
018 コンボが途切れない
019 やられ中にしゃがみ可能
020 ソフトのバージョン表記
021 空中でコマンド左右反転2
022 左右押しでガード前進
023 真空投げが発生する
024 空中でコマンド左右反転3
■ テスト時のチェック項目
■ 解説用データ ダウンロード
023
真空投げが発生する
格闘ツクールでは、投げ技を作成することができますが
注意して処理を組まないと 真空投げバグ が発生する可能性が有ります。
真空投げ
通常、投げ技というのは 自キャラの近くにいる相手を掴んで投げる というものです。
※もちろん、例外的に中距離の相手を掴むキャラもいますが。
しかし、ゲームの設定に不備があると
相手が遠く離れた位置にいるのにも関わらず、
自キャラが投げつかみを出した時に
相手を手元に引き寄せて投げ技を成立させてしまう
というバグが発生します。
この投げ技バグのことを格闘ゲームでは真空投げと呼んでいます。
※少し見づらいですが、背景の位置に注目すると相手を引き寄せていることがわかると思います。
このページでは、
真空投げバグについて その発生条件と予防策を説明して行きたいと思います。
現状の確認
まずは、現在のバグ発生状況について確認しておきます。
バグの発生が確認しやすいよう、今回は以下のようなキャラを例として実験してみます。
・投げ技攻撃を持っている
・多段ヒットする飛び道具攻撃を持っている
------------------------------------------------------------
ゲーム開始、まずは相手が近距離にいる状態で普通に投げ技を出します。
当然ながら投げ技が成功します。
ここまでは何も問題ありません。
※ただし、後々起きるバグの発生条件にはなっています。
次に相手が遠距離間合いにいる場合。
投げ技の前に、自キャラが飛び道具攻撃を出します。
飛び道具が相手に向かって飛んでいきます。
ここで自キャラが連続で投げつかみを出します。
飛び道具と投げつかみが同時に出ている状態です。
※見分けづらいですが、左側の自キャラは投げつかみの動作を行っています。
この状態で飛び道具が相手にヒットすると…
なぜか相手が自キャラのそばに瞬間移動、投げ技が成立します。
※丁度飛び道具が2ヒットしたあたりで発生しやすいです。
バグの原因
投げ技を作る際は「投げやられに攻撃したら」の条件分岐を入れるのですが、
この条件分岐では相手キャラとの間合いを考えず、
ただ単純に「投げやられ判定に攻撃が当たったら」を条件とします。
また、飛び道具攻撃ですが
これは自キャラと相手キャラの間に距離がある場合でもヒットします。
そして、この攻撃判定は相手の投げやられ判定にも当たります。
------------------------------------------------------------
以上の条件から、以下のような流れが考えられます。
自キャラが投げつかみを出して攻撃分岐をセットした後、
投げつかみ動作が終わるまでの間に飛び道具など何らかの方法で相手に攻撃がヒットすると
投げつかみの攻撃分岐が発動、相手の距離に関係なく投げ技が成立してしまう。
イメージにするとこのような感じでしょうか。
ただし、上記の条件に加えて一度普通に投げ技を当てていることが
真空投げバグ発生の条件になっています。
※正確には投げ技に限らず「攻撃が当たったら」の分岐を含む技全般が対象となります。
対策
今回の問題は発生条件が限定的なので、対策は幾つか考えられます。
どこかで発生条件を満たさないように改良すれば良いわけです。
------------------------------------------------------------
1. 飛び道具発射 → 投げつかみ が連続で出せないようにする
今回の問題は自キャラが飛び道具を発射して、
それが相手キャラに当たる前に投げつかみを出せるために真空投げが発生しています。
A.飛び道具発射後の硬直時間を長くする
B.飛び道具の移動速度を速くする
A〜Bの調整を行えば、飛び道具OBJで投げ動作が同時に画面上に出ることはなくなります。
------------------------------------------------------------
2. 飛び道具を多段ヒットさせない
今回の問題は飛び道具が多段ヒットするタイプの場合に発生しやすいです。
A.攻撃判定の「連続ヒット」オプションを外す
B.飛び道具ヒット後はOBJが消滅するようにする
※キャラによっては仕様変更になるので
多段ヒット飛び道具にこだわりがある場合は1. か 3. の方法を試すようにしてください。
------------------------------------------------------------
3. 遠距離ではダミーの投げつかみが出るようにする
これが今回の問題で一番オススメの対処法です。
投げボタンが用意されているゲームでは
相手との距離に関係なくどこでも「投げつかみ」のモーションを出せますが、
実際に投げ技が発動出来るのは相手が近くにいる場合のみです。
つまり、遠距離間合いで出す「投げつかみ」には攻撃判定は不要。
見た目だけ「投げつかみ」の空振りモーションを出せば良いわけです。
ダミーの投げ技動作を用意
近距離と遠距離で投げ技の動作を分ける
つかみのポーズだが攻撃判定は無し
攻撃判定も何も無いので、真空投げは絶対に起こり得ません。
考え方としては非常に単純ですが、最も確実な方法と言えます。
MEMO
ダミーの投げつかみに問題は無いか?
ダミーの動作にする、と聞いて不安に思う人もいるかもしれません。
本来つかめるはずの場面で空振りモーションにならないか?
実際に処理を組んでみるとわかりますが、
それほど問題になることはありません。
不自然な動きが起こるとしたら、以下のパターンでしょうか。
自キャラがダミーの投げつかみモーションを出してから
つかみ判定が発生するはずのタイミング、この短い時間に
相手キャラが「地上状態のまま」目の前にワープしてきた場合。
この条件を満たすような設定を持ったキャラはそうそういないと思います。
( 実際、投げつかみの攻撃判定よりも素早く相手が移動することは滅多に無いと思います )
上でも説明した通り、今回の問題は発生条件がかなり限定的です。
ただ、真空投げが意図的に発生できるようだとゲームバランス上かなり問題です。
今回説明した対処法を上手く使って抜けの無いようしっかり真空投げ対策を行ってください。
以上、長くなりましたが真空投げが発生するバグについて説明を終えます。
なお、今回説明した内容について気になる点や疑問点などがあれば
掲示板 にて質問を受け付けておりますので気軽にお尋ねください。