直接回答
ヘルスは1つの権威あるゲームプレイコンポーネントに保持し、型付きリクエスト経由でダメージを受け入れ、値は1回だけクランプし、UIとエフェクト向けに状態変更イベントを発行する。死亡は冪等遷移であり、これ以上のゲーム進行を無効化し、一時的なエフェクトをクリーンアップし、撃破者または原因を記録し、GameModeまたは所有ルール層に新しいポーンのリスポーンを要求する。体力ゲージ、ラグドール、破棄呼び出しを真実の情報源にしてはいけない。
このページは戦闘ライフサイクルを担当します。これは、完全なGameplay Ability System、武器実装、チェックポイント永続化、またはプラットフォーム分析ガイドに代わるものではありません。実用的な目的は、別の開発者がクリーンなチェックアウト状態から再現できる、ゲーム構築用スライスを提示することです。エンジン挙動、プロジェクト方針、測定エビデンスは分離して管理する:Epicのドキュメントはサポートされるコンセプトを示し、プロジェクトが所有権と予算を定義し、名称付きテスト実行だけがローカル結果を証明する。
このガイドが提供する内容
- 実装する所有権モデル Unrealダメージ・ヘルス・死亡・リスポーンシステム.
- Blueprint と C++ の6段階実装ワークフロー(実 API またはコマンド例を含む)。
- 通常、境界、そしてハンドオフ挙動を含む3つの実運用シナリオ。
- エディタービルドとパッケージドビルドの障害復旧および検証基準。
- このページの技術意図を変えないまま、Unreal クリエイターへつながる制約された SEELE ハンドオフ。

Unrealダメージ・ヘルス・死亡・リスポーンシステムのオーナーと実装フローを説明する。 システムアーキテクチャと所有権

ダメージリクエスト
ApplyDamage、ApplyPointDamage、ApplyRadialDamage、またはInstigator、Causer、Tags、ヒットデータ、基本量を持つ専用Structを使用する。最終的なヘルスデルタからリクエストを分離し、アーマーと無敵状態が監査可能なままであるようにする。
ダメージリクエストレビュー: ダメージリクエスト、Instigator、Causer、タイプを取得し、ヘルス権威が承認結果を受け取るか観測する方法を、第二のオーナーとして扱うことなく示す。
権威付与
レプリケートされたHealthComponentまたはアトリビュートセットが、現在および最大ヘルス、クランプ処理、無敵状態、チーム判定、変更通知を所有する。UIは結果を購読し、ヘルスを直接書き込まない。
ヘルス権威レビュー: 軽減前(pre-mitigation)と最終デルタを取得し、死亡遷移が承認済み結果を受け取るか観測する方法を示し、第二のオーナーとして振る舞わないことを示す。
死亡遷移
AliveからDyingまたはDeadへ1回だけ変更し、その後のダメージを拒否して入力とアビリティを停止し、タイマーをクリアし、衝突を意図的に分離または無効化し、ラグドール、アニメーション、または消失のいずれかを表現として選択する。
死亡遷移レビュー: 単一のライフステート遷移を取得し、リスポーン規則が受け入れられた結果を二次的な所有者にならずに受け取る(または参照する)様子を示す。
リスポーン規則
GameModeまたは他の権威あるルールオーナーがタイミング、PlayerStart、Pawnクラス、保持するPlayerStateを選択する。Dead状態のPawnが破棄され置換される間も、ControllerとPlayerStateは存続可能である。
リスポーン規則レビュー: EndPlayでのタイマーとエフェクトのクリーンアップを取得し、ダメージリクエストが承認結果を第二のオーナーとして扱うことなく受け取る/観測するか示す。
実装ワークフロー
- ステージ 1: 環境、近接、射撃、爆発、回復フロー用にダメージタイプまたはGameplayタグを定義し、フレンドリーファイアと無敵ポリシーを含める。
- ステージ2: 1つのサーバー権威型ヘルス更新関数を実装し、リクエストの検証、軽減値の計算、ヘルスのクランプ、および更新前後の値の記録を行う。
- ステージ3: HUD、被弾リアクション、オーディオ、テレメトリ向けに構造化されたヘルス変更イベントをブロードキャストする。受信側は結果と原因を受け取るが、2回目のデルタを再適用することはない。
- ステージ 4: HandleDeathを冪等にし、進行中の戦闘処理をキャンセルし、インタラクションと移動を無効化し、キルフィードまたは再起動画面用に十分な原因データを保存する。
- ステージ5: GameMode経由でリスポーンをスケジュールし、有効な開始点を選択し、置換用PawnをスポーンしてPossessさせ、制御を返す前にヘルスを初期化する。
- ステージ6: 同時ヒット、HP0での回復、オーバーキル、反復的なラジアルダメージ、死亡中の切断、シームレストラベル、PlayerStart不在、遅延UI購読をテストする。
具体的なAPIまたはコマンド例
float UHealthComponent::ApplyHealthDelta(float Delta, AController* Instigator)
{
if (LifeState != ELifeState::Alive || FMath::IsNearlyZero(Delta)) return 0.f;
const float Before = Health;
Health = FMath::Clamp(Health + Delta, 0.f, MaxHealth);
OnHealthChanged.Broadcast(Before, Health, Instigator);
if (Health <= 0.f) EnterDeathOnce(Instigator);
return Health - Before;
}3つの制作シナリオ
例1:ポイントダメージのヘッドショット
命中結果とダメージタイプは頭部の表面またはボーンを識別し、サーバーが修正係数を計算して単一の最終デルタを記録する。武器はHealthを書き込まず、HUDは乗算係数を再計算しない。
ヘッドショットのポイントダメージに対するエビデンスには、ダメージリクエスト、インスティゲータ、カウザー、タイプ、所有ビルド識別子、そしてこのシナリオを最後の既知正常状態へ戻す条件を含めること。
例2: ダメージ・オーバー・タイム・ボリューム
時間指定効果はその拍動周期と発生源IDを所有する。ボリュームを離脱したり死亡した場合はハンドルをキャンセルし、リスポーンしたポーンが古いティックを引き継がないようにする。
継続ダメージ量のボリューム(ダメージオーバータイム)では、軽減前と最終デルタ、ビルド識別子、当該シナリオを最後の既知正常状態へ戻す条件を含む証拠を示すこと。
例3:Co-opリスポーン
PlayerStateはスコアとチームを保持し、GameModeはルール定義の遅延を待機してチーム有効な開始地点を見つけ、新しいポーンをPossessする。スペクテーターカメラはプレゼンテーションとして残る。
コープのリスポーンの証拠には、単一のライフステート遷移、所有ビルドID、およびこのシナリオを最後の既知正常状態に戻す条件を含める必要がある。

Unrealダメージ・ヘルス・死亡・リスポーンシステムの障害診断と回復をサポートする。 失敗モードと回復

死亡処理が2回実行される
効果再生、スコア付与、リスポーンのスケジュール設定の前に状態遷移をガードする。同時に複数のダメージコールバックが発生しても、1つの遷移点に収束させる。
death runs twiceをクローズする前に、point damage headshotを再実行し、シングルライフ状態遷移が未記載の修復手順なしで想定境界に戻ることを証明する。
ヘルスバーは更新されるが、サーバーヘルスが更新されない
権威あるコンポーネントとレプリケーション通知を検査する。ローカルウィジェットのアニメーションは、確定したダメージ結果の証拠にはならない。
ヘルスバー更新は行われるがサーバーヘルスが更新されない状態を閉じる前に、ダメージオーバータイムボリュームを再実行し、タイマーとエフェクトのクリーンアップが、未記載の修復手順なしで期待値境界へ戻ることをEndPlay時に実証する。
リスポーンしたポーンが古いタイマーを保持する
タイマーとエフェクトはPawnまたはコンポーネント側で管理し、EndPlayと死亡時にクリアし、破棄されたPawnを強参照するコールバックを避ける。
リスポーン済みPawnが古いタイマーを保持したまま終了しないようにし、協力プレイのリスポーンを再実行して、スポーン選択、Possession、初期化されたヘルスが想定境界値へ戻ることを、非公開の修復手順なしで証明する。
プレイヤーがジオメトリ内にスポーンする
PlayerStartの占有状況を検証し、フォールバック選択ポリシーを提供し、選択された開始点とスポーン時のコリジョン処理結果をログに記録する。
プレイヤーがジオメトリ内にスポーンする問題をクローズする前に、point damage headshotを再実行し、damage request、instigator、causer、タイプが未記載の修復手順なしで想定境界値に戻ることを確認する。
検証マトリクス
- ダメージリクエスト、Instigator、Causer、タイプ: damage requestの横で検証する。death runs twice(死亡処理が2回実行)がpoint damage headshot中に再発しないことのみを合格とし、証拠は正確なビルドを明記すること。
- 事前軽減値と最終デルタ: ヘルス権限を横並びで確認し、ヘルスバー更新は行われるがサーバーヘルスが更新されない状態がダメージオーバータイムボリューム中に再発しないことを、正確なビルド名を明記して通過したときだけ合格とする。
- 単一ライフ状態遷移: death transitionの横で検証する。co-opリスポーン時に「リスポーン済みのPawnが古いタイマーを保持する」問題が再発しないことのみを合格とし、証拠は正確なビルドを明記する。
- EndPlay時のタイマーとエフェクトのクリーンアップ: リスポーンルールの横で検証する。point damage headshot中にプレイヤーがジオメトリ内にスポーンする問題が再発しないことのみを合格とし、証拠は正確なビルドを明記すること。
- スポーン選択、所持権の設定、および初期化ヘルス: ダメージリクエストの横で検査する。ダメージ・オーバー・タイム・ボリューム中に死亡が2回実行されないときのみ合格とし、証拠は正確なビルドを明示すること。
提示(Presentation)と権威(Authority)の隣で検証し、ロック付きドアで1回押下で複数インタラクションが発火する問題が再発しない場合のみ合格とし、証拠には正確なビルド名を明記する。
これらの手順は、2026-07-26時点のUnreal Engine 5の現行ドキュメントを対象とする。エンジン既定値、実験的ステータス、プラグインのパッケージング、APIシグネチャ、プラットフォームサポートは変更される可能性がある。プロジェクトに一致するドキュメント版を選択し、正確なパッチとターゲットでテストし、ロールバック用リビジョンを保持すること。公開ドキュメントはNDA要件、ストア審査、コンソール認証、プロジェクト固有の性能証跡を代替しない。
公式ソース
- ゲームプレイダメージシステム —このUnrealダメージ・ヘルス・死亡・リスポーンシステムワークフローにおけるdamage requestの参照根拠;配布済みブランチと照合してドキュメントバージョンを確認する。
- Gameplay Framework クイックリファレンス — このUnrealダメージ・ヘルス・死亡・リスポーンシステムのワークフローにおけるhealth authorityの一次証拠;ドキュメントのバージョンをshippingブランチと照合する。
- Player Startアクター — このUnrealダメージ・ヘルス・死亡・リスポーンシステムのワークフローにおける死亡遷移のソースエビデンス。ドキュメントのバージョンをShippingブランチと照合してください。
Unreal Engine は Epic Games の商標です。SEELE AI は独立したサービスであり、この記事は Epic Games または Valve の推奨を意味しません。
技術計画から SEELE Unreal ゲームへ
このページを使用して、システム、受け入れテスト、および障害の境界を定義し、その正確な要件を[SEELEのUnrealゲームクリエーター](/features/create/unreal-game)に持ち込んでください。SEELEはネイティブなUnreal 5ゲームを生成し、ブラウザ内プレビューを提供し、SEELE内での最適化とパッケージングをサポートし、プロジェクトまたはパッケージ化された出力を外部での公開用にダウンロード、または無料または有料のSEELEゲームとして公開することができます。
そのハンドオフは、上記で説明したネイティブ制作責任を変更しません。ストア承認、販売、収益、認証、サードパーティプラグイン互換性、およびプラットフォームコンプライアンスは保証されていません。ソースUnrealゲーム、ビルドログ、テスト証拠、および外部公開決定をチームの管理下に置いてください。
FAQ
Unrealのダメージ・ヘルス・死亡・リスポーンシステムの正しいアーキテクチャは?
ヘルスは1つの権威あるゲームプレイコンポーネントで管理し、型付きリクエストでダメージを受け付け、値を1回だけクランプし、UIとエフェクトのために状態変更イベントを発行する。死亡は冪等性のある遷移とし、追加ゲームプレイを停止し、一時的な効果をクリーンアップし、キラーまたは原因を記録し、GameModeまたは所有側のルール層に新しいポーンのリスポーンを要求する。ヘルスバー、ラグドール、またはDestroy呼び出しが真実の情報源になることは許可しない。まずダメージリクエストとヘルスの権威を起点にし、その後プレゼンテーションは確定済みゲームプレイ状態の監視者として扱う。
Unrealダメージ、ヘルス、死亡、リスポーンシステムはBlueprintで構築すべきか、C++で構築すべきか?
どちらでも可能。Blueprintは迅速なゲームロジック実装とデザイナー主導の反復に有効で、C++は再利用可能な契約、複雑なライフタイム管理、性能に敏感なループ、自動テストに有効である。所有権・検証・障害復旧の境界は両方で同一に維持する。
Unrealのダメージ・ヘルス・死亡・リスポーンシステムはどのようにテストすべきか?
通常ケース1件、無効入力1件、中断または停止、クリーン再起動、パッケージビルドの同等性をテストする。ダメージリクエスト、インスタンター、原因(カウザー)、タイプ、事前軽減値と最終デルタ、ビルド識別子、明確な合格基準を持つ単一ライフステート遷移を取得する。
Unrealダメージ・ヘルス・死亡・リスポーンシステムで最も危険な失敗は何か?
死亡処理が2回実行されることは早期警告である:エフェクト再生、スコア加算、リスポーンのスケジュール前に状態遷移をガードすること。複数のダメージコールバックは1つの遷移に収束しなければならない。さらに、クリーンアップと再試行を検証し、見かけ上の修正が古い状態を残さないことを確認する。
このUnrealダメージ・ヘルス・死亡・リスポーンシステムガイドは、どのUnrealバージョンを対象としていますか?
Unreal Engine 5ドキュメントの2026-07-26時点の公開内容を使用している。バージョンセレクター、APIシグネチャ、プラグイン状況、プラットフォームのツールチェーン、パッケージ挙動を、実際に出荷する正確なエンジンパッチで確認すること。
このUnrealダメージ・ヘルス・死亡・リスポーンシステムの計画が完了した後、SEELEは何ができますか?
SEELEはネイティブUnreal 5ゲームを生成し、ブラウザプレビューを提供し、最適化とパッケージングをサポートし、外部公開または無料・有料のSEELEリリース用にプロジェクトまたはパッケージ化されたダウンロードを提供できます。サードパーティストアの承認、互換性、売上、収益を保証するものではありません。



