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


■ バグ・よくあるミス


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


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


031

アイテムのあるゲーム


対戦格闘ゲームというと、キャラクター同士の対決が一番大きな要素ですが、
その他の対戦を左右する要素としてアイテムの存在が挙げられます。

一口にアイテムと言ってもその在り方は様々ですが、ここでは
ステージ内に落ちているアイテムを拾って使用する
というルールについて考えてみたいと思います。

残念ながら2D格闘ツクールには、標準でアイテムを扱う機能がありません。
このページでは、2D格闘ツクール上でアイテムのあるゲームを
表現するためのコツについて説明していきます。



作成する内容の確認
ゲームを開始すると、ステージ中央にアイテムが登場します。


キャラをアイテムの位置に移動してしゃがみ弱パンチを行うと…

キャラがアイテムを拾います。

アイテムを拾った後のキャラは、通常立ちのポーズが普段と違うものになります。


アイテムを持った状態のキャラが攻撃を受けると

アイテムを地面に落とします。

通常立ちのポーズも普段のものに戻ります。




スクリプト作成の準備

------------------------------------------------------------
使用する変数の確認
まずは、今回の処理で使用する変数の番号を決めます。

アイテム関連で使用するのはシステム変数1つ、キャラ変数1つです。

システム変数
アイテムの現在座標を記録、キャラとの座標比較用に使います。
キャラがアイテムを持っている時は値が 10000 になります。

キャラ変数
キャラがアイテムを持っているかどうかを記録、
アイテムの有無に合わせてキャラの動作を変更します。
(キャラ変数なので、1P/2P別々に管理できます)

 0の場合、持っていない
 1の場合、持っている



例ではシステム変数Fキャラ変数Jを使用します。

 変数の用途は忘れるとまずいので一覧表にして記録しておくと良いです。
 テクニック016 変数の一覧を記録

------------------------------------------------------------
スクリプト行の用意
使用する変数の番号が決まったら、一連のスクリプト行を用意しておきます。


開始時
ゲーム開始時、1P側なら
ステージの決まった位置に「OBJ_アイテム」を発生。

OBJ_アイテム
地面に落ちている状態のアイテム。
ループ処理を繰り返しながらアイテムのX座標を取得する。

弱パンチしゃがみ
アイテムが地面に落ちている状態の場合は、「アイテム位置判定」を呼出。
判定の結果、近くにアイテムがある場合は「アイテムを拾う」へ飛ぶ。

アイテム位置判定
アイテムのX座標と自キャラのX座標を比較、一定の範囲内にあるかどうかを判定する。

アイテムを拾う
アイテムを拾う動作を行う。
キャラはアイテムを持った状態となり、アイテムは地面から消滅する。

弱ヒット立ち
アイテムを所持している場合は、「落ちるアイテム」を発生。

落ちるアイテム
アイテムを持った状態のキャラが攻撃を受けた場合に発生。
地面に着地すると「OBJ_アイテム」へ飛ぶ。



スクリプト作成
各種スクリプト行が用意できたら、 1つずつ処理を組んでいきます。

------------------------------------------------------------
開始時
あらかじめ 1P/2Pの判別処理 を組んでおきます。
テクニック025 1P/2Pの判別


番号 命令 設定内容
1 開始時用キャラグラフィック
2 キャラ変数F=1( キャラが2P側) なら、4
3 「OBJ_アイテム」 を発生( 無条件 ・ 影を出す )
4 開始時用キャラグラフィック

※特にこだわりが無ければ、開始時用キャラグラフィックは通常立ちのグラフィックで構いません。

スクリプトのラストで、アイテムを発生させています。
キャラが2P側の場合は処理を飛ばしている点に注意してください。
なお、最初に画像を置いているのは 1P/2Pの判別処理 の完了を待つためです。

------------------------------------------------------------
OBJ_アイテム
処理内容はシンプルです。

番号 命令 設定内容
1 システム変数F=10000(アイテムはキャラが持っている)なら、5
2 システム変数F「データ:X座標」(アイテムのX座標)を代入
3 アイテムの画像、WAIT=5
4 「OBJ_アイテム」
5  

キャラがアイテムを持っている場合は終了します。
そうでない場合は、ループ処理でアイテムのX座標を取得し続けます。

アイテム用のグラフィックには以下の画像を使います。

※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。

後述する判定値の関係上、アイテムの画像は
中心軸よりもやや右側に寄せて配置した方が自然な感じになります。


------------------------------------------------------------
弱パンチしゃがみ

番号 命令 設定内容
1 タスク変数A0を代入
2 「アイテム位置判定」をスクリプト呼出
3 タスク変数A=1なら、「アイテムを拾う」

1〜3でアイテム取得の判定と分岐を行っています。
それ以降の処理については通常の攻撃動作と変わりません。

 1では、タスク変数Aに0を代入しています。
 タスク変数の初期値は0なのですが、

 2のスクリプト呼び先で使用することがわかるように
 あえて初期値=0を設定しています。

キャラ用のグラフィックには以下の画像を使います。

※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。


------------------------------------------------------------
アイテム位置判定

番号 命令 設定内容
1 タスク変数B「システム変数F」(アイテムのX座標)を代入
2 タスク変数C「データ:X座標」(キャラのX座標)を代入
3 タスク変数B100以下なら、6
4 タスク変数C - 100
5 タスク変数B - 100、結果が99以上なら 4
6 タスク変数B10以下なら、9
7 タスク変数C - 10
8 タスク変数B - 10、結果が9以上なら 7
9 タスク変数B=0なら、12
10 タスク変数C - 1
11 タスク変数B - 1、結果が0以上なら 10
12 タスク変数C0以下なら、16
13 タスク変数C49以上なら、16
14 タスク変数A1を代入
15  
16 タスク変数A0を代入
17  

少しややこしい処理が並ぶので、色分けして処理内容を見やすくしています。
アイテムのX座標とキャラのX座標の両方をマイナス処理することで、両者の差を取得。
この差を基準として、キャラの近くにアイテムがあるかどうかを判定します。
( 得られた値の絶対値が小さければ、互いのX座標が近いということになります )

 判定の結果、アイテムが近くにあった場合はタスク変数A=1
 そうでなかった場合はタスク変数A=0となります。

ここで使われている変数値の比較方法について、詳しくは
テクニック011 変数の大小チェック を参照してください。


ここでは、キャラのX座標が以下の範囲にあるかどうかをアイテム取得の条件にしています。
アイテムX座標 〜 アイテムX座標+50ドット

 例では説明のしやすさを優先して0〜50という判定値にしましたが、
 左右バランスを取って判定したい場合は
 アイテムX座標−25ドット 〜 アイテムX座標+25ドット
 のように判定条件を変更してください。


------------------------------------------------------------
アイテムを拾う

番号 命令 設定内容
1 やられ・投げやられ・ぶつかりをONに
2 やられをONに
3 キャラグラフィック1枚目
4 キャラグラフィック2枚目
5 キャラ変数J1を代入(キャラはアイテムを持っている)
6 システム変数F10000を代入(アイテムはキャラが持っている)
7 キャラグラフィック2枚目
8  

アイテムを拾う動作です。
各種変数を操作して、「キャラがアイテムを持った状態」を記録しています。
なお、あまり隙が大きくならないよう表示WAITは小さめにすると良いです。

キャラ用のグラフィックには以下の画像を使います。

※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。

 動作中に攻撃を受けたりすると処理がおかしくなる可能性があります。
 心配な場合は一時的にキャラを無敵状態にしておくと良いかもしれません。



------------------------------------------------------------
弱ヒット立ち

番号 命令 設定内容
1  
2 キャラ変数J=0なら、4
3 「落ちるアイテム」を発生(無条件 ・ 影を出す)
4  

アイテムの有無によって分岐、
アイテムを持っている場合は「落ちるアイテム」をOBJ発生させます。

キャラ用のグラフィックには以下の画像を使います。

※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。

 ここでは、やられ動作時にアイテムを落とすルールを前提としています。
 他にやられモーションがある場合はそれらにも同じ処理を追加します。
 また、攻撃時にアイテムを落とすなど別のルールを使う場合は
 アイテムを落とす動作に上記処理を追加してください。


------------------------------------------------------------
落ちるアイテム

番号 命令 設定内容
1 キャラ変数J0を代入(キャラはアイテムを持っていない)
2 システム変数F0を代入(アイテムは誰も拾っていない)
3 着地したら、「OBJ_アイテム」
4 移動X +1.60、 移動Y -7.00、 重力X 0、 重力Y 0.40
5 アイテムの画像、WAIT=0(無限)

上の「アイテムを拾う」スクリプトとは逆に、
キャラの状態やアイテムの状態をリセットしています。


------------------------------------------------------------
その他

通常立ち

番号 命令 設定内容
3 キャラ変数J=1(キャラがアイテムを持っている)なら、17
     
17 やられ・投げやられ・ぶつかりをONに
18 やられをONに
19 通常立ち(別ポーズ)の画像
20  

スクリプト前半の変数分岐でアイテムの有無をチェック、
アイテムを持っている場合はスクリプト後半にある別のポーズへ分岐します。

キャラ用のグラフィックには以下の画像を使います。
通常立ち


通常立ち(別ポーズ)

※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。

以上で、アイテム関連処理の準備が完了です。
テストプレーで処理内容に問題が無いか確認してください。



処理を確認
アイテム取得の処理を確認します。

1P側だけでなく、2P側キャラでも問題なく動作することを確認してください。
アイテムを拾ったり落としたり、を繰り返しながらチェックすると良いです。



今回の説明では、スクリプトをシンプルにするためにあまり目立った効果をつけていませんが、
アイテムの有無に合わせた動作変更など色々なルールが考えられると思います。
例えば、変数処理を利用して「攻撃を何回受けるとアイテムを落とすか?」
といった耐久値のルールを組むことも可能です。
色々工夫して面白い対戦を演出してください。


以上、アイテムのあるゲームを表現するコツについての説明を終えます。
なお、今回説明した内容について気になる点・疑問点などあれば
掲示板 にて受け付けておりますので気軽にお尋ねください。


トップページへもどる

inserted by FC2 system