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
■ テスト時のチェック項目
■ 解説用データ ダウンロード
031
投げ技の作成
格闘ゲームを作る上で欠かせない要素として、投げ技があります。
打撃戦のみだとどうしてもガードを崩し切れないために
対策として考えられた「相手をつかみ、投げる技」です。
その性質上、一時的に相手側キャラの動作をコントロールすることになるため
技の仕組みも他の打撃技などとは少し異なっています。
今回は2D格闘ツクールに用意された機能を使って
標準的な投げ技を作る方法について説明していきたいと思います。
なお、今回は説明を進めやすくするため
投げる側・投げられる側ともに同じキャラでテストしていきます。
作成する内容の確認
まずは今回作成する動作について、その動きを大まかに確認しておきましょう。
投げ技のコマンドを入力すると…
キャラが相手を掴もうとします。
ここでうまく相手を掴むと…
相手を引き寄せて、
前方に叩きつけます。
キャラの動きをアニメーションにすると、だいたい以下のような感じです。
各種グラフィックを登録
投げ技の処理を組む前に、投げ技関連のグラフィック登録その他
細々とした動作設定を済ませておきます。
------------------------------------------------------------
投げ側の動作
以下は、今回のスクリプトで使用する投げ側の動作グラフィックです。
※ゲーム用BMPは、上記画像のリンク先にて提供しております。
スクリプト解説
番号 | 命令 | 設定内容 |
1 | やられ・ぶつかりをONに | |
2 | 1番目の画像、 WAIT = 2、 中心軸 11, 10 | |
3 | 2番目の画像、 WAIT = 2、 中心軸 11, 10 | |
4 | 3番目の画像、 WAIT = 2、 中心軸 16, 10 | |
5 | 攻撃が当たったら、10へ | |
6 | 攻撃力0、 「ガード不可」 | |
7 | 4番目の画像、 WAIT = 2、 中心軸 22, 10 | |
8 | 4番目の画像、 WAIT = 55、 中心軸 22, 10 | |
9 | ||
10〜15 | 5〜10番目の画像、 相手を引き寄せる動作 | |
16 | 着地したら、23へ | |
17 | 移動X=1.3、 Y=-6.9、 重力Y=0.5 (代入) | |
18〜22 | 11〜15番目の画像、 22ブロック目はWAIT=0 | |
23〜25 | 16〜18番目の画像、 着地後の動作 | |
26 |
スクリプト前半、1 〜 9ブロック目では
相手を掴もうとする動作を行っています。
ここで攻撃がヒットすると10ブロック目以降の相手を投げる動作を実行します。
また、投げ動作開始後は防御枠を設定していない点に注意してください。
これは、設置系の技などがあるゲームの場合
投げ技中にそれらがヒットして動作が中断される可能性があるためです。
16〜17ブロック目では投げ技のモーションに合わせて
座標移動と着地判定を追加しています。
後で相手キャラをつかんで一緒に移動するという処理を追加します。
------------------------------------------------------------
投げられ側の動作
次に投げられる側のグラフィックを作成します。
この時、上で用意した投げ技のグラフィックを
下に置いて描いていくとポーズを合わせやすいです。
( グラフィックソフトのレイヤー機能を活用してください )
なお、キャラのダウン動作部分は他でも使う可能性が高いので、
後で別のモーションとして用意します。
以下は、投げられる側の動作グラフィックです。
※ゲーム用BMPは、上記画像のリンク先にて提供しております。
グラフィックが作成できたら、ゲーム内に読み込みます。
スクリプトに、投げリアクションという行を追加してください。
今回は投げ側・投げられ側ともに同じキャラでテストするので
同じキャラのスクリプト内に処理を追加します。
行内に画像を登録しました。
なお、この行自体が実際に実行されることはありませんが
投げリアクション用の画像を1箇所にまとめておくと
後でグラフィック確認・変更などがしやすいので、この行は残しておくと良いでしょう。
------------------------------------------------------------
ダウンの動作
次は、キャラのダウン動作を作成します。
以下は今回使用するキャラグラフィックです。
※ゲーム用BMPは、上記画像のリンク先にて提供しております。
スクリプトは以下のように設定します。
番号 | 命令 | 設定内容 |
1 | 1番目の画像、 WAIT = 2、 中心軸 5, 11 | |
2 | 2番目の画像、 WAIT = 2、 中心軸 4, 12 | |
3 | 着地したら、9へ | |
4 | 移動X=2.6、 Y=-4.6、 重力Y=0.5 (代入) | |
5 | 3番目の画像、 WAIT = 2、 中心軸 4, 7 | |
6 | 4番目の画像、 WAIT = 2、 中心軸 9, 4 | |
7 | 5番目の画像、 WAIT = 2、 中心軸 2, 6 | |
8 | 6番目の画像、 WAIT = 0、 中心軸 0, 12 | |
9 | 7番目の画像、 WAIT = 2、 中心軸 0, 15 | |
10 | 8番目の画像、 WAIT = 2、 中心軸 0, 14 | |
11 | 9番目の画像、 WAIT = 2、 中心軸 -1, 13 | |
12 | 10番目の画像、 WAIT = 38、 中心軸 -1, 15 |
ここでもキャラのぶつかり判定などは設定していません。
ダウン時のバウンドを表現するために、
4〜5ブロック目で座標移動と着地判定を入れている点に注意してください。
( 着地後は、スクリプト後半9ブロック目以降を実行します )
また、今回は投げ技と投げられる側の動作がテーマなので
キャラの起き上がり動作などは省略しています。
これで、「投げ技A」「投げリアクション」「ダウン動作」
という投げ技に関わる3つのスクリプトが用意できました。
投げ技の動作指定
ここからはいよいよ投げ技の設定に入ります。
「投げ技A」行に移動してください。
既に相手を投げるモーションが用意されているので
ここに相手側の投げられ動作指定を追加していきます。
普通に考えれば、投げられ側のキャラに「投げられA」などの
スクリプトを作ることになりますが、それだと非常に手間がかかります。
自キャラと相手キャラの位置を合わせるのは難しいですし、
各キャラが固有の投げ技2つを持ったゲームの場合は
全てのキャラについて全キャラ数×2の投げられ動作を用意しないといけません。
幸い2D格闘ツクールには投げリアクションという機能があるので
これを利用して効率的に投げられ動作を用意することが出来ます。
------------------------------------------------------------
投げリアクションの登録
投げリアクションの設定は、やられリアクション同様に
いくつかのステップに分かれています。
1. ゲームシステム側での投げられパターンの定義
2. キャラ側にて、投げられパターンに画像を登録
上から順に説明していきます。
------------------------------------------------------------
1. ゲームシステム側での投げられパターンの定義
まずはゲーム全体で使用される投げパターンを定義します。
「ゲームシステム」-「共通投げリアクション」 に移動してください。
画面左の一覧には登録した投げリアクションが並んでいきます。
今回用意した投げられのグラフィックは8枚なので、8つのリアクションを定義することにします。
( 1リアクションに対して画像1枚、というルールです )
リスト上をマウス右クリックしたら、新規「基本形」作成を選んでください。
名前入力欄が表示されるので、適当に名前を決めてください。
ここではデフォルト名である「共通形 1」にしています。
設定としては以上で、画像の登録などは別の場所で行うことになります。
同様にして、8つのリアクションを揃えてください。
全部を揃えると、下のような感じになります。
これで、投げリアクションの定義が完了です。
------------------------------------------------------------
2. キャラ側にて、投げられパターンに画像を登録
上の方でエディタに読み込んだ投げられのグラフィックを
1.で用意した定義に割り当てていきます。
編集するキャラを選んだら、「キャラクター」-「投げリアクション」へ移動してください。
リストには1.で定義した投げリアクションが並んでいます。
画面右上を見ると、 イメージ番号 と 座標入力欄 が確認できます。
デフォルト状態では、どのリアクションも
イメージ番号: 0、 座標: 0, 0 となっているので、ここを変更していきます。
イメージ番号を、上で登録した画像の番号に変更してください。
( 忘れた場合は「投げリアクション」のスクリプト行を確認すると良いです )
座標設定についてこれと言った決まりはありませんが、
キャラの中心を縦の中心軸が通るように…
キャラ足元に横の中心軸が来るようにすると良いでしょう。
だいたいこのような感じになります。
なお、極端に体格差のあるキャラが混在するゲームの場合は
キャラクターが相手につかまれるであろう箇所( キャラクターの肩や腰など )に
縦横の中心軸が来るように位置合わせしておくとズレが発生しにくいです。
※投げリアクションによる投げ技では、キャラ共通で座標設定を行うので注意してください。
以下に参考として、8つのリアクションの座標設定をまとめておきます。
共通形 1 | 中心軸 -41, -164 |
共通形 2 | 中心軸 -83, -135 |
共通形 3 | 中心軸 -101, -130 |
共通形 4 | 中心軸 -69, -79 |
共通形 5 | 中心軸 -50, -162 |
共通形 6 | 中心軸 -50, -126 |
共通形 7 | 中心軸 -70, -107 |
共通形 8 | 中心軸 -93, -103 |
以上で、投げリアクションの登録が完了です。
キャラのスクリプトに戻って、投げ技の設定を再開します。
投げられ動作 = 投げリアクションの指定
「キャラクター」-「技」の「投げ技A」行に移動、10ブロック目を表示してください。
ここはキャラが相手を掴んだ瞬間になりますので、
それに対応した相手側グラフィックを置きます。
マウス右クリックメニューから
「作成 > ヒットした相手を操作」-「座標・画像変更」 を選択してください。
RC 座標・画像変更の設定メニューが表示されます。
各項目について簡単に説明します。
相手座標: 相手のキャラをどの位置に表示するかを設定します。 投げ技を行うキャラのポーズに合わせて調整してください。 投げリアクション形指定: 上のほうで設定した投げリアクションの中から、 表示したいパターンを選択します。 奥行き: 相手キャラの表示奥行きを選択します。 「奥」を選択すると、自キャラの奥に相手キャラの 画像が表示されるようになります。 左右反転、上下反転: 相手キャラのグラフィックを反転表示にすることが出来ます。 回転動作の入る投げ技などで使うと効果的です。 同期: 相手キャラが、自キャラの動きに同期して動くようになります。 「相手を掴んだままジャンプして…」のような技を 表現したい場合に有効です。 サンプル表示相手設定: 表示する相手キャラを変更します。 これはゲーム内容に影響を与えるものではなく、 あくまでエディタ上で編集する際の設定になります。 |
------------------------------------------------------------
リアクション指定を進めていきます。
まずは、サンプル表示相手設定で
さっき投げリアクションを設定したキャラを選択してください。
ここでは「p1」というキャラ(投げ側と同じ)を選択しました。
それが出来たら投げリアクション形指定をクリック、一覧から「共通形 1」を選択します。
相手キャラが編集画面に表示されます。
同キャラなので少しわかりにくいですが、
投げリアクションで指定した画像が呼び出されています。
( 矢印で示したキャラに注目してください )
相手キャラを掴んでいる感じが出るよう
「奥行き」オプションにて「奥」を選択、「相手座標」で表示位置を調整します。
同様にして、投げ技のスクリプトを組んでいきます。
以下はその大まかな内容です。
※スクリプト全体ではなく、一部抜粋である点に注意
番号 | 命令 | 設定内容 |
10 | 共通形 1、 奥行き=奥、 相手座標 90,-8 | |
11 | ||
12〜21ブロック目は、 表示する投げリアクションを変えながら10〜11同様の設定が続く |
||
22 | 着地したら、32へ | |
23 | 移動X=1.3、 Y=-6.9、 重力Y=0.5 (代入) | |
24 | 共通形 7、 奥行き=奥、 「同期」ON、 相手座標 90,-8 | |
25 | ||
26 | 共通形 8、 奥行き=奥、 「同期」ON、 相手座標 -4,-167 | |
27 | ||
28 | 共通形 8、 奥行き=奥、 相手座標 88,-11 | |
29 | ||
30〜 |
24、26ブロック目で「同期」オプションをONにしている点に注目してください。
これは、自キャラの前方ジャンプに合わせて 相手キャラを移動させるための設定になります。
ここで「同期」なしだと、相手キャラを置いてけぼりにして
自キャラのみがジャンプすることになるので注意してください。
また、「ブロックの追加によって着地判定の飛び先指定などにズレが起きていないか?」
も必ずチェックするようにしてください。( 上記表だと、22ブロック目の部分 )
------------------------------------------------------------
ここまでで、自キャラと相手キャラの「からみ」部分が完成です。
次は、仕上げに相手キャラを「ダウン動作」に変更する設定を追加します。
行内 30ブロック目に移動したら、マウス右クリックメニューから
「ヒットした相手を操作」-「スクリプト変更」 を選択してください。
RP 相手:スクリプト変更の設定メニューが表示されます。
並んでいる項目はRC 座標・画像変更のものに近いです。
以下、各項目の説明です。
相手座標: 相手を表示する位置の指定です。 ここで設定した座標にて、 相手は指定されたスクリプトを実行します。 相手の設定: 相手に実行させるスクリプトを選択します。 奥行き: 相手キャラを表示する奥行きを指定します。 左右反転: 相手キャラの表示を左右反転します。 |
早速「相手の設定」で「ダウン動作」を選びたいところですが、
現時点では、まだ一覧に「ダウン動作」は見当たりません。
「相手:スクリプト変更」命令で指定できるのは、
共通リアクションに登録されたものだけです。
そのため、各種ガード・やられ動作同様に
「ダウン動作」も共通リアクションとして定義する必要があります。
なお、既にダウン動作のリアクションが定義済みである場合は
以下の説明を読み飛ばしてもらって構いません。
説明を読み飛ばす場合は こちら へ。
------------------------------------------------------------
共通リアクションの設定も、投げリアクション同様いくつかのステップに分かれます。
1. ゲームシステムにて共通リアクションの定義
2. キャラのリアクション設定にてスクリプト割り当て
3. キャラのスクリプト作成
今回、3.については既に完了しているため
1〜2について設定していきます。
------------------------------------------------------------
ここではリアクション関連の細かい説明は省いて、
淡々と設定内容だけ述べていきます。
共通リアクションについて、詳しくは
チュートリアル015「リアクション」 を参照してください。
1. ゲームシステムにて共通リアクションの定義
「ゲームシステム」-「共通リアクション」に移動、
新しく「ダウン動作」というリアクションを定義してください。
2. キャラのリアクション設定にてスクリプト割り当て
ダウン動作を設定したいキャラを選択した状態で「キャラ」-「リアクション設定」に移動、
「ダウン動作」の行にさっき作成した「ダウン動作」スクリプトを割り当てます。
------------------------------------------------------------
以上で「ダウン動作」の設定が完了です。
RP 相手:スクリプト変更の設定を再開してください。
相手の設定で「ダウン動作」を選択することが出来ました。
座標指定など、その他の設定については上記画像を参考にしてください。
------------------------------------------------------------
投げ技のダメージ指定
相手の動作指定が済んだら、次のブロックに「GC ゲージ変更」命令を追加してください。
ここでは、ダウン動作の直後で相手のライフを-30しています。
もちろんダウン動作のスクリプト内でライフ変更することも可能ですが
投げ技のスクリプト(攻撃側)で設定しておくと
投げ技ごとに異なるダメージを設定することができます。
※ライフ変更命令によるダメージ表現では、ライフ関連の各種補正がかからないので注意してください。
アニメプレビューウィンドウで動きを見て問題が無ければ、
これで投げ技の設定が一通り完了です。
投げ技のコマンド設定が済んだら、テストプレーで処理を確認してみましょう。
テストプレーで処理を確認
ページ冒頭同様、処理を見ていきます。
投げ技のコマンドを入力してみると…
相手をつかもうとする動作を行います。
ここで相手をうまくつかめなかった場合は、投げ側に隙の動作が発生します。
相手をうまくつかめた場合は…
投げ技を行います。
この時、投げられた相手は地面にてダウン動作を行います。
以上の結果から、投げ技の処理がうまく動いていることが確認できました。
他のキャラでの投げ技設定
ここまでで投げ技の基本的な処理は完成していますが、
今のところ投げ技が有効なのは投げ動作を作成した1キャラのみです。
ここからは、他のキャラが相手でも投げ技が成立するよう
設定追加の手順について補足的に説明していきます。
------------------------------------------------------------
作成する内容
上図キャラクター( 仮に「p2」とします )に対して投げ技が効くようにします。
------------------------------------------------------------
新しく用意するもの
投げられ側のキャラグラフィック
ダウン動作のキャラグラフィック
※ゲーム用BMPは、上記画像のリンク先にて提供しております。
これらのグラフィックを用意する際は、1体目に作成したキャラの
動作グラフィックを参考にして作成すると良いです。
上記例では、1体目キャラのグラフィックを下敷きにして
2体目キャラのポーズを設定しています。
------------------------------------------------------------
設定開始
グラフィックの準備が出来たら、早速設定を進めていきましょう。
設定するキャラを選び、「キャラ」-「技」に移動してください。
ここでは、キャラ「p2」を選択しました。
1体目の時と同じように「投げリアクション」行を追加、
順番に投げられの動作グラフィック8枚を登録します。
スクリプトの作成がめんどうな場合は、
設定済みのキャラクターからスクリプトをコピーするという手もあります。
※ただし、画像番号やスクリプト移動先の変更・確認は必要です。
次は「ダウン動作」です。
同じように行を追加、グラフィックを登録してください。
一連のグラフィック登録が済んだら、画像やスクリプトの割り当てに入ります。
まずは投げリアクションの画像登録です。
「キャラ」-「投げリアクション」に移動してください。
今回も画像の番号は全て 0 となっているので、
さっき登録した画像の番号に変更していきます。
また、画像の座標設定についてですが
1体目キャラの投げリアクションと比較しながら位置合わせすると良いです。
※ショートカットキーによるキャラ選択切り替えを活用するとスムーズに作業が進みます。
MEMO
キャラ選択切り替えのショートカット
"A"キーで、キャラ一覧上のカーソルを上に移動
"Z"キーで、キャラ一覧上のカーソルを下に移動
キャラ選択を頻繁に切り替える場面は
少ないかもしれませんが、覚えておくと役立つかもしれません。
続いて(通常の)リアクション設定です。
「キャラ」-「リアクション」に移動してください。
一覧を見ると、既に「ダウン動作」の行があるので
ここに「ダウン動作」スクリプトを割り当てます。
------------------------------------------------------------
以上で設定完了です。
テストプレーで動作を確認してみると…
投げ技が相手にヒット、別のキャラ相手でもうまく投げ飛ばすことが出来ました。
手軽に設定、とは行きませんが
各種定義設定などが必要だった1体目キャラに比べると
格段に少ない作業量で投げられの設定が済んだと思います。
まとめ
投げリアクションの設定など、最初は手間取るかもしれませんが
慣れてくると投げリアクション機能のありがたみが徐々にわかってくると思います。
投げられのパターンが増えてくると、
表現できる投げ技のバリエーションも広がるので、
うまく活用して迫力満点の投げ技を作ってみてください。
以上、長くなりましたが「投げ技の作成」に関する説明を終えます。
今回の内容について何かわからない点・疑問点などあれば
掲示板 にて質問を受け付けておりますので、気軽にお尋ねください。