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


■ バグ・よくあるミス


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


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


024

横方向のホーミング攻撃


格闘ゲームに登場する技の中には
相手キャラの位置に向けて正確に攻撃を発生させる
というタイプの技、いわゆるホーミング攻撃があります。

今回は、 「相手の頭上に雷を落とす技」 を例として
横方向のホーミング攻撃の作り方について説明していきたいと思います。

 なお、今回の説明に合わせて以下のページも読んでおくと処理内容を理解しやすいかと思います。
 ⇒テクニック020 ワープ技の作成



作成する内容の確認

まずは、今回作成する処理の動きについて確認しておきましょう。

1. コマンドを入力すると、キャラが飛び道具を出すポーズをとります。


2. ポーズの直後、相手の頭上に雷雲が発生。


3. 相手の頭上に雷が落ちます。

※右側キャラのグラフィックが上2枚と違っているのは、別の解説ページを書いた時の影響です。



スクリプト作成

今回は複数行のスクリプトによって処理を作るため、
ここではそれらの関係についてまとめておきます。

  スクリプト行名 処理内容
1 X方向ホーミング飛び道具 飛び道具を出す構えをとるキャラ本体
2 X方向ホーミングOBJ 相手位置のサーチ 〜 雷雲発生のOBJ
3 X方向ホーミング雷OBJ 2 から発生する雷攻撃のOBJ
4 位置判定用防御枠OBJ 位置判定用防御枠、相手側に設置


以下は今回のスクリプトで使用するグラフィックです。
キャラ用グラフィック


OBJ用グラフィック

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

OBJグラフィックを登録する際は
「専用パレット」で読み込むようにしてください。


スクリプト解説

1. X方向ホーミング飛び道具
番号 命令 設定内容
1 1番目の画像 WAIT=4 中心軸( -12, 6 )
2 2番目の画像 WAIT=2 中心軸( -18, 7 )
3 3番目の画像 WAIT=6 中心軸( -20, 7 )
4 「X方向ホーミングOBJ」 を( 0, 0)に発生 「無条件」ON
5 4番目の画像 WAIT=8 中心軸( -19, 8 )
6 5番目の画像 WAIT=4 中心軸( -16, 7 )
7 6番目の画像 WAIT=4 中心軸( 2, 2 )
8 7番目の画像 WAIT=10 中心軸( 0, 2 )
9 8番目の画像 WAIT=10 中心軸( -2, 2 )
10 9番目の画像 WAIT=8 中心軸( -3, 2 )
11 10番目の画像 WAIT=6 中心軸( -3, 2 )
12 11番目の画像 WAIT=4 中心軸( -5, 3 )
13 12番目の画像 WAIT=8 中心軸( -7, 6 )

この行では、あまり特別なことはしていません。
4ブロック目で飛び道具OBJを発生させている点だけ注意です。


------------------------------------------------------------
2. X方向ホーミングOBJ
番号 命令 設定内容
1 壁に当たったら、11
2 攻撃が当たったら、7
3 攻撃力0 「連続ヒット」ON 攻撃範囲:上段から( -100, 1520, 80, 480)
4 移動X = 10.00 (代入)
5 透明画像 WAIT=5 中心軸( 0, 0 )
6 0
7 移動をリセット( 全てに0を代入 )
8 雷雲の画像 WAIT=50 中心軸( 0, -320 )
9 「X方向ホーミング雷OBJ」 を( 0, -240)に発生 「無条件」ON
10 雷雲の画像 WAIT=120 中心軸( 0, -320 )
11  

このスクリプトは、前半と後半に分けて考えるとわかりやすいです。

前半1 〜 6ブロックでは、地下に埋めた攻撃枠で相手の位置をサーチしています。
3ブロック目の攻撃枠ですが、これは以下のような方式で攻撃範囲を設定しています。

地下判定を作る流れ
まずは、以下のような内容で地上の攻撃判定を作成します。

画面の上から下まで届く判定にしたいので、高さ = 480
そのままだと地面から下方向へ480ドットの枠になるので、Y座標 = -480

判定を早くするためにはサーチ用OBJの移動速度を上げると良いですが、
そうすると相手を通り越してしまう可能性があるため、少し大きめの幅 = 80

相手の頭上ぴったりの位置に雷雲OBJが出るようにするため、
枠を後方にずらしてX座標 = -100

サーチ動作を考えながら枠のサイズ・位置を調節していきます。
※動作が不安な場合は、地上判定のままテストプレーで処理確認しておくと良いです。

こうして得られた地上攻撃枠を地下に埋めるため、Y座標を +2000 します。

なお、ここで「連続ヒット」をONにしておかないと
サーチ後に発生した飛び道具( 本番の攻撃判定 )がヒットしないので注意してください。
また、この攻撃枠はあくまでサーチ用のものなので 攻撃力=0
リアクション設定もされていない点に注意してください。

ここで用意した地下攻撃枠が相手の地下防御枠に当たると、
7ブロック目以降の飛び道具メイン処理に移ります。

後半7〜10ブロックでは、雷雲を出現させています。
今回はいきなり本番の攻撃判定を出すのではなく、
この雷雲から雷の飛び道具を出すという処理にしています。


------------------------------------------------------------
3. X方向ホーミング雷OBJ
番号 命令 設定内容
1 着地したら、8
2 移動Y = 5.00 (代入)
3 各種リアクション設定
4 攻撃力1 範囲設定:上段から( 0, -74, 24, 76)
5 雷の画像 WAIT=5 中心軸( 2, 0 )
6 雷の画像 X反転 WAIT=5 中心軸( 2, 0 )
7 0
8 攻撃枠のリセット
9 透明画像 WAIT=5
10  

雷雲OBJから発射される雷です。
ここでは、雷を地上に落ちるまで有効な飛び道具として扱っています。

内容的には以下のような構成となっています。
前半1 〜 7ブロック   = 雷が地面に落ちるまでの動作(ループ処理)
後半8 〜 10 ブロック = 雷が地面に落ちてからの消滅動作


------------------------------------------------------------
4. 位置判定用防御枠OBJ
番号 命令 設定内容
1 「やられ」 範囲設定:上段から( -2, 1912, 56, 94)
2 透明画像 WAIT=0 (無限)

上の方で攻撃側の地下攻撃判定を出していましたが、
位置サーチを成立させるためには
攻撃される側にも対となる防御枠が必要となります。

判定用の枠はキャラのポーズに関係なくずっと同じ形の枠でよいため、
「開始時」行にて このスクリプトを一度呼んでおくだけで問題ありません。
画像のWAITが0( 無限 )になっている点に注意してください。
また、オブジェクト発生させる際は、
「キャラに同期」のオプションをONにしておくことを忘れないようにしてください。


1ブロック目にある防御枠の範囲設定ですが
これも攻撃枠同様地上の判定を作ってから、それを下方向にずらしています。

 例では( -2, -88, 56, 94 )という枠を作ってから、Y座標を+2000して
 ( -2, 1912, 56, 94 )という地下判定に変えています。




仕組みの解説

今回のスクリプトについて、
その動きを図にすると以下のような感じになります。

地下に置いた攻撃枠/防御枠で
相手の位置判定を行っているのがポイントです。



簡単な説明となりましたが、
以上で「横方向のホーミング攻撃」に関する説明を終えます。
今回の内容についてご不明な点や質問などあれば
掲示板 にて受け付けておりますので気軽にお尋ねください。



トップページへもどる

inserted by FC2 system