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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
034
ステージ選択のあるキャラクターセレクト
格闘ゲームの対戦モードでは、お互いに使用キャラクターを選んでバトルを行います。
キャラに加えて対戦するステージも選びたいところですが、
残念ながら2D格闘ツクール標準ではステージ選択の処理が用意されていません。
いちおうゲームのオプション画面から
対戦時のステージを設定することは出来ます。
このページでは、
2D格闘ツクールのゲーム内で対戦ステージ選択の処理を表現する方法
について説明したいと思います。
作成する内容の確認
まずは、今回作成する内容を確認しておきます。
ゲームを開始。
タイトル画面で対戦モードを選択します。
キャラクターセレクト画面ではキャラに加えてステージの選択も可能です。
ここでは、左右入力でキャラ選択、上下入力でステージ選択というルールにします。
ステージ2を選んでお互いがキャラ選択を済ませると…
ステージ2の背景で対戦が開始されます。
処理の仕組み
最初に述べたとおり、2D格闘ツクールでは
ゲーム内で対戦ステージを変更することが出来ません。
そのため…
ステージファイルは1つとしておき、その内容を変数によって切り替える
という形でステージ選択を表現します。
キャラクター選択画面では、キャラ選択の枠を縦1列または横1行にすることで
1軸の操作のみでキャラを選べるようにします。
これによってもう1軸の操作が空くので、そこにステージ選択の処理を割り当てます。
ここから先では、幾つかのステップに分けて処理の組み方を説明していきます。
ステージの用意
ステージ選択が出来るよう、複数のステージを内部に持ったステージファイルを用意します。
ステージを新規作成してください。
ここでは「ステージ選択」という名前でステージを作成しました。
ステージスクリプトの作成
ステージのスクリプトはレイヤーごとに分けて配置していきますが、
各行の先頭で変数による分岐を置いておきます。
システム変数を1つ、ステージ選択の記録用に用意してください。
ここでは「システム変数H」を使います。
以下に、今回の処理で使うステージ用画像を置いておきます。
※上記画像はPNG画像となっております。
ゲームに読み込む際はBMPに変換して使ってください。
各行でのスクリプトの並べ方を下に載せておきます。
ここでは2つのステージ用OBJを1つの行内に置いています。
※色分け表示された部分に注目してください。
番号 | 命令 | 設定内容 |
1 | システム変数H = 1なら、4へ | |
2 | ステージ1の背景画像 WAIT=5 | |
3 | 2へ | |
4 | ステージ2の背景画像 WAIT=5 | |
5 | 4へ |
上記例では、ステージOBJにアニメーションがある場合を
考えてループ処理を組んでいます。
2〜3ブロック目がステージ1用の表示ループ、
4〜5ブロック目がステージ2用の表示ループとなっています。
各ステージのスクリプトが複雑な場合は複数行に分けるのもありです。
その場合は、行頭に「終了」命令を置いて、そこから後を飛び先に指定すると良いです。
キャラクターセレクトの用意
次に、キャラクターセレクト用のデモファイルを用意します。
デモを新規作成してください。
ここでは「char_and_stage」 という名前でデモを作成しました。
以下はデモ用の画像ファイルです。
ステージ選択背景
ステージ選択表示用
※上記画像はPNG画像となっております。
ゲームに読み込む際はBMPに変換して使ってください。
今回はキャラ選択を左右入力だけで行うので、
用意する画像も左右に選択枠が並んだものにしています。
また、画面上部にステージ選択の表示を置いている点に注意してください。
以下は、ステージ選択表示のスクリプトになります。
番号 | 命令 | 設定内容 |
1 | システム変数H = 0なら、4へ | |
2 | システム変数H = 1なら、6へ | |
3 | ||
4 | ステージ1を選択している表示 WAIT = 5 | |
5 | 0へ | |
6 | ステージ2を選択している表示 WAIT = 5 | |
7 | 0へ |
ここでもシステム変数の値に合わせて表示を切り替えています。
なお、表示WAITを短めにしておかないと
ステージ選択の表示更新が遅れてしまうので注意してください。
キャラクターセレクト画面の設定
デモ作成でセットしたキャラクターセレクトの背景に合わせて
システムのキャラクターセレクト設定を変更します。
「ゲームシステム」-「キャラクターセレクト画面」
を開きます。
例では横6×縦1
の枠を用意したので、
キャラセレクト縦横個数の設定もそれに合わせています。
ステージ選択の入力判定
ここまででキャラセレクト画面〜ステージ表示の処理が完成しました。
後は上下入力によるステージ選択の処理です。
キャラクターセレクトのカーソル(スクリプト)に
コマンド入力分岐を置くのが処理として自然ですが、残念ながらこの方法は使えません。
キャラクターセレクトのカーソルは
「ゲームシステム」-「基本イメージ」
で作成するのですが、
ここでは コマンド入力分岐命令をセットすることが出来ません。
( 同様に、デモのスクリプトも使用不可です )
コマンド入力分岐命令が使えるのは
キャラクターのスクリプトのみとなっています。
ここで再びキャラクターセレクトの画面を思い出してください。
上の図を見ればわかる通り、キャラの選択表示(キャラセレフェイス)は
キャラクターのスクリプトから呼び出しているので、
ここにコマンド入力分岐命令を置くことにします。
以下はそのスクリプト内容です。
番号 | 命令 | 設定内容 |
1 | キャラセレフェイス画像 WAIT=15 | |
2 | 「下方面に入力されているか?」成立時、5へ | |
3 | 「上方面に入力されているか?」成立時、7へ | |
4 | 0へ | |
5 | システム変数Hを+1、結果が1より大きければ9へ | |
6 | 0へ | |
7 | システム変数Hを-1、結果が0より小さければ11へ | |
8 | 0へ | |
9 | システム変数Hを-2 | |
10 | 0へ | |
11 | システム変数Hを+2 | |
12 | 0へ |
やや処理が長いですが、じっくり見ていけば難しい処理はしていません。
1〜4ブロック目では、「キーを上下どちらに押しているか?」の判定を行っています。
5〜6ブロック目ではカーソル下入力時の処理を、
7〜8ブロック目ではカーソル上入力時の処理をそれぞれ行っています。
また、9〜10や11〜12ブロック目では変数の値が一定の範囲に収まるよう調節しています。
( ここの計算は用意するステージの数によって変わるので注意してください )
以下は、キャラセレフェイス用の画像になります。
キャラセレフェイス用画像
※上記画像はPNG画像となっております。
ゲームに読み込む際はBMPに変換して使ってください。
MEMO
上下入力を判定する条件
今回の処理では
ステージ選択の入力をキャラクターのスクリプトで処理しているので、
キャラクターセレクトに空欄があるとステージ選択の上下入力も効きません。
ゲームを製作する際は、最終的に
キャラクターセレクトに空欄が出来ないよう注意してください。
処理の確認
以上でステージセレクトの処理が完成です。
テストプレーを実行して動作を確認してください。
うまく動作することが確認できたら、同様にして他のキャラクターについても
キャラセレフェイスのスクリプト設定を追加しておきましょう。
今回はキャラセレクト画面でのステージ選択について説明しましたが、
この処理を応用すれば対戦中の必殺技演出などでステージを変更することも出来ます。
テクニックをうまく活用して、プレーヤーがびっくりするような演出を表現してください。
長くなりましたが、
以上でステージ選択のあるキャラクターセレクト
についての説明を終えます。
今回説明した内容について何か気になる点・疑問点などあれば、
掲示板 にて質問を受け付けておりますので気軽にお尋ねください。