2D格闘ツクール2nd 完全攻略

■ チュートリアル


■ コマンド解説


■ テクニック解説
 001 特殊なキャラクターセレクト
 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 ハイジャンプの作成


■ バグ・よくあるミス


■ テスト時のチェック項目


■ 解説用データ ダウンロード


051

途中でKOしない乱舞技

一部の格闘ゲームには乱舞技というものがあります。

乱舞技
乱舞技のイメージ
技を発動後、「つかみ」の攻撃がヒットすると
相手の動きをロックして一方的に攻撃を複数回当てるというもの。
モーション自体は打撃系に見えるものが多いですが、技の性質としては投げ技に近いです。
格闘ツクールでも見た目が打撃風の投げ技として組むことになります。
(当然、技のダメージもコンボ補正のかからない固定値となります)

------------------------------------------------------------
乱舞技は既存モーションの組み合わせるなど
手軽に迫力のある演出を作れるということで試してみたくなる技の1つですが
ダメージ発生の関係上、技の演出をきっちり最後まで見せるには多少工夫が必要になります。

このページでは、技演出の途中で相手をKOしない乱舞技の作り方
について説明したいと思います。

−ページ内目次−

1 現状の確認

2 処理の考え方

3 スクリプトの作成

4 攻撃側のスクリプト編集

5 やられ側のスクリプト編集

6 作成した処理の確認

7 補足情報

8 まとめ


※各項リンクが貼ってあるので上手く活用してください。


現状の確認
処理を組む前に、まずは現状を確認しておきます。

現在、自キャラには 「乱舞技」 という必殺技が用意されています。
乱舞技のアニメーション
最初の攻撃がヒットすると、3回の連続キック、とどめのアッパー攻撃が発生する
というものです。
技の攻撃力について
最初の攻撃はつかみ判定用なので 0
3回の連続キックはそれぞれ 50 、とどめのアッパー攻撃は 200 としています。


実際にこの技を相手に使ってみます。
乱舞の連続攻撃がヒットしている
最初の攻撃がヒットすると上で設定した連続攻撃が発生、相手に大ダメージを与えます。

続いてとどめのアッパー攻撃が発生、そのまま相手をKOします。
フィニッシュ攻撃がヒットしたところ
一連の攻撃をきっちり当てるのでインパクトが有り、これぞ乱舞技の醍醐味という気がします。

------------------------------------------------------------
相手の体力が残り少ない場合に乱舞技を当てると…
次に、相手の体力が残り少ない場合をテストしてみます。

前回のテスト同様、連続攻撃が発生しますが…
乱舞の途中で相手をKOしてしまう
とどめの攻撃が入る前に相手をKOしてしまいます。
( スクリプト変更などで乱舞のアニメーションは続きますが、KO時の演出が始まってしまいます )

勝負には勝ちましたが、とどめの攻撃は空振り。
どうもスッキリせず中途半端な印象が残ります。


処理の考え方
乱舞攻撃の途中で相手をKOしないためにはどうすれば良いか?

残念ながら格闘ツクールの攻撃判定には「相手をKOしない」というオプションは有りません。
つまり、攻撃側の設定だけで相手をKOしない処理は不可能。
攻撃側とやられ側両方で「KOしない」という特殊な状況を作ることになります。

------------------------------------------------------------
やられ側に必要な処理
「負け」発生時、変数の値をチェックして条件を待たしていれば
「負け」をキャンセルしてライフを小回復する
 というもの。
やられ側における条件分岐の流れ
一時的な不死身化、と考えるとわかりやすいかもしれません。

------------------------------------------------------------
攻撃側に必要な処理は以下の通りです。
乱舞攻撃の成功時、変数値を変更して「KOしない」のスイッチをONに。
この状態だと相手にダメージが入ってもKOすることがありません。
img_各攻撃の属性「KOするかどうか」について
連続でダメージを当てていきますが、ラストの一撃は相手をKOできる攻撃なので
この攻撃の手前で変数値をリセット、「KOしない」のスイッチをOFFに戻しておきます。


スクリプトの作成
実際に、上で説明した処理を組んでいきましょう。

まずは今回の処理で使用する変数の番号を決めておきます。
攻撃側〜やられ側、両者にまたがる処理となるので
キャラ間で共通に扱える システム変数 が有効です。

 なお、システム変数を節約したい場合はキャラ変数でも代用可能です。
 ただし、専用のやられ動作を用意するなど若干面倒です。
 詳しい仕組みについては後で説明します。


例では システム変数M 「KOしない」の判定変数として使用します。


攻撃側のスクリプト編集
先に変更が楽な攻撃側からスクリプト編集していきましょう。

以下は乱舞技のキャラグラフィックです。
※内容としては通常攻撃の組み合わせとなっています。

乱舞技
<必殺キックA>
キャラクター_羽根_必殺キックA

<弱キック立ちA>
キャラクター_羽根_弱キック立ちA

<アッパー攻撃A>
キャラクター_羽根_アッパー攻撃A

負け
キャラクター_負けA
※上記画像はPNG画像となっております。
 ゲーム内に読み込む際はBMP形式に変換してお使いください。


------------------------------------------------------------
現状の乱舞技スクリプトはこちらになります。
変更前の乱舞攻撃スクリプト
最初に説明した通り、スクリプトの構成は投げ技のそれに近く、
「乱舞技(始動」「乱舞技(メイン)」「乱舞技(ループ」の3行に分かれています。

以下、細かいスクリプトの内容について説明しておきます。

 既に乱舞技が組み終わっている場合は読み飛ばしても問題ありませんが、
 一通り目を通しておくと、続く改良案についても理解しやすいと思います。
 ※なお、大部分は乱舞技の見た目に関する処理なので、見るべき点はあまり無いかもしれません。
変更前の乱舞攻撃スクリプト


3行のスクリプトを見ればわかる通り、細かく防御枠命令を置いています。
これは自キャラがステージ端で相手に乱舞技をかけた場合に

相手キャラとの位置がずれてしまうのを防ぐためです。
また、動作の中にスクリプト移動や着地の要素があるので

防御枠命令もその都度再設定しています。

なお、この設定でもステージ端の問題が解決できない場合は
自キャラの手前にぶつかり判定を持ったOBJを出すと良いです。

------------------------------------------------------------

上の2行では動作の中に着地の要素があるので、「着地したら」の分岐命令を置いています。
少し見づらいですが、矢印で着地発生時の移動先を示してあるので参考にしてください。


------------------------------------------------------------

1行目の乱舞技(始動)では、乱舞のつかみが成功したかどうかを判定するために
「攻撃が当たったら」の分岐を用意しています。
ここで攻撃が当たると2行目の乱舞技(メイン)に処理が移動します。


その直後で判定と条件分岐設定の解除を行っている点にも注意してください。

------------------------------------------------------------

2行目ではループ命令を使って乱舞技(ループ)を3回呼び出しています。
乱舞技のように特定の攻撃モーションを繰り返すような場面では
ループ処理を使ってスクリプトの省略をすると良いでしょう。


------------------------------------------------------------

2〜3行目では画像変更・スクリプト変更命令を使って
乱舞技の攻撃を受ける相手の動作を設定しています。
ページ冒頭でも述べた通り、このあたりの処理は投げ技の組み方と同じです。



また、相手へのダメージ発生はゲージ変更命令で行っています。
これも投げ技の組み方を知っていれば問題なく組めると思います。


------------------------------------------------------------
ここに「KOしない」変数の処理を追加するのですが、
どのタイミングで変更するかを考えるため、攻撃動作の流れをきちんと確認しておきましょう。

1.自キャラが「乱舞技(始動」を出すd?」を出す
2.「乱舞技(始動」」が相手キャラにヒットする
3.「乱舞技(始動」」が成功したので、自キャラは「乱舞技(メイン)」に入る
4.「乱舞技(メイン)」の前半、自キャラは「乱舞技(ループ)」にて連続攻撃を出す
5.「乱舞技(メイン)」の最後、自キャラはフィニッシュ攻撃を出す


相手キャラを不死身化するのは 4 の連続攻撃を出す手前。
逆に不死身化を解除するのは 5 のフィニッシュ攻撃を出す手前。
なので、スクリプト上でもこれらのタイミングに合わせて変数処理を行います。

以下はスクリプトを変更した結果です。
変更後の乱舞攻撃スクリプト
基本的な流れは変わっていませんが、 1ブロック目・11ブロック目の変数処理に注目してください。
1ブロック目では「KOしない」をONに、11ブロック目では「KOしない」をOFFにしています。
後者の設定を忘れると、相手キャラが不死身化したままになってしまうので注意してください。

 技演出の途中でタイムアップする、というパターンも考えられるので
 念のため、ラウンド開始時に変数を初期化しておくと良いです。



やられ側のスクリプト編集
随分話が長くなりましたが、次にやられ側のスクリプト編集に入ります。

攻撃側に比べると細かい調節が重要になってくるので注意してください。
処理を組むための要素を分解すると、以下のようになります。
1.「負け」動作をキャンセルしてライフを1以上にする。
2.上記処理を行うかどうかの判断をシステム変数で行う。


------------------------------------------------------------
まずは の処理から始めましょう。
新しく「KO回避」というスクリプトを作成します。
これはキャラが「KOしない」の条件を満たす時に発生する動作です。

 基本的な考え方については、テクニック032 復活する技の作成で説明していますので
 気になる場合はチェックしてください。


以下、具体的なスクリプトの内容になります。
「KO回避」行のスクリプト
行頭で自身のライフを +1 している点に注目してください。
このスクリプトがスタートした時点ではキャラのライフは0となっています。
KOしないためには最速のタイミングでライフを1以上にする必要があるので
ライフ処理はスクリプト行頭にて最優先で行います。

また、ここでは余計なバグを避けるため一度キャラを着地させています。
3ブロック目で「着地したら」の条件分岐をセット、
4ブロック目で用意した下方向への移動命令によってキャラが着地すると
6ブロック目の画像表示に移動します。

 これはあくまで念のための処理なので、実際に処理を組んでみて
 特に問題が無かった場合はこの着地の手順は外してしまってもOKです。

それ以降の処理ですが、
難しい処理は行わずキャラのやられ画像を1枚表示して処理を終えています。
もっとわかりやすいのけぞりモーションを入れたいと思うかもしれませんが
ここではそういう具体的な「動き」の部分は組みません。

 再び攻撃側のスクリプトに戻ります。
 攻撃側のスクリプトを再確認
 一覧を見ればわかるように
 相手へのダメージ発生「GC」と、やられ動作設定「RC」「RP」は別々に行っています。
 そのため、KO回避の中でやられのモーションをわざわざ出す必要は無いのです。
 ※今回の処理で行うのはあくまで「負け」のキャンセル、通常のやられ動作とは別物として考えてください。

MEMO

キャラ表示位置のずれについて
実際に KO回避 の動作が発動した時にわかると思いますが
やられ側のキャラ表示位置が変にずれたりする場合があります。
乱舞の途中で相手をKOしてしまう
※上は「負け」動作の例ですが、相手キャラの位置が下にずれていることがわかると思います。

これは恐らく、画像変更命令で設定されたキャラ表示位置を維持したまま
KO回避 のキャラ表示が行われるためだと思います。

これが気になる場合は、
あらかじめ KO回避 行でのキャラ表示座標をずらしておくと良いです。

今回作成した処理でも、キャラの表示位置を上記画像の通りずらしています。
また、X反転のオプションもONにしています。
この問題については、必ずこうしておくという対策があるわけではなく
発生したずれの状況に合わせて個別に調節していく感じになると思います。

------------------------------------------------------------
次に 2 の処理、
負け動作のキャンセルを行うかどうかをシステム変数で判断する という部分です。
「負け」 スクリプトの先頭に変数処理を追加、
1 で作成した「KO回避」動作への分岐を用意してください。

以下に 「負け」 スクリプトを載せておきます。
「負け」スクリプト
画像命令が複数並んでいますが、ここで重要なのは1ブロック目の変数命令のみです。
その設定内容は以下の通りです。
変数命令の設定内容
ここでセットする変数の番号を間違えないよう注意してください。


作成した処理の確認
処理が組み終わったら、再びテストプレーを実行して動作を確認しましょう。

相手の体力が残り少ない状態で乱舞技を当ててみます。
乱舞攻撃がヒットするが相手はKOしない
今度は乱舞技の途中で相手をKOすることはありません。
画面左上を見ればわかる通り、相手キャラはライフ1状態で踏みとどまっています。
( 画面上では確認し辛いですが、相手キャラの体力はギリギリ1でふんばっています )

フィニッシュ攻撃ではきっちり相手をKO。
フィニッシュ攻撃できっちり相手をKO
キリよく乱舞技の演出を決めることが出来ました。


補足1:システム変数を使わない場合の処理
ここでは補足情報としてシステム変数を使わない場合の
処理の組み方について簡単に説明しておきたいと思います。

上の説明では攻撃側でシステム変数をセットし、
やられ側がその変数値を参照することで「KOしない」という分岐処理を組みました。

今回説明する方法では攻撃側が相手キャラに専用のやられ動作を取らせ、
やられ側はそのやられ動作内で「KOしない」判定用のキャラ変数をセットします。
また、「KOしない」状態の解除も同様にして専用のやられ動作を介して行います。

 やられ動作の見た目は通常のやられ動作と同じで構いませんが
 変数関連の処理が入っているので、あくまで演出専用のやられ動作として別に用意してください。


処理内容を図で示すと以下のような感じになります。
キャラ変数を使った処理
スクリプト変更命令で相手を特定のやられ動作に変更するのは前回の通りですが、
その飛び先としてキャラ変数処理を入れたスクリプトを指定しています。

------------------------------------------------------------
補足2:復活する技を使う相手がいる場合の処理
復活する技、いわゆるリザレクションを使うキャラにこの乱舞技を使う場合。
キャラ自身がリザレクションに成功してもKO判定が覆らず、
そのままラウンド終了に入ってしまうことがあります。
→復活する技について詳しくは、 テクニック032 復活する技の作成 をご覧ください。

 今回説明した「KOしない攻撃」の部分では問題ありませんが、
 ラストの攻撃で相手にダメージを与えた際
 リザレクションによる復活ではKO判定を止められない という現象です。

この問題が気になる場合は、乱舞技のラストで発生するダメージを
ゲージ変更命令 ではなく 通常の攻撃判定 に変えることで回避できます。
具体的には、以下のような感じです。
リザレクション対策
まず、スクリプト命令で相手を 「ふっとび」 などやられ判定のある動作に変えます。
ふっとび状態の相手キャラにはやられ判定がセットしてあるので、
そこに通常攻撃同様に攻撃判定を当てます。
( 念のため攻撃判定を大きめにしておき、ガード不能オプションも付けておくと良いでしょう )

復活する技についてのページでも説明しましたが、
スクリプト変更命令とダメージ発生( 攻撃判定 )の間に
画像命令を1つ挟んでおくことを忘れないようにしてください。
※これが無いと、相手キャラの復活自体が発生しなくなるので注意が必要です。


まとめ
今回は乱舞技も込みで説明したので少し話がややこしくなりましたが、
特定の場面で変数を使って条件分岐させるという基本的な考え方は変わりません。
もうひとつ。
相手キャラに作用するような処理を組む際は
攻撃側だけでなくやられ側でも処理を組む必要がある。

この考え方も色々と応用できる場面が多いので覚えておいて損は無いと思います。

実際にゲームに組み込む際はどちらかと言うと後回しにした方が良いです。
上の文言にもありますが、
こういう技は攻撃を受ける可能性がある全キャラに対して処理の追加が必要な上、
貴重な変数枠を消費してしまうので 他の処理を組み終えた後に余裕があれば〜
程度に考えておいた方が良いです。

------------------------------------------------------------
最初の方でも述べた通り、乱舞技は上手く組めば非常にかっこ良い演出技と言えます。
今回のテクニックを活用してぜひゲームに組み込んでみてください。

 ただし、演出を長くし過ぎないようにだけ注意です。
 対戦ゲームを意識する場合は特にゲームテンポを崩さないよう
 適度な長さの技演出できっちりまとめると良いです。


以上、長くなりましたが途中でKOしない乱舞技についての説明を終えます。
なお、今回説明した内容について気になる点や疑問点などがあれば
掲示板 にて質問を受け付けておりますので気軽にお尋ねください。

トップページへもどる

inserted by FC2 system