このマニュアルについて
このマニュアルでは、ヴィジュアルスクリプトのアクション「自身をノックバック」について解説します。最後に受けた攻撃の向きを基準に、自分自身を弾き飛ばすアクションです。「敵に当たったら反対側へ吹き飛ぶ」「斜め上に打ち上げられる」といった被弾リアクションを、受けた側のヴィジュアルスクリプトだけで組めます。
ACTION GAME MAKER でのノックバックの考え方
吹き飛びには 2 つの組み方があります。
| 組み方 | どこに設定するか |
|---|---|
| 攻撃側から飛ばす | 攻撃を出した側の設定・アクション |
| 受けた側から飛ぶ(このアクション) | 被弾したオブジェクトのヴィジュアルスクリプト |
受けた側から組めると、相手が何であっても同じ反応になります。 敵の攻撃・弾・トゲ・溶岩など攻撃の出どころが増えても、被弾ステートに 1 つ置いておけば全部に効きます。吹き飛ぶ距離や速さを「やられる側のキャラクターの性質」として決められるのも利点です。
このアクションは強制移動として働きます。 「オブジェクトを移動」の方向・距離指定と同じ仕組みで、方向だけが被弾情報から自動で決まる形です。
使い方
- 被弾したときに入るステート(やられステートなど)を用意します。
- そのステートに「その他アクション追加」から「自身をノックバック」を置きます。
- 基準点・方向の算出方法・距離・速度を設定します。
アクションはステートに入ったとき 1 回だけ実行されます。 同じステートに留まっていても繰り返しません。
一度も被弾していないオブジェクトでは何も起きません。 基準にする被弾情報が無いためです。ステートへの遷移条件は「ダメージを受けた」系の条件にしてください。
設定項目
基準点の指定
吹き飛ぶ向きを計算するときの「相手の位置」をどこで見るかです。
| 選択肢 | 内容 |
|---|---|
| 最後に受けた攻撃判定 | 当たった攻撃判定の原点を基準にします(既定) |
| 攻撃者の原点 | 攻撃を出したオブジェクト本体の原点を基準にします |
「攻撃判定」は、自分にいちばん近い攻撃判定の原点が使われます。 被弾した時点で重なっているので、最も近い判定が当たった判定とみなせるためです。攻撃判定の位置が取れない場合は、攻撃者の原点にフォールバックします。
弾幕の弾のように攻撃者オブジェクトが無い攻撃では、どちらを選んでも弾の座標が使われます。
リーチの長い攻撃では選択で結果が変わります。 槍で突かれたとき、「攻撃判定」なら槍の先から離れる向きへ、「攻撃者の原点」なら相手本体から離れる向きへ飛びます。
ノックバック方向の指定
| 選択肢 | 飛ぶ向き | 主な用途 |
|---|---|---|
| 360度 | 基準点から自分へ向かう方向へ、そのままの角度で飛びます | トップビュー |
| 左右 | 基準点から見て自分がいる側へ、真横に飛びます | サイドビュー |
| 打ち上げ | 被弾した側の反対へ、指定した角度で飛びます | サイドビュー |
基準点と自分の位置がぴったり重なっている場合は、「360度」では右方向、「左右」「打ち上げ」では自分が向いている方向から攻撃されたとみなして、その逆側へ飛びます。
打ち上げ角度
「打ち上げ」を選んだときだけ出る欄です。
| 値 | 向き |
|---|---|
| 90 | 真上 |
| 45 | 斜め上(既定) |
| 0 | 水平 |
| -90 | 真下 |
左から攻撃されて 45 度なら、右上へ飛びます。 左右どちらから攻撃されたかは自動で判断されるので、角度は片方だけ指定すれば足ります。
逆方向へ移動
チェックすると、飛ぶ向きが反転します。
- 「360度」… 180 度反転します
- 「左右」… 左右が入れ替わります
- 「打ち上げ」… 左右だけ入れ替わります(上下方向は維持されます)
相手へ向かって突っ込む反撃や、吸い込まれるような表現に使えます。
距離
吹き飛ぶ距離をピクセルで指定します。既定は 0 なので、必ず値を入れてください。
移動速度タイプ
| 選択肢 | 追加で指定するもの |
|---|---|
| オブジェクトの速度 | 速度反映係数(%)。オブジェクトの移動速度に対する倍率です |
| 移動時間 | 移動時間(秒)。指定した時間で距離ぶんを移動します |
距離を一定にして速さだけ変えたいときは「移動時間」が分かりやすいです。 「0.2 秒で 80px」のように指定すれば、キャラクターの移動速度に左右されません。
オプション
| 項目 | 内容 |
|---|---|
| アニメーションを停止する | ノックバック中、アニメーションを一時停止します(やられ絵を 1 枚で止めたいとき) |
| 表示方向を移動方向と逆にする | 飛んでいく向きと逆を向きます(吹き飛ばされながら相手を見る表現) |
表示方向は既定では変わりません。 ノックバック中も元の向きを保ちます。
ノックバック中もヴィジュアルスクリプトは動き続けます。 アクションの実行やステートの遷移は止まりません。
実用例
敵に触れたら反対側へ吹き飛ぶ(サイドビュー)
- 「ダメージを受けた」で入るやられステートを作ります。
- 「自身をノックバック」を置き、次のように設定します。
- 基準点の指定: 最後に受けた攻撃判定
- ノックバック方向の指定: 打ち上げ
- 打ち上げ角度: 45
- 距離: 60
- 移動速度タイプ: 移動時間 / 移動時間: 0.2
- 「アニメーションを停止する」をオンにして、やられ絵を止めます。
- 遷移条件に「アクションの時間が経過」などを置いて、通常ステートへ戻します。
全方向へ吹き飛ぶ(トップビュー)
- やられステートに「自身をノックバック」を置きます。
- ノックバック方向の指定を「360度」にします。
- 距離と速度を決めます。
上下方向にも吹き飛ぶので、見下ろし視点ではこちらを使ってください。
吹き飛ばされながら相手を見る
- 「表示方向を移動方向と逆にする」をオンにします。
- 飛んでいく方向とは反対を向くので、そのまま相手を見ている絵になります。
無敵時間と組み合わせる
- やられステートで「自身をノックバック」と同時に、無敵の設定を有効にします。
- ノックバックが終わるまでのあいだ、追加の被弾を受けません。
無敵中は被弾情報が更新されないので、飛ぶ向きが途中で変わることもありません。
攻撃をガードしたときに少し下がる
- ガード成立で入るステートに「自身をノックバック」を置きます。
- 距離を小さく(10〜20px 程度)、移動時間を短く(0.1 秒程度)します。
- 「アニメーションを停止する」はオフにして、ガードのモーションを続けます。
注意点
- 一度も被弾していないと何も起きません。 基準にする被弾情報が無いためです。「ダメージを受けた」で入るステートに置いてください。
- 距離の既定は 0 です。 設定し忘れると、アクションは動いているのに何も飛びません。
- 記録されるのは「最後に受けた攻撃」の情報です。 被弾から時間が経ってからこのアクションを実行すると、そのときの相手の位置ではなく被弾した瞬間の位置を基準に飛びます。
- 「360度」はサイドビューだと上下にも飛びます。 横視点では「左右」か「打ち上げ」を使ってください。
- 「打ち上げ」の逆方向は左右だけ反転します。 上下を反転したい場合は、打ち上げ角度にマイナスを入れてください。
- 弾幕の弾など攻撃者オブジェクトを持たない攻撃では、基準点の選択に差が出ません。 どちらも弾の座標が使われます。
- 基準点と自分が完全に重なっていると、向きは表示方向から推定されます。 真上や真下から押しつぶされるような当たり方では、意図しない側へ飛ぶことがあります。
- ノックバック中もヴィジュアルスクリプトは止まりません。 移動を受け付けたくない場合は、やられステート側で入力を無効にする設定を併用してください。
- 強制移動なので、壁があればそこで止まります。 距離ぶん必ず動くわけではありません。
- ギミック(トゲ・溶岩)側にノックバックの設定はありません。 ギミックで吹き飛ばしたい場合も、受ける側にこのアクションを置いてください。