ダメージ計算式を作りたい。でも、どうやって実装すればいいか分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、ダメージ計算式には、いくつかのパターンがあります。
この記事では、ダメージ計算式の作り方について、固定・割合・防御計算まで完全まとめます。
✨ この記事でわかること
- 固定ダメージの計算方法
- 割合ダメージの計算方法
- 防御計算の実装方法
- アクションゲーム向けのダメージ処理パターン

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

固定ダメージは、最もシンプルなダメージ計算式です。
以下のコードで、固定ダメージが実装できます。
|
1 2 3 4 5 |
int CalculateDamage(int attackPower) { return attackPower; } |
このコードで、攻撃力そのままのダメージが計算されます。
固定ダメージは、ダメージに影響する変数が攻撃力だけなので、数値調整が直感的に行えます。
ダメージが強すぎる場合は攻撃力を下げ、弱すぎる場合は上げるだけで調整が完結します。
割合ダメージや防御計算のように複数の数値が絡まないため、ゲーム全体のバランスを崩しにくいのが特徴です。

特に、アクションゲームの通常攻撃や序盤の敵には、固定ダメージが向いています。
割合ダメージの計算方法

割合ダメージは、最大HPに対する割合でダメージを計算します。
以下のコードで、割合ダメージが実装できます。
|
1 2 3 4 5 |
int CalculatePercentageDamage(int maxHP, float percentage) { return Mathf.RoundToInt(maxHP * percentage); } |
このコードで、最大HPの一定割合のダメージが計算されます。
例えば、percentage が 0.1f の場合、最大HPの10%分のダメージになります。
割合ダメージの特徴は、敵のHPが高いほど与えるダメージも大きくなる点です。
そのため、HPの多いボス敵でも一定の削り効果を持たせることができ、戦闘が長引きすぎるのを防ぐ目的で使われることが多くあります。
防御計算の実装方法

防御計算は、防御力に応じてダメージを減らします。
以下のコードで、防御計算が実装できます。
|
1 2 3 4 5 6 |
int CalculateDamageWithDefense(int attackPower, int defense) { int damage = attackPower - defense; return Mathf.Max(1, damage); // 最低でも1ダメージ } |
このコードでは、攻撃力から防御力を差し引いた値をダメージとして計算します。
防御力が高いほど受けるダメージが減り、キャラクターの成長や装備の効果を数値として分かりやすく表現できます。
また、Mathf.Max(1, damage) によって、防御力が攻撃力を上回っても 必ず最低1ダメージは発生するようにしています。
これは、防御を極端に高くした場合に「まったくダメージを受けない状態」になってしまうのを防ぐためです。

防御計算は、ゲームのバランスに大きく影響します。実際に動かしながら、調整していきましょう。
アクションゲーム向けのダメージ処理パターン

アクションゲームでは、固定ダメージが使いやすい場合が多いです。
アクションゲームでは、ダメージは単なる数値ではなく、「当たったときの手応え」や「爽快感」を演出する重要な要素です。

ここでは、アクションゲームでよく使われるダメージ処理パターンを、具体的な使いどころとあわせて整理します。
代表的なダメージ処理パターン一覧
| パターン | 特徴 | 向いている場面 |
|---|---|---|
| 固定ダメージ | 毎回同じダメージを与えるため、手応えが安定する | 通常攻撃・雑魚敵戦・コンボ主体のアクション |
| 割合ダメージ | 敵の最大HPに応じてダメージが変わる | ボス戦・必殺技・チャージ攻撃 |
| 防御計算 | 防御力によってダメージが減少し、成長や装備を表現できる | 装備要素のあるゲーム・硬い敵の演出 |
| 複合型 | 固定・割合・防御を組み合わせて使う | 多段攻撃・スキル・個性のある技 |
「どの技に使うか」を想像してみよう
例えば、以下のように使い分けることで、技ごとの個性やゲームらしい手触りが生まれます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 通常攻撃:固定ダメージ int NormalAttack(int attackPower) { return attackPower; } // 必殺技:割合ダメージ int SpecialAttack(int maxHP) { return Mathf.RoundToInt(maxHP * 0.2f); // 最大HPの20% } // 硬い敵向け:防御計算 int AttackWithDefense(int attackPower, int defense) { return Mathf.Max(1, attackPower - defense); } |
数値を少し変えるだけで、「サクサク倒せる」「硬くて手強い」「一発逆転が狙える」など、ゲームの印象は大きく変わります。
どの計算式が正解かではなく、どんな体験をプレイヤーに与えたいかを考えながら選ぶのがポイントです。
Unityでの実装例

ここでは、これまで紹介してきたダメージ計算式を、Unityのスクリプトとしてまとめるための基本構造を紹介します。
個別の計算ロジックはこのクラスに直接書くのではなく、外から計算結果を受け取って処理する形にするのがポイントです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using UnityEngine; public class DamageReceiver : MonoBehaviour { [SerializeField] private int currentHP = 100; public void ReceiveDamage(int damage) { currentHP -= damage; currentHP = Mathf.Max(0, currentHP); } } |
このクラスは、「ダメージを受け取る役割」だけを持ちます。
どの計算式を使うかは、攻撃側やスキル側で決める想定です。
役割を分けると、拡張しやすくなる
ダメージ計算とHP管理を分けておくことで、
- 通常攻撃・必殺技・スキルで計算式を切り替えられる
- 将来的に割合ダメージや補正を追加しやすい
- 敵・味方どちらにも同じ仕組みを使える
アクションゲームでは、「どう計算するか」と「どう反映するか」を分離する設計が、後々の調整や拡張を楽にしてくれます。
実践的なダメージ計算を学ぶには

ここまで、ダメージ計算式の作り方について解説してきました。
ただし、実際のゲーム制作では、さらに多くの要素が必要になります。
アニメーション、エフェクト、UI、サウンドなど、全体を体系的に学ぶには、専門の講座が効率的です。
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ゲーム開発スキルを今すぐ!
まとめ

ダメージ計算式の作り方について解説しました。
要点のまとめ
- 固定ダメージは、シンプルで調整しやすい
- 割合ダメージは、最大HPに応じてダメージが変わる
- 防御計算は、防御力に応じてダメージが減る
- 用途に応じて選ぶ
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。





コメント