Unreal Engineの「D3D device being lost」でゲームが落ちる原因|0x887A0006を解説
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
エラーコード0x887A0006を解説
出典:Microsoft Learn「DXGI_ERROR (Winerror.h)」、Microsoft Learn「WDDM Support for TDR」。
Unreal Engineを採用したPCゲームをプレイしていると、突然ゲームが強制終了し、「Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0006 – ‘HUNG’)」という英語のエラーメッセージだけが表示されることがあります。Hell Let Loose、Conan Exiles、GROUND BRANCH、Assetto Corsa Competizione、Icarusなど、複数のUnreal Engine採用ゲームでこの文言のクラッシュ報告が確認されています。
0x887A0006は、Windowsの画面表示を扱う基盤「DXGI(DirectX Graphics Infrastructure)」が返すエラーコードの一つで、正式名称はDXGI_ERROR_DEVICE_HUNGです。Microsoft公式のリファレンスでは「アプリケーションから送られたコマンドが原因でデバイスが失敗した状態」と定義されています。ただし、このエラーが出たからといって、グラフィックボードの故障やVRAM不良が確定するわけではありません。
この記事では、0x887A0006・DEVICE_HUNGの意味、Unreal Engineでこのメッセージが表示される背景、そして原因を切り分けるための確認手順を解説します。
目次
要点まず何が起きているか
「D3D device being lost」というメッセージ自体はUnreal Engineがクラッシュ時に表示する文言ですが、その原因であるエラーコード0x887A0006(DXGI_ERROR_DEVICE_HUNG)は、Unreal Engine固有のエラーではなくWindows標準のDXGIエラーです。GPUへ送られたグラフィックスコマンドが正常に処理できず、デバイスが応答しなくなった状態を示します。原因はゲーム側の不具合からGPUドライバー、OC、電源、温度まで多岐にわたるため、エラー名だけで故障を確定できません。
正体0x887A0006=DXGI_ERROR_DEVICE_HUNGとは
DXGIは「DirectX Graphics Infrastructure」の略称で、DirectXがGPUやディスプレイを扱う際の基盤となる仕組みです。Microsoft公式のリファレンスによると、DXGI_ERROR_DEVICE_HUNG(0x887A0006)は「アプリケーションのデバイスが、アプリケーションから送信された不正な形式のコマンドが原因で失敗した状態」と定義されています。これは実行時の問題というより、本来は開発段階で調査・修正されるべき問題として位置づけられています。
紛らわしいのが、似た名前のDXGI_ERROR_DEVICE_REMOVED(0x887A0005)やDXGI_ERROR_DEVICE_RESET(0x887A0007)です。3つのエラーはそれぞれ意味が異なり、DEVICE_REMOVEDは必ずしもグラフィックボードが物理的に取り外されたことを意味しません。DXGIエラー全体の分類と切り分け方はDXGI_ERROR_DEVICE_HUNG・REMOVED・RESETの違いと直し方で詳しく解説しています。本記事では、Unreal Engine採用ゲームで特によく見られる「D3D device being lost」というメッセージに絞って解説します。
報告例複数のUnreal Engine採用ゲームで確認されている
「Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0006 – ‘HUNG’)」という同一の文言によるクラッシュ報告は、特定の1本のゲームだけでなく、Unreal Engineを採用した複数のゲームで確認されています。Steamコミュニティや開発元の公式フォーラムでは、Hell Let Loose、Conan Exiles、GROUND BRANCH、Assetto Corsa Competizione、Icarusなどのタイトルで同じエラー文言の報告が見つかります。Conan Exilesの開発元Funcomの公式フォーラムでは、このエラーが「Unreal Engine 4を使用するほぼすべてのゲームで起こり得る」という趣旨のコメントも投稿されています。
つまり、このエラーメッセージが表示されたからといって、特定のゲームだけに存在する不具合と決めつける必要はありません。Unreal Engineのクラッシュハンドラーが、GPU側から返されたDXGI_ERROR_DEVICE_HUNGを検出した際に共通で表示する文言と考えるのが実態に近いでしょう。
背景WindowsのTDRとの関係
DXGI_ERROR_DEVICE_HUNGは、WindowsのTDR(Timeout Detection and Recovery)という仕組みと関係している場合があります。TDRは、GPUの処理が既定のタイムアウト時間(標準2秒)内に完了しないとWindowsが「GPUが応答しなくなった」と判断し、ディスプレイドライバーとGPUのリセットを試みる保護機能です。TDRが働いてGPU・ドライバーがリセットされると、それまでゲームが使用していたDirectXデバイスが失われ、結果としてDEVICE_HUNGやDEVICE_REMOVEDのようなDXGIエラーにつながることがあります。TDRの仕組みと、レジストリでタイムアウト時間を変更すべきでない理由は「ディスプレイドライバーが応答を停止したため、正常に回復しました」の原因と直し方で詳しく解説しています。
NVIDIA環境では、同じタイミングでイベントビューアーに「nvlddmkm」のイベントが記録されることもあります。エラーが発生した時刻とイベントビューアーの記録を照合すると、原因の切り分けに役立ちます。詳しい確認手順はnvlddmkmイベントID 0・14・153の原因で解説しています。
切り分けOC解除からドライバー、電源・温度の順に確認する
0x887A0006が表示された場合、いきなりGPU交換を検討する前に、費用のかからない部分から順番に確認してください。
これらの手順を試しても複数のゲームで再現する場合は、DXGIエラー全体の分類・詳しい切り分けフロー、GPU交換を検討するタイミングまで、DXGI_ERROR_DEVICE_HUNG・REMOVED・RESETの違いと直し方でさらに詳しく解説しています。VRAM不足が疑われる場合は「Out of video memory」でゲームが起動しない原因もあわせて確認してください。
FAQよくある質問
総括まとめ|エラー文言だけでGPU交換を決めない
Unreal Engine採用ゲームで表示される「D3D device being lost」というメッセージは、DXGI_ERROR_DEVICE_HUNG(0x887A0006)というWindows標準のエラーコードに由来します。特定の1本のゲームだけの不具合ではなく、複数のUnreal Engine採用タイトルで同様の報告が確認されている、比較的よく見られる種類のクラッシュです。
このエラーが表示されたからといって、すぐにグラフィックボードの故障を疑う必要はありません。まずGPU・VRAM・CPU・RAMのOC/UVを定格へ戻し、ドライバー、電源、温度、そして特定ゲームだけか複数ゲームかを順番に確認してください。
0x887A0006=DXGI_ERROR_DEVICE_HUNGは「GPUが壊れたことを示すエラー」ではなく、GPUへのコマンド処理が正常に完了しなかったことを示すDirectXのエラーコードです。OC解除・ドライバー確認・電源と温度の確認という順番で切り分け、複数のUnreal Engine採用ゲームで再現する場合はPC側のハードウェアまで調査範囲を広げてください。



