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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
043
相手によって動作変更
一部の格闘ゲームにはキャラ間の掛け合い演出をはじめとして
特定のキャラが相手の時限定の演出などがあります。
ゲーム内にこういったイベントが用意されていると、
プレーヤーにはそれらを探す楽しみが出来ます。
また製作者側から見ると、格闘ゲームの部分だけでは
語りづらいキャラの性格などを見せる場ともなります。
このページでは、2D格闘ツクール上でそれら
キャラ限定の処理を組む方法について説明したいと思います。
作成する内容の確認
まずは今回作成する処理の内容を確認しておきます。
ここでは、相手キャラに合わせて開始時のポーズを変える という処理を作成します。
相手が自キャラとは別のキャラである場合…
※左が自キャラ、右が相手キャラです。
自キャラは通常の開始時ポーズを取ります。
相手が自キャラと同じキャラ、つまり同キャラ対戦の場合…
専用の開始ポーズ( ここでは驚きの動作 )をとります。
また、相手キャラ側も条件は同じなので専用の開始ポーズを行っています。
------------------------------------------------------------
以下は今回の処理で使用する開始時動作のグラフィックです。
通常時
同キャラ時
※上記画像はPNG画像となっております。
ゲーム内に読み込む際はBMPに変換してください。
スクリプト作成の準備
大まかな仕組みとしては以下のような感じになります。
1P・2Pそれぞれのキャラ選択を変数に記録し、
その変数値を基準として開始時の処理を分岐させる。
------------------------------------------------------------
1P側・2P側の使用キャラ把握
以下のように、キャラに変数を割り当てることで
どのキャラを使っているかをチェックできるようにします。
なお、ここでは1P/2P間を越えて変数値の取得を行うため、
キャラ変数 ではなく システム変数 を使用します。
また、この処理では1P/2P判別のテクニック
を使います。
スクリプトを作成する前に、あらかじめ判別処理を用意してください。
※1P/2P判別のテクニックについて、詳しくはこちらのページを参照してください。
ここでは1P側・2P側別々に記録するため、システム変数を2つ使用します。
まずはどの番号の変数を使用するか決めておいてください。
例では、1P側をシステム変数I、2P側をシステム変数Jで記録します。
MEMO
変数を節約したい場合
このページでは、後々キャラ把握の処理をフル活用することを
前提として1P/2P別々に変数を記録しています。
「同キャラ対戦なら」を条件とした判定だけなら、
もっとシンプルに構成することも恐らく可能です。
ただ、場合によってはそこまでキャラ判別を駆使する予定は無く
ちょっとしたネタ的に使いたいだけ、ということも有るかと思います。
そういった場合は、1P・2P側で共通のシステム変数に
値を加算するようにしてください。
キャラごとに加算する値を 1,2,4,8,16…
といった感じに2の乗数で統一しておけば
変数1つでお互いのキャラ選択状態を把握することが出来ます。
例えば、
合計値=32なら、お互いに値16のキャラを使っている。
合計値=12で、自キャラ=値4のキャラなら相手は値8のキャラ。
2の乗数による組み合わせパターン把握は
色々と便利なので覚えておくと良いでしょう。
システム変数はゲームを終了させるまで値が維持されるので、
対戦開始直後に値をリセット(0代入)しておくことを忘れないようにしてください。
スクリプトの作成
開始時スクリプトに移動してください。
他のテクニック解説の関係で処理がごちゃごちゃしていますが、
ここからは行末の画像呼出命令をベースとして処理を追加します。
( 今は行に画像呼出命令が1つだけ並んでいる、とイメージしてください )
まずは自キャラの選択状態をシステム変数に記録します。
自キャラが1Pならシステム変数Iに、
自キャラが2Pならシステム変数Jに値を記録します。
なお、ここでは1P/2Pの判別をキャラ変数Fで行っています。
※キャラ変数F=0なら1P、キャラ変数F=1なら2P
番号 | 命令 | 設定内容 |
1 | 開始時の基本ポーズ、WAIT=2 | |
2 | キャラ変数F = 1なら、5 へ | |
3 | システム変数I = 1代入 | |
4 | 6 へ | |
5 | システム変数J = 1代入 | |
6 | 開始時の基本ポーズ、WAIT=2 | |
7 |
1ブロック目で表示時間の短い画像呼出命令を置いています。
これは、別行で行っている1P/2P判別処理 の完了を待つために用意したものです。
ラストに画像呼出命令を置いていますが、
ここが「開始時動作」
のメイン部分になります。
------------------------------------------------------------
次に、開始時動作の分岐処理を組みます。
「相手がどのキャラを使っているか?」
を知るためには、
「相手が1Pか2Pか?」
を知る必要があります。
そこで、ここでは自キャラが1Pか2Pかの判定の後に分岐の処理を追加することにします。
番号 | 命令 | 設定内容 |
1 | 開始時の基本ポーズ、WAIT=2 | |
2 | キャラ変数F = 1なら、7 へ | |
3 | システム変数I = 1代入 | |
4 | 開始時の基本ポーズ、WAIT=2 | |
5 | システム変数J = 1なら、11 へ | |
6 | 19 へ | |
7 | システム変数J = 1代入 | |
8 | 開始時の基本ポーズ、WAIT=2 | |
9 | システム変数I = 1なら、11 へ | |
10 | 19 へ | |
11〜17 | 同キャラ対戦用の開始時動作 | |
18 | ||
19〜23 | 通常の開始時動作 | |
24 |
※色付きの部分が今回追加した処理になります。
処理内容をまとめると、以下のようになります。
自キャラが1Pの場合は、相手キャラ=2Pの変数値をチェック。
同キャラなら専用の開始時動作、別キャラなら通常の開始時動作へ。
自キャラが2Pの場合は、相手キャラ=1Pの変数値をチェック。
同キャラなら専用の開始時動作、別キャラなら通常の開始時動作へ。
※相手の変数をチェックする前に画像を置いて代入処理の完了を待っている点に注意してください。
MEMO
判別の分岐を省略したい
1P or 2Pの分岐を毎回行うのが面倒な場合は
相手キャラの変数値を自キャラのキャラ変数にコピーしておくと
分岐なしに1つの変数を参照するだけで済むため便利です。
このあたりはキャラ判別をどれだけんも頻度で使うか?
キャラ変数のストックに余裕があるか?を考えて決めるようにしてください。
テストプレーで処理を確認
スクリプトが用意出来たら、テストプレーで処理を確認してください。
同キャラ対戦時の専用ポーズを確認することが出来ました。
同様にして、他のキャラにも変数値代入の処理や分岐処理を追加してください。
余裕があれば、キャラ別の分岐をさらに追加するのも良いでしょう。
その場合は上記のスクリプトに「相手キャラの変数値=○○なら〜」
の分岐を追加していくことになります。
なお、複数パターンの分岐を作成する場合も
まずは基本形である1パターンの分岐が上手く動くか確認しておくことをお勧めします。
ここではシステム変数を使って使用キャラの把握を行いました。
貴重な変数を使っていてもったいないと感じるかもしれませんが、
キャラを把握を利用した処理は色々考えられるので
今回説明したテクニックを上手く活用してキャラクター性の高いゲームを実現してください。
以上、長くなりましたがキャラ限定の処理を組む方法に関する説明を終えます。
なお、今回説明した内容について気になる点や疑問点などがあれば
掲示板 にて受け付けておりますので気軽にお尋ねください。