第二章 演出と手応えNo.007
ノックバック
Knockback別名 吹き飛ばし、押し戻し
概要
攻撃が当たった相手を攻撃から離れる向きに押し戻す仕組み。相手が攻撃の勢いで後ろへ動くので当たった手応えが出て、攻撃した側と受けた側のあいだに間合いが開く。押し戻さないと、当てた敵はその場から動かず、敵に触れたプレイヤーは触れたままになって続けてダメージを受けることがある。
使われる場面
- 剣や拳で敵を攻撃する場面
- 当たった敵を後ろへ押し戻す。敵が攻撃の勢いで動くので、当たった手応えが出る。押し戻した分だけ間合いが開き、次の攻撃を出すか下がるかを選ぶ時間ができる。
- 敵に触れるとダメージを受けるゲーム
- ダメージを受けたプレイヤーを敵から離れる向きに押し戻す。敵と触れたままにならないので、続けてダメージを受けずに済む。
- 強さの違う攻撃があるゲーム
- 強い攻撃ほど遠くへ押し戻す。飛ぶ距離の違いで攻撃の重さの違いが伝わる。
- 大きな敵や重い敵
- 押し戻しを小さくするか、なくす。同じ攻撃を当てても動かしにくいことで、相手の重さが伝わる。
- 敵を壁際や穴へ追い込む遊び
- 押し戻しで敵の位置を動かせるので、続けて当てて壁際へ追い込んだり穴へ落としたりする遊びを作れる。
判断基準
| こういうとき | こうする |
|---|---|
| 攻撃を当てても敵がその場から動かず、当たった気がしない | ノックバックを入れる。体の幅の 0.5〜2 倍ほどの距離を 0.1〜0.25 秒(毎秒 60 回の更新で 6〜15 フレーム)かけて押し戻すところから試す。 |
| 敵に触れたまま、続けてダメージを受ける | プレイヤーにもノックバックを付け、敵から離れる向きに押し戻す。押し戻した距離を敵が詰めるまでの時間が、プレイヤーが立ち直って離れ始めるまでの時間より長くなる距離にする。無敵時間とも組み合わせる。 |
| 押し戻された相手が一瞬で別の位置に移ったように見える | 1 フレームで動かさず、数フレームかけて動かす。初めに速く動かし、だんだん遅くして止める。 |
| 押し戻された相手が氷の上のように長く滑っていく | 押し戻しにかける時間を短くする。距離を変えずに時間だけを縮めると、同じ位置まで速く飛んで止まる。 |
| 強い攻撃を当てても、弱い攻撃と同じだけしか飛ばない | 強い攻撃ほど遠くへ押し戻す。弱い攻撃の 2〜3 倍の距離から試す。 |
| 攻撃を受けると、穴に落とされる | 押し戻す距離を短くするか、押し戻しでは足場の端を越えさせない。穴の手前にはプレイヤーを大きく押し戻す敵や弾を置かない。 |
| 連続攻撃の途中で敵が離れ、次の攻撃が届かない | 連続攻撃の途中の攻撃は押し戻しを小さくし、最後の一撃で大きく押し戻す。 |
| 大きな敵も小さな敵も同じだけ押し戻される | 攻撃ごとの押し戻しの距離に相手ごとの倍率を掛けて決める。重い敵ほど倍率を小さくし、動かない敵は 0 にする。 |
遊んでこう感じたら
指示の例
剣で斬っても敵がその場から動かず、当たった気がしない。敵にノックバックを付けて、当たったら体の幅くらいの距離を 0.2 秒かけて後ろへ押し戻して
敵に触れると、くっついたまま何度もダメージを受ける。プレイヤーにもノックバックを付けて、敵から離れる向きに体の幅の 1.5 倍くらい押し戻して
穴の手前で弾に当たると、押し戻されて穴に落ちてしまう。プレイヤーのノックバックの距離を今の半分くらいにして、足場の端は越えないようにして
斬った敵が一瞬で後ろへワープしたように見える。ノックバックを 1 フレームで動かさずに、0.2 秒くらいかけてだんだん遅くなるように押し戻して
強攻撃を当てても、弱攻撃と同じだけしか飛ばない。強攻撃のノックバックの距離を弱攻撃の 3 倍くらいにして
連続攻撃の途中で敵が離れて、最後の攻撃が空振りする。連続攻撃の途中のノックバックを小さくして、最後の一撃だけ大きく押し戻して
詳細
押し戻すと何が変わるか
剣を当てても相手の位置を変えなければ、相手は当たる前と同じ場所に立ったままになる。のけぞる姿勢を付けても、振り抜いた剣の先に相手が同じ位置で立っていると、攻撃の勢いが相手に伝わったようには見えにくい。
そこで、攻撃が当たった相手を攻撃から離れる向きに押し戻す。この押し戻しをノックバックと呼ぶ。相手が攻撃の勢いで後ろへ動くので、当たった手応えが出る。押し戻した分だけ、攻撃した側と受けた側のあいだの距離(間合い)も開く。
デモの 1 つ目の試行では、近づいてくる敵に剣を当てる。二つの段は火花と、敵がのけぞって歩みを止める 20 フレームを同じにしてある。違いは押し戻すかどうかだけである。押し戻さない上の段では、敵は間合い 1.2 体分の位置でのけぞる。のけぞり終えるとまた近づいて、試行の終わりには 0.3 体分まで迫る。下の段では、敵は 1.5 体分押し戻されて間合いが 2.7 体分に開き、試行の終わりにも 1.8 体分離れている。
プレイヤーを押し戻す
ノックバックは攻撃を受けたプレイヤーにも付ける。敵に触れるとダメージを受けるゲームで、ダメージを受けたプレイヤーを押し戻さないと敵と触れたままになる。被弾した直後の「無敵時間」が切れた時点でまだ触れていれば、もう一度ダメージを受ける。
デモの 2 つ目の試行では、プレイヤーは敵に触れてから 44 フレーム後に離れようとする。無敵時間は 20 フレーム(約 0.33 秒)、被弾してのけぞって動けない時間は 12 フレーム(0.2 秒)である。どちらも両方の段で同じにしてある。無敵時間は、押し戻さないときに続けてダメージを受ける様子を見せるため、「無敵時間」の項の目安(0.5〜2 秒)より短くしてある。押し戻さない上の段では、触れているあいだ 20 フレームごとにダメージを受ける。離れようとした時点では 3 回目の被弾でのけぞっていて、動けるようになってから離れる。下の段では触れた直後から 1.5 体分押し戻される。離れようとするまで敵に追いつかれないので、ダメージは 1 回で済む。
2 回目のダメージを受けるのは、無敵時間が切れた後、離れ始める前に敵に追いつかれたときである。デモの敵は 1 フレームに体の幅の 0.02 倍(1 秒で 1.2 体分)進むので、1 体分を詰めるのに 50 フレームかかる。押し戻しが 1 体分以上なら、離れ始める 44 フレーム後まで追いつかれない。0.5〜0.75 体分では離れる前に追いつかれて 2 回、0.25 体分では押し戻さない場合と同じ 3 回ダメージを受ける。押し戻す距離は、敵がそれを詰めるまでの時間(距離を敵の速さで割った時間)が、プレイヤーが立ち直って離れ始めるまでの時間より長くなるように決める。
のけぞりとの違い
攻撃を受けた側がしばらく動けなくなる時間をのけぞりと呼ぶ。ノックバックは相手の位置を動かし、のけぞりは相手を動けなくする。二つは別々に決める値で、片方だけを付けることもできる。デモの上の段はのけぞりだけを付けて押し戻さない場合にあたる。逆に、のけぞりを付けずに押し戻すだけなら、押し戻されながらすぐに動き出せる。
押し戻されているあいだは操作を受け付けない作りでは、押し戻しにかける時間がのけぞりより長いと、押し戻し終えるまで動けない。デモもこの作りである。押し戻しにかける時間をのけぞりの 12 フレームより長くすると、そのぶん動けない時間も延びる。
距離と時間の目安
押し戻す距離は体の幅の 0.5〜2 倍ほど、押し戻しにかける時間は 0.1〜0.25 秒(毎秒 60 回の更新で 6〜15 フレーム)ほどから試す。合う値はゲームの速さや敵の速さで変わるので、この範囲から試して遊びながら調整する。押し戻さない場合と同じく、距離が短すぎると攻撃が当たった気がせず、敵に触れたプレイヤーは続けてダメージを受ける。長すぎると、押し戻した敵に次の攻撃が届かなくなり、押し戻されたプレイヤーは穴や危険な場所に落ちやすくなる。
時間を 1 フレームにすると、相手は当たった次のフレームで押し戻した先に現れ、途中の位置は画面に出ない。押されて動いたのではなく、一瞬で別の場所に移ったように見える。デモで 1 フレームにすると、床の点は押し戻す前と後の 2 つだけになる。時間を長くすると同じ距離をゆっくり動くので、止まるまで床の上を滑っていくように見える。
押し戻すあいだの速さ
押し戻すあいだの速さの変え方でも見え方が変わる。一定の速さで動かすと、押し戻し終えたフレームで急に止まる。初めに速く動かし、だんだん遅くして止めると、勢いよく飛ばされてから踏みとどまったように見える。
速さを一定の割合で落としていく場合、初めの速さは一定の速さで動かす場合のおよそ 2 倍になり、かける時間の前半で距離の 4 分の 3 を動く。デモの既定の 1.5 体分、12 フレームでは最初のフレームで 0.24 体分、最後のフレームで 0.01 体分動く。一定の速さなら、どのフレームも 0.125 体分である。デモの「押し戻しの速さ」を切り替えると、一定では床の点が等しい間隔で並び、だんだん遅くでは止まる手前ほど詰まる。
押し戻す向き
押し戻す向きの決め方には、攻撃の向きに押す方法と攻撃した側から離れる向きに押す方法がある。横から見るゲームで相手の正面から当てたときは、どちらでも同じ向きになる。違いが出るのは、二者の体が重なっているときや見下ろしのゲームで斜めから当てたときなどである。
剣を振る攻撃では攻撃の向きに押す。離れる向きは二者の位置の差から決めるので、体が重なって位置がほぼ同じだとわずかなずれで向きが逆になり、相手が攻撃した側の後ろへ飛ぶことがある。爆発のように周りに広がる攻撃では中心から離れる向きに押す。飛び道具では弾の進む向きに押す(デモの 3 つ目の試行)。敵に触れてダメージを受けたプレイヤーは敵から離れる向きに押す。体の中心がちょうど重なったときの向き(プレイヤーの向いている向きの逆など)も決めておく。
攻撃の強さと相手の重さ
強い攻撃ほど遠くへ押し戻すと、飛ぶ距離の違いで攻撃の重さの違いが伝わる。どの攻撃も同じ距離だと、強い攻撃を当てても弱い攻撃と同じ手応えしか返らない。強い攻撃の距離は弱い攻撃の 2〜3 倍から試す。
押し戻す距離は相手の重さでも変える。攻撃ごとの押し戻しの距離に相手ごとの倍率を掛けて決めると、攻撃と相手の組み合わせごとに値を決めずに済む。軽い敵は倍率を 1 より大きく、重い敵は 1 より小さくし、動かない敵は 0 にする。倍率を 0 にした相手には「ヒットストップ」や「ヒットフラッシュ」で当たったことを伝える。
押し戻しすぎたときに起きること
プレイヤーを押し戻す作りでは、穴や危険な場所を背にして攻撃を受けると押し戻されて落ちる。デモの 3 つ目の試行では穴の縁から 0.3 体分の位置で弾を受ける。体全体が縁を越えると落ちるので、1.3 体分以上押し戻すと落ちる。下の段の既定の 1.5 体分では穴に落ちる。1.25 体分なら、体の端が縁に 0.05 体分かかった位置で止まる。防ぐには押し戻す距離を短くするか、押し戻しでは足場の端を越えさせない。穴の手前にプレイヤーを大きく押し戻す敵や弾を置かないことでも防げる。
攻撃した側から見ると、押し戻しすぎた敵には次の攻撃が届かない。連続攻撃では途中の攻撃の押し戻しを小さくして、相手が攻撃の届く範囲から出ないようにする。最後の一撃で大きく押し戻して間合いを開ける。
ヒットストップや無敵時間との組み合わせ
「ヒットストップ」と組み合わせるときは、止め終わってから押し戻す。止めているあいだに押し戻すと、相手が止まって見えなくなり、当たった瞬間の姿勢が画面に残らない。「画面揺れ」や「ヒットフラッシュ」は止め始めと同時に出すので、押し戻しはそれらより後に始まる。
プレイヤーを押し戻すときは、「無敵時間」と組み合わせる。押し戻しは敵から離して触れている状態を終わらせ、無敵時間は離れるまでのあいだにダメージが重なるのを防ぐ。押し戻しだけでは、距離が短いと離れる前に追いつかれる。無敵時間だけでは、切れたときにまだ触れていればまたダメージを受ける。