ノックバックを実装したい。でも、プレイヤーや敵が吹き飛ぶ処理が分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、ノックバックは、AddForceやVelocity制御を使うことで実現できます。
この記事では、ノックバックの作り方として、プレイヤーや敵が吹き飛ぶ処理の基本を解説します。
✨ この記事でわかること
- ノックバックの基本概念
- AddForceを使った実装
- Velocity制御を使った実装
- 方向と強さの調整方法

ノックバックは、アクションゲームに必須の機能です。まずは、基本的なAddForceから始めましょう。
\あなたにピッタリのアクションゲーム制作講座を見つけよう!/
おすすめ第1位
Unity 2Dアクションゲーム
の作り方講座(ロックマン風)
ロックマン風の横スクロールACTをスマホ化・広告実装まで対応。ゲームのリリースまでを見据えた実践的なカリキュラムで、作って終わりにならない一本です。
3D入門に最適
ゼルダ風3Dアクションゲーム
の作り方講座
ゼルダ風の3Dアクションをスマホ対応で作れる入門講座。全16回で初心者でも3Dゲーム開発の基礎からしっかり習得できます。
3プラットフォーム対応
Unity FPSゲームの
作り方講座
FPS・VR・スマホの3プラットフォームに同時対応。1本作るだけで3つのゲームが完成する圧倒的なコスパが魅力の講座です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
ノックバックの基本概念

ノックバックは、攻撃を受けたときに、キャラクターが吹き飛ぶ処理です。
主な要素は次の通りです。
- 方向の計算
- 強さの設定
- 力の適用
これらを組み合わせることで、基本的なノックバックができます。
攻撃を受けた方向に、一定の力で吹き飛びます。
この後、実際にどのように方向を計算し、力を加えて吹き飛ばすのかを具体的に解説していきます。
ここを理解すると、キャラクターの動きが一段と魅力的になります。
AddForceを使った実装

AddForceを使った実装は、次の手順で進めます。
- STEP1方向を計算
攻撃を受けた方向を計算します。
- STEP2力を設定
ノックバックの強さを設定します。
- STEP3AddForceを適用
RigidbodyにAddForceを適用します。
この順番で進めれば、基本的なノックバックが完成します。
AddForceを使うことで、物理演算による自然な動きができます。

AddForceを使うことで、物理演算による自然な動きができます。まずは、この方法を試してみてください。
AddForceでノックバックを与えるコード例
AddForceを使う場合は、「方向を計算して、その方向へ力を加える」という流れが基本です。
特に Unity 2D では ForceMode2D.Impulse を使うことで、瞬間的な吹き飛びを自然に再現できます。
以下は最もシンプルで分かりやすいノックバックの例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 攻撃を受けたときに呼び出すメソッド public void KnockBack(Transform attacker, float power) { // attacker:攻撃してきた相手の位置 // 自分の位置との差分から「攻撃された方向」を計算 Vector2 direction = (transform.position - attacker.position).normalized; // Rigidbody2D を取得 Rigidbody2D rb = GetComponent<Rigidbody2D>(); // AddForceで瞬間的に吹き飛ばす rb.AddForce(direction * power, ForceMode2D.Impulse); } |
- direction は必ず normalized(正規化)して、向きだけを扱う
- power は 5〜15 程度から調整すると扱いやすい
- 攻撃側と被弾側の高さが違う場合は Z(または Y)も計算対象にする
このコード例により、STEPで説明した「方向 → 強さ → AddForce」が具体的にイメージできるようになります。
Velocity制御を使った実装

Velocity制御を使った実装は、直接速度を設定します。
主な方法は次の通りです。
- 方向を計算する
- 速度を設定する
- Velocityを直接設定する
これらを組み合わせることで、基本的なノックバックができます。
Velocityを直接設定することで、より精密な制御ができます。
Velocityを直接設定するノックバックのコード例
Velocity制御では、Rigidbody の速度を直接書き換えることでノックバックを発生させます。AddForceよりも狙った挙動を作りやすく、停止タイミングも管理しやすいため、アクションゲームでよく使われる方法です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 攻撃を受けたときに呼び出すメソッド public void KnockBackVelocity(Transform attacker, float power) { // 攻撃を受けた方向を計算 Vector2 direction = (transform.position - attacker.position).normalized; // Rigidbody2D を取得 Rigidbody2D rb = GetComponent<Rigidbody2D>(); // Velocityを直接書き換えて吹き飛ばす rb.velocity = direction * power; } |
補足
- AddForceと違い、指定した速度へ一瞬で切り替わるため挙動が安定しやすい
- 自然さより「制御のしやすさ」を優先したいときに向いている
- すぐ止めたい場合は、ノックバック時間を管理したり減速処理を追加するとよい
- power は 5〜20 程度から調整すると扱いやすい
Velocity方式は「思い通りの吹き飛び方にしたい」「AddForceだと物理挙動が暴れる」という場面で特に有効です。
方向と強さの調整方法

方向と強さの調整は、次の要素で制御します。
- 攻撃を受けた位置
- 攻撃をした位置
- ノックバックの強さ
これらを組み合わせることで、方向と強さを調整できます。
攻撃を受けた位置と攻撃をした位置から、方向を計算します。
方向と強さを計算してノックバックを与えるコード例
ノックバックの方向と強さは、攻撃した位置と攻撃を受けた位置の差分から計算できます。方向ベクトルを正規化し、そこに任意の強さを掛け合わせるだけで、さまざまな吹き飛び方を作れます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 方向と強さを計算してノックバックを与えるメソッド public void KnockBackCustom(Transform attacker, float power) { // 攻撃を受けた位置と攻撃者の位置から方向を計算 Vector2 direction = (transform.position - attacker.position).normalized; // Rigidbody2D を取得 Rigidbody2D rb = GetComponent<Rigidbody2D>(); // 計算した方向と強さを使って吹き飛ばす rb.velocity = direction * power; } |
補足
- direction は必ず normalized() して、向きだけを取り出す
- power は 5〜20 程度から調整すると、扱いやすい吹き飛びになる
- キャラの質量やゲームスピードによって、最適な値は変わる
- 上下方向に強く飛ばしたい場合は Y(または Z)成分に補正をかけるとよい
慣れてきたら、減速処理やノックバック時間の管理を入れると、よりゲームらしい動きになりますよ。
実践的なノックバック実装を学ぶには

ここまで、ノックバックの作り方について解説してきました。
ノックバックは、アクションゲームに必須の機能です。
Unity入門の森では、Unityを使ったアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
アクションゲーム制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
アクションゲームを作りたいなら!Unity入門の森のアクション制作講座で本格ゲーム開発に挑戦しよう
Unity入門の森には、横スクロール・3Dアクション・FPSまで幅広いアクションゲームを作れる講座が揃っています。作りたいジャンルや目標に合わせて選んでみてください。
Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

- ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
- 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
- スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
- 敵AI15体・多彩なマップギミック・武器システムを完全実装
- 完全オリジナルゲームをアセット不使用で素材提供付きで制作
Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。
ステージ選択・ボスの弱点システム・新武器ゲットというロックマン風のゲーム設計はもちろん、スマホ実機ビルド・AdMob広告実装(リワード・インタースティシャル)まで対応。作って終わりではなく、リリースして収益化するところまで学べます。
書籍や他のチュートリアルでは扱われていないリリースレベルの開発スキルを習得したい人に、自信を持っておすすめできる一本です。
スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ Unity 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!
ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

- ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
- 初心者でも取り組みやすい丁寧な解説構成
- スマホ化対応で実機で動かせるゲームが完成
- 画像・動画・全ソースコード公開の充実したサポート
- アセットを使った実践的なゲーム開発手法が身につく
ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。
3Dゲーム開発の基礎からスマホ化まで全16回でしっかり習得できます。画像・動画・全ソースコードを公開した丁寧な解説で、初めて3Dゲームに挑戦する人でも確実に完成まで到達できる構成です。
「3Dゲームはなんだか難しそう」と感じている人が最初の一歩を踏み出すのに最適な講座です。
初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!
Unity FPSゲームの作り方講座【全17回!FPS・VR・スマホの3プラットフォームを同時に作れる!】

- APEX・バトルフィールド風のFPSゲームをゼロから開発
- FPS・スマホ・VRの3プラットフォームに同時対応
- 書籍では学べないVR対応弓矢FPSのオリジナリティ高い開発手法
- 地上・空中の敵AIや弓矢チャージショットなど本格システムを実装
- 初心者でも安心の丁寧な解説と完成プロジェクトファイル付き
Unity FPSゲームの作り方講座は、APEX・バトルフィールド・Call of Dutyのような一人称視点のFPSゲームを作るための講座です。
弓矢を使ったオリジナリティの高いFPSをベースに、PC・スマホ・VRの3プラットフォームに同時対応した開発手法を全17回で習得できます。VR空間で弓を構えて矢を射るという高度なアクションの実装まで、書籍では学べないスキルが身につきます。
1本の講座でFPS・スマホ・VRを同時に作れるのはこの講座ならでは。3Dゲーム開発の幅を一気に広げたい中・上級者志望の方にもおすすめです。
FPS・スマホ・VRの3プラットフォームを同時に完成させる
1本作るだけで3つのゲームが完成する圧倒的な開発体験を手に入れよう
→ Unity FPSゲームの作り方講座を見てみる
書籍では学べないVR対応FPSで、一歩先の3Dゲーム開発スキルを今すぐ!
まとめ

ノックバックの作り方について解説しました。
要点のまとめ
- ノックバックは、攻撃を受けた方向に、一定の力で吹き飛ぶ処理
- AddForceを使うことで、物理演算による自然な動きができる
- Velocity制御を使うことで、より精密な制御ができる
- 方向と強さは、攻撃を受けた位置と攻撃をした位置から計算する
基本を押さえれば、あとは応用していくだけです。
まずは、シンプルなノックバックから始めてみてください。
動かしながら理解を深めていくのが、上達への近道です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。





コメント