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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
047
モードを切り替えるキャラ
格闘ゲームには自分の能力を一時的に高めたり、
技のスタイルを変更するといった要素を持ったキャラクターも登場します。
相手に合わせて戦法を大きく変えるなど、
トリッキーな戦い方を楽しむことが出来るのが魅力です。
このページでは2D格闘ツクール上で
モードを切り替えるキャラを表現する方法について解説したいと思います。
作成する内容の確認
まずは、今回作成する内容について確認しておきたいと思います。
「能力を一時的に高める技を使ってキャラの技をパワーアップさせる」
ゲーム開始、弱パンチ攻撃を出してみます。
コマンドを入力すると、通常の弱パンチが出ました。
ここでパワーアップのコマンドを入力します。
技が発動、キャラの周囲にオーラが発生します。
キャラの移動中もオーラは継続しています。
このまま相手キャラに近付いていきます。
再び弱パンチを出してみます。
今回はパワーアップ版の弱パンチが出ました。
隙が小さいモーションで連続ヒットしやすいです。
パワーアップ後、しばらくするとオーラは消滅します。
弱パンチのモーションも通常版に戻ります。
処理の仕組み
ここではキャラ変数による分岐処理を使ってキャラのモードを切り替えています。
・パワーアップ技発動時にキャラ変数に初期値を与える
・一定の間隔でキャラ変数の値を -1 していく
・攻撃スクリプト先頭にて分岐処理、キャラ変数の値が
0より大きい間はパワーアップ版の動作へ移行する
大まかな処理をイメージにすると以下のような感じです。
スクリプトの作成
実際にスクリプト作成を進めて行きましょう。
以下は、今回の処理で使用するグラフィックです。
パワーアップ技のモーション: 気合いためA
パワーアップのオーラ: オーラA
弱パンチ(通常版)のモーション: 弱パンチ立ちA
弱パンチ(パワーアップ版)のモーション: 弱パンチ立ちC
※上記画像はPNG形式となっております。
ゲーム内に読み込む際はBMP形式に変換してください。
まずはパワーアップ状態の判定に使うキャラ変数を決めておきます。
なお、このページでは キャラ変数M を使用します。
------------------------------------------------------------
パワーアップ技のスクリプト
番号 | 命令 | 設定内容 |
1 | キャンセル不可 | |
2 | やられ・ぶつかりをONに | |
3 | やられをONに | |
4 | 画像1枚目、WAIT = 8 | |
5 | 画像2枚目、WAIT = 8 | |
6 | 画像3枚目、WAIT = 8 | |
7 | キャラ変数M に100を代入 | |
8 | パワーアップオーラ を発生、
オプション「親と同期」をON |
|
9 | 画像4枚目、WAIT = 80 | |
10 | 画像5枚目、WAIT = 8 | |
11 | 画像6枚目、WAIT = 8 | |
12 | 画像7枚目、WAIT = 8 | |
13 | 画像8枚目、WAIT = 8 | |
14 |
7ブロック目で変数処理をしている点に注目してください。
ここではパワーアップオーラの持続時間を決めています。
※変数の値をタイマーのように使うと考えてください。
なお、ここではオーラ側のスクリプトに合わせて変数の初期値を 100 としています。
続く8ブロック目ではオブジェクト発生命令でパワーアップオーラを呼び出しています。
オプションにて「親と同期」を選んでいる点に注意してください。
ここをONにしておくと、オーラのエフェクトがキャラの位置に合わせて移動するようになります。
( 例えば前方向に歩くと、オーラも同じだけ移動します )
MEMO
別OBJ扱いによる節約
ここでは、オーラのエフェクトをキャラとは別のオブジェクトとして
配置することでグラフィック枚数を節約しています。
もし、ここでオブジェクトを使わず
「オーラの無いキャラグラフィック」 「オーラの有るキャラグラフィック」を別々に用意すると、
グラフィックの枚数が2倍必要になるので大変です。
こういったデータ量・作業量節約のテクニックは
ゲームを作る上で非常に大切なので覚えておくと良いでしょう。
パワーアップオーラのスクリプト
番号 | 命令 | 設定内容 |
1 | 色変更: a+b足し算、 R:0 G:-5 B+4 | |
2 | キャラ変数M を -1、値が 1 より小さかったら 23 へ | |
3 | 画像1枚目、WAIT = 5 | |
4 | キャラ変数M を -1、値が 1 より小さかったら 23 へ | |
5 | 画像2枚目、WAIT = 5 | |
6〜19ブロック目、変数分岐と画像命令を交互に並べる | ||
20 | キャラ変数M を -1、値が 1 より小さかったら 23 へ | |
21 | 画像10枚目、WAIT = 5 | |
22 | パワーアップオーラ( スクリプトの先頭 ) へ | |
23 | 画像10枚目、WAIT = 5 | |
14 |
上記スクリプトを見ればわかる通り、変数分岐命令と画像呼出命令が交互に並んでいます。
※表中で「〜より小さかったら」としていますが、エディタでは「〜以下だったら」と設定します。
各分岐ではキャラ変数の値を−1しつつ、値が1より小さかったらオーラを終了させます。
( オーラのグラフィック枚数が少ない場合はアニメ1ループのラストで判定するのもアリです )
なお、今回は23ブロック目で同じ画像を使いまわしていますが
ここに別途オーラ終了のアニメーションを入れるとより迫力が増すと思います。
MEMO
オブジェクト側で定期的な操作
オーラの継続時間(タイマー)をキャラ本体ではなく
オブジェクト側のループ内で管理している点に注目してください。
キャラ側だと自分の操作や敵の攻撃によって
動作が中断する事が多いですが、
オブジェクトだとそういう心配も無いので安心です。
スクリプトで何か凝った処理を動かしたい場合は
オブジェクトに分離して、と覚えておくと良いです。
弱パンチのスクリプト
番号 | 命令 | 設定内容 |
1 | キャラ変数Mが 0 より大きかったら、 17 へ | |
2 | キャンセル不可 | |
3 | やられ・ぶつかりをONに | |
4 | 弱パンチAの画像1枚目、WAIT = 2 | |
5〜13ブロック目、 弱パンチ(通常版) の動作 | ||
14 | 弱パンチAの画像7枚目、WAIT = 3 | |
15 | 弱パンチAの画像8枚目、WAIT = 2 | |
16 | ||
17 | キャンセル不可 | |
18 | やられ・ぶつかりをONに | |
19 | 弱パンチCの画像1枚目、WAIT = 2 | |
20〜27ブロック目、 弱パンチ(パワーアップ版) の動作 | ||
28 | 画像6枚目、WAIT = 2 | |
29 | 画像7枚目、WAIT = 2 | |
30 |
スクリプト自体はちょっと長めですが、処理内容自体はとてもシンプルです。
スクリプトが条件分岐命令によって前半と後半に分かれている点に注目してください。
前半では通常版の弱パンチを、後半ではパワーアップ版の弱パンチを行います。
また、数値面では攻撃力や防御力( ダメージ率 )など細かく変更しています。
MEMO
異なるモードのスクリプトを並べる
今回の説明ではパワーアップによる変化がわかりやすいよう
技のモーション自体を変更しましたが、単純に
画像WAITや攻撃力、防御力など値のみを変えたい場合もあるかと思います。
そういった場合は先に通常版のスクリプトを作ってから、
それを同じ行内でコピー&ペーストすると手間が省けるのでお勧めです。
また、動作の中にスクリプト移動や飛び先指定がある場合は
基本的にコピー元の飛び先が維持されます。
スクリプトのペーストが済んだら、各飛び先設定をしっかり確認する
という癖をつけておきましょう。
テストプレーで処理を確認
スクリプトの編集、技コマンドの設定が済んだら
テストプレーを実行して動作を確認してください。
設定通りに動いているのが確認できたら、同様にして
他の動作にも通常版とパワーアップ版の分岐をセットしていくと良いでしょう。
------------------------------------------------------------
上の説明では省略しましたが、パワーアップ技の重ねがけを許可するか
など細かい部分も調節するようにしてください。
重ねがけを許可しない場合
変数値がある内に再びパワーアップ技を使った場合は
失敗版のモーションへ飛ぶなどにしておくと良いかもしれません。
重ねがけを許可する場合
オブジェクト発生時のオプションで「無条件」を選ばず、
決まった管理番号でオブジェクトを発生させるようにします。
こうしておくと、古いオーラエフェクトを置き換える形で新しいオーラエフェクトが出現するので
画面内に複数のエフェクトが重なるのを防ぐことが出来ます。
今回の処理ではキャラのパワーアップを表現しましたが、
このテクニックを応用すれば能力変化だけでなく
キャラの変身や交替など凝った処理を組むことが出来ます。
色々試してみると面白いかもしれません。
以上、長くなりましたがモードを切り替えるキャラに関する説明を終えます。
なお、今回説明した内容について気になる点や疑問点などがあれば
掲示板 にて受け付けておりますので気軽にお尋ねください。