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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
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 | タスク変数A に 0を代入 | |
2 | 「アイテム位置判定」をスクリプト呼出 | |
3 | タスク変数A=1なら、「アイテムを拾う」へ |
1〜3でアイテム取得の判定と分岐を行っています。
それ以降の処理については通常の攻撃動作と変わりません。
1では、タスク変数Aに0を代入しています。
タスク変数の初期値は0なのですが、
2のスクリプト呼び先で使用することがわかるように
あえて初期値=0を設定しています。
キャラ用のグラフィックには以下の画像を使います。
※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。
------------------------------------------------------------
アイテム位置判定
番号 | 命令 | 設定内容 |
1 | タスク変数B に 「システム変数F」(アイテムのX座標)を代入 | |
2 | タスク変数C に 「データ:X座標」(キャラのX座標)を代入 | |
3 | タスク変数B が 100以下なら、6へ | |
4 | タスク変数C - 100 | |
5 | タスク変数B - 100、結果が99以上なら 4へ | |
6 | タスク変数B が 10以下なら、9へ | |
7 | タスク変数C - 10 | |
8 | タスク変数B - 10、結果が9以上なら 7へ | |
9 | タスク変数B=0なら、12へ | |
10 | タスク変数C - 1 | |
11 | タスク変数B - 1、結果が0以上なら 10へ | |
12 | タスク変数C が 0以下なら、16へ | |
13 | タスク変数C が 49以上なら、16へ | |
14 | タスク変数A に 1を代入 | |
15 | ||
16 | タスク変数A に 0を代入 | |
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 | キャラ変数J に 1を代入(キャラはアイテムを持っている) | |
6 | システム変数F に 10000を代入(アイテムはキャラが持っている) | |
7 | キャラグラフィック2枚目 | |
8 |
アイテムを拾う動作です。
各種変数を操作して、「キャラがアイテムを持った状態」を記録しています。
なお、あまり隙が大きくならないよう表示WAITは小さめにすると良いです。
キャラ用のグラフィックには以下の画像を使います。
※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。
動作中に攻撃を受けたりすると処理がおかしくなる可能性があります。
心配な場合は一時的にキャラを無敵状態にしておくと良いかもしれません。
------------------------------------------------------------
弱ヒット立ち
番号 | 命令 | 設定内容 |
1 | ||
2 | キャラ変数J=0なら、4へ | |
3 | 「落ちるアイテム」を発生(無条件 ・ 影を出す) | |
4 |
アイテムの有無によって分岐、
アイテムを持っている場合は「落ちるアイテム」をOBJ発生させます。
キャラ用のグラフィックには以下の画像を使います。
※ゲーム用に使用する際は上記PNG画像をBMPに変換してください。
ここでは、やられ動作時にアイテムを落とすルールを前提としています。
他にやられモーションがある場合はそれらにも同じ処理を追加します。
また、攻撃時にアイテムを落とすなど別のルールを使う場合は
アイテムを落とす動作に上記処理を追加してください。
------------------------------------------------------------
落ちるアイテム
番号 | 命令 | 設定内容 |
1 | キャラ変数J に 0を代入(キャラはアイテムを持っていない) | |
2 | システム変数F に 0を代入(アイテムは誰も拾っていない) | |
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側キャラでも問題なく動作することを確認してください。
アイテムを拾ったり落としたり、を繰り返しながらチェックすると良いです。
今回の説明では、スクリプトをシンプルにするためにあまり目立った効果をつけていませんが、
アイテムの有無に合わせた動作変更など色々なルールが考えられると思います。
例えば、変数処理を利用して「攻撃を何回受けるとアイテムを落とすか?」
といった耐久値のルールを組むことも可能です。
色々工夫して面白い対戦を演出してください。
以上、アイテムのあるゲームを表現するコツについての説明を終えます。
なお、今回説明した内容について気になる点・疑問点などあれば
掲示板 にて受け付けておりますので気軽にお尋ねください。