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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
020
ワープ技の作成
格闘ゲームと言うと、相手を攻撃する技が目立ちますが
中には攻撃とは違うタイプの技もあります。
そのうちの一つが移動専用技です。
今回は移動専用技の中から代表して
横方向のワープ技について、その作り方を説明しましょう。
作成予定:
まずは今回作成する技のイメージを確認しておきます。
コマンドを入力すると、キャラが地面に沈んで…
少し離れた位置で、地面から出てくる
なお、キャラの移動先をコントロールする方法については、ページ後半で説明します。
アニメーションの用意
ワープの処理を組む前に、
キャラのワープ動作を表すアニメーションを組んでおきましょう。
以下は、今回の処理で使用するキャラパターンになります。
※ゲーム用BMPは上記画像のリンク先にて提供しております
早速スクリプトを組んでいきます。
まずは以下のスクリプト行を追加してください。
今回は「ワープ技」という名前でスクリプト行を作成しました。
上記キャラパターン12枚をエディタに登録してください。
なお、7枚目はキャラを非表示にするための透明画像となっています。
画像のWAIT値
画像のWAIT値についてですが、
ワープ移動技は素早く動かしたいので全体的に小さい値をセットすると良いです。
( 2程度に設定しておくと良いです )
ただし、透明画像の部分だけはワープ技の移動距離にも関わってくるので
少し長めのWAITを割り当てておきます。
グラフィックの登録が完了しました。
アニメプレビューで動きを確認してください。
当たり判定の解除
グラフィックの登録が済んだので、
ここからはメインとなるワープの処理を組んでいきます。
ワープ移動する際、キャラの当たり判定がONのままだと
相手キャラの位置によっては引っ掛かってしまいます。
そこで、ワープ技中は一時的に各種当たり判定を解除しておきます。
スクリプト先頭に防御枠命令( デフォルト状態 )を追加してください。
ぶつかり判定などの判定枠が全くない状態になりました。
移動処理の追加
ワープ動作の肝( きも )となる移動の処理です。
キャラが非表示となる7番目の画像( 透明 )の手前に座標移動命令を追加してください。
今回は、キャラが前方向に向かってワープするので
X方向の移動力にプラスの値をセットしています。
続いて、透明画像の後ろに座標移動命令を追加してください。
こちらではキャラの移動力をリセットするため、移動/重力ともに0のままにしておきます。
MEMO
キャラのワープ移動量
キャラがワープ技によって移動する距離は、
キャラの移動力と、透明画像のWAIT値によって決まります。
いわゆる「速さ × 時間 = 距離」の計算です。
瞬間移動的なワープ技を表現する場合は
キャラの移動力を大きめに、
画像のWAIT値を小さめに設定すると良いでしょう。
ただし、移動力が大きくなると後述する
「各種判定を使ってキャラの移動先をコントロール」
のテクニックが使いづらくなるので注意してください。
非常にシンプルですが、これでキャラのワープ動作はいちおう完成です。
ワープ技のコマンドをキャラに登録したら、テストプレーを実行して動きを確かめてみましょう。
テストプレーで確認
テストプレーを開始します。
ワープ技のコマンドを入力すると、キャラがワープ技の動作を開始して…
ワープ移動開始。
この時、キャラの影は表示されたままです。
( 影を非表示にする方法については後で説明します )
ワープ技が完了、キャラが地面から出現します。
キャラがワープ移動を行っていることが確認できました。
※画像作成の順番が違うため必殺技ゲージの状態が前後していますが、気にしないでください
キャラが思い通りの位置に移動できなかった場合は、
再びスクリプトに戻って調節してください。
画像のWAIT値や座標移動の移動量を見直すと良いです
また、調整時はキャラの透明表示を通常グラフィックに変更するのも有効です
ここまででワープ技の基本形は完成です。
ここから先では、ワープ技の動作を改良する4つのテクニックについて
簡単に説明していきましょう。
1. 影を非表示にする
キャラの「影」スクリプトに分岐を加えます。
キャラのスクリプトを確認すると、「影」という名の行が見つかると思います。
初期状態では、何も画像がセットされていません。これは
2D格闘ツクールにデフォルトで用意されている影画像を使用する
という扱いで、ここに何らかの画像を追加することで
その画像がキャラの影として表示されるようになります。
影を非表示にするだけなら行内に ( 終了命令 ) を置くだけで良いのですが、
今回はちょうどワープ技で使った透明画像があるので、これをキャラの影に設定します。
透明画像をセットしました。
このままではキャラの影が常に非表示状態となってしまうので
デフォルト状態の影を表示する分岐も用意します。
デフォルト状態の影についてですが、 2D格闘ツクール2ndプログラムフォルダ内の
「text」というBMP画像内に影の画像があるので、これを利用すると良いです。
分岐処理とループを組んだ結果が以下のスクリプトです。
番号 | 命令 | 設定内容 |
1 | キャラ変数の値が1なら「4」へ | |
2 | 通常の影画像 | |
3 | 「1」へ | |
4 | 透明画像( 影を非表示 ) | |
5 | 「1」へ |
なお、影の表示分岐にはキャラ変数を使っています。
別途ワープ技のスクリプトに変数処理を追加してください。
ワープ移動の開始部分でキャラ変数 = 1
ワープ移動の終了部分でキャラ変数 = 0
2. 素早くワープを行う
上の方で述べた通り、ワープ移動を素早く動かすには
キャラの移動力を大きめに、移動中画像のWAIT値を小さめに
設定するのがポイントです。
しかし、移動速度の設定だけでは表現に限界があると思います。
ここで重要となってくるのが、ごまかしです。
例えば…
キャラのワープ動作中に細かく分けた( プレーヤー:ストップ命令 ) を追加して
相手の動作を若干スローモーション気味にすることで
相対的に自キャラが素早くワープしているように見せることができます。
※例では、長いWAITの1ブロックを複数に分割することで小刻みなプレーヤーストップを実現しています。
相手のスローモーションが目立ってしまう場合は、
ワープキャラのキャラ設定に「時間を操作して〜」などの
説明を加えると説得力があるかもしれません。
3. ワープ後の移動先をコントロールする
上で説明したワープ移動は、
一定の速度で決まった時間移動した先にワープする
という非常に単純なものでしたが、ここに処理を追加することで
ワープ後の移動先をある程度コントロールすることができます。
相手の前後〜ドットの位置にワープ
ワープ技として一番使い勝手の良い移動先と言えるかもしれません。
ワープ移動させる際、自キャラに攻撃判定をつけることで
相手の位置を基準としたワープを行います。
自キャラの攻撃判定が相手に触れたらワープ終了
という条件分岐を組むと良いです。
※あくまで位置判定用の攻撃枠なので、リアクション設定などは不要です。
攻撃判定の位置について
自キャラの前方に判定を置いた場合は相手キャラの手前にワープ、
後方に判定を置いた場合は相手キャラの背後にワープ、という感じになります。
※若干見辛いですが、上図ではキャラ中心軸後方に攻撃枠を設置していることがわかるかと思います。
なお、このままだと以下の場合にワープ移動の判定が失敗します。
・相手キャラがジャンプした場合
相手の当たり判定が空中にあるため、自キャラの攻撃判定が当たりません
・相手キャラが攻撃していた場合
ワープ用の攻撃判定と相手の攻撃判定が相殺するため、
予期せぬ位置でワープ終了することになります
これらの問題を回避するには、各種判定を地下に埋める方法が有効ですが
自キャラだけでなく相手キャラの側にも
別途判定を用意する必要があるのでちょっと手間がかかります。
チャレンジする場合は覚悟してください。
( 地下の判定について、詳しくは 「012 当て身投げの作り方」 を参照 )
4. 振り向き動作とキャンセル条件について
ワープ動作の結果、自キャラが相手の背後に回る可能性がある場合は
ワープ技にキャンセルを許可しない方が良いです。
なぜ問題なのか
以下はワープ技にキャンセルを許可した場合の問題点です。
自キャラがワープ技で相手の背後( 画面右側 )に回った直後に攻撃を出しています。
自キャラが相手とは反対を向いた状態で攻撃している点に注目してください。
本来であれば、
「ワープ技」 → 「相手の背後に移動したので振り向き動作」 → 「攻撃」
という流れになるはずですが、
キャンセルによって振り向き動作を飛ばしてしまったために
相手の方へ振り向くことなく攻撃を出してしまった…という状態です。
ただ、通常通りの振り向き動作をしていては せっかくワープした意味がありません。
ワープ移動する際は、短い振り向き動作を実行するように条件分岐すると良いです。
※仕組みとしては上で説明した「影」の省略と同じです
長くなりましたが、以上でワープ技の作成についての説明を終えます。
今回の説明について何か疑問点などあれば
掲示板 にて質問を受け付けておりますのでお気軽にお尋ねください。