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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
032
復活する技の作成
格闘ゲームに登場する技・演出の1つとして、
リザレクション・復活というものがあります。
リザレクション
相手にKOされた時、自身のスペシャルゲージストックを条件として
自動的にライフを回復して復活する、という技です。
一般的なキャラクターよりも、ゲームのラストボスなど
特別なキャラ用の技として登場することが多いです。
このページでは、2D格闘ツクール上でキャラの復活という要素を持った技を
表現するためのコツについて説明したいと思います。
作成する内容を確認
まずは、作成する処理の内容を確認しておきます。
ゲーム開始。
画面右側に見えるのが今回リザレクションを使うキャラになります。
※右側キャラのスペシャルゲージストックが1であることに注意してください。
左側のキャラでダメージを与えてKOします。
相手は負けポーズをとって倒れますが…
キャラが再び立ち上がり復帰します。
この時、ゲージストックは1つ消費されてライフを全回復します。
スクリプトの作成
以下は、今回使用するキャラグラフィックになります。
キャラの負け動作
キャラ復活の動作
※上の画像はPNG形式です。
ゲームに読み込む際はリンク先の画像をBMPに変換して使ってください。
なお、これ以降のスクリプト解説では説明をわかりすくするため、
画像枚数を減らした処理に作り変えています。
------------------------------------------------------------
キャラ復活の処理について、大まかな流れを説明します。
ラウンド開始時、ゲージチェック用OBJを発生、
ラウンド中はループ処理でキャラのゲージストックを監視して結果を変数に記録します。
キャラのライフが0になった時、ゲージストックが一定量あれば
負けの動作を中止して復活の動作に入ります。
MEMO
ゲージストックを変数に記録する理由
上でゲージストックを変数で記録する、と説明しました。
「負け」のタイミングでゲージチェック分岐すれば良いのでは?
と思うかもしれませんが、これには理由があります。
キャラの「負け」動作を強制的に中断するためには、
より優先度の高い処理へ分岐させる必要があります。
変数分岐命令は負けの処理よりも優先度が高い一方、
ゲージチェック分岐は「負け」処理を止めるだけの強制力は有りません。
こういった処理の優先度を覚えておくと、
ルール変更的な処理を組む際に役立つかもしれません。
ここから先では、実際にスクリプトを組んでいきます。
まずは「ゲージ判定用OBJ」 「復活の動作」という行を用意してください。
------------------------------------------------------------
「開始時」スクリプトに移動します。
スクリプト内にオブジェクト発生命令を追加、
「ゲージ判定用OBJ」を呼び出すようにしてください。
例では、2ブロック目にてオブジェクト呼出命令を置いています。
------------------------------------------------------------
次に「ゲージ判定用OBJ」の処理を用意します。
番号 | 命令 | 設定内容 |
1 | ゲージストックが0より多いならそのまま処理続行、 そうでない場合は 5 へ |
|
2 | キャラ変数E=1 を代入する | |
3 | 透明画像 WAIT=5 | |
4 | 0 へ移動 | |
5 | キャラ変数E=0 を代入する | |
6 | 透明画像 WAIT=5 | |
7 | 0 へ移動 |
「ゲージ判定用OBJ」
ループ処理で自キャラのゲージストックを判定します。
ストックが0より多い場合は、キャラ変数Eに1を代入、
そうでない場合はキャラ変数Eに0を代入します。
------------------------------------------------------------
次は「復活の動作」です。
番号 | 命令 | 設定内容 |
1 | 自分のライフゲージを+1 | |
2 | ゲージストックが0より多いなら−1して次へ、 不成立時は「負け」スクリプトへ |
|
3 | 条件分岐:着地したら6へ | |
4 | 移動Y:+300.00 | |
5 | キャラのやられ画像、WAIT=45 | |
6 | 倒れているキャラ画像、WAIT=100 | |
7 | 自分のライフゲージを+1000 | |
8 | 立ち上がるキャラ画像、WAIT=5 | |
9 | 終了 |
まず、行頭にて自キャラのライフを+1。
最初に回復しておかないと、容赦なく「負け」
へ飛びます。
ライフ1がライフゲージに表示されて気になる場合は、ライフ最大値を大きめに設定したり
メインの回復処理までの動作を短くしたりで誤魔化すようにしてください。
次に、スペシャルゲージチェックを行います。
ゲージ判定自体は「ゲージ判定用OBJ」で済ませているので、
ここではストックを−1する目的で置いています。
(念のため、条件不成立時は「負け」へ飛ばします)
次の3ブロックでは、キャラが空中にいた場合を考えて
一旦着地するよう処理しています。
------------------------------------------------------------
最後に「負け」
動作からの分岐処理を組みます。
先頭に変数分岐命令を置いて、「復活の動作」
への分岐を用意します。
例では、キャラ変数E=1 なら分岐するように処理を組んでいます。
投げ技への対策
通常の打撃技などと違って、投げ技はGC命令でダメージ処理します。
ここで処理の組み方を間違えると、投げ技でライフ0となった場合に
「復活の動作」
がうまく動かないので注意してください。
「投げ技」
スクリプト前半で投げ技のつかみ動作を、後半で投げ技の処理をしています。
RP命令とGC命令の間に画像呼出命令Iを1つ置いている点に注目してください。
これが無いと復活に失敗するので注意してください。
なお、画像のWAIT自体は短くても問題ないので、
ダメージ発生のタイミングが気になる場合は
間に入る画像のWAITを小さめにすると良いです。
上の方でも述べたとおり、キャラの復活というのは非常に強力な技と言えます。
復活の処理を組む際は、復活に必要な条件もしっかり考えるようにしてください。
例えば、技発動に必要なゲージストックの数やゲージの溜まりやすさ、
復活時の体力回復量などを調節すると良いです。
また、今回の説明したテクニックを応用すれば
ラストボス専用で演出付きの負け動作を行う、といった表現も出来るかもしれません。
色々試してみると良いでしょう。
以上、長くなりましたが
リザレクション・キャラ復活の処理について説明を終えます。
今回説明した内容について、何か気になる点・疑問点などあれば
掲示板 にて質問を受け付けておりますので、気軽にお尋ねください。