Battlefield 1で発生するDirectX function Errorについて
最近寒くなってきましたね
Battlefield 1、遊んでいますか?
私は毎週末、遊んでいます。
それほど遊べる時間はなく、また長時間プレイできるほど体力もないので少しずつのプレイですが、ようやく合計プレイ時間が48時間を達成しました。
いつも看護兵を使ってプレイしているのですが、あまり強いわけではなく、狙われると一瞬でキルされてしまい困っています。
ですが混戦の影響で、蘇生や回復によるスコアがかなり稼げます。
それはさておき、Battlefield 1を始めとする様々なゲームをプレイしていて、エラーが発生して強制終了するということが起こったことはありませんか?
私は現在進行形で起こっています。
Battlefield 1をプレイしていると、1時間~3時間程度経つ頃に「DirectX function Error」が発生してゲームが強制終了してしまうのです。
どのようなものかというと、こんな感じ
海外でも多くのユーザーが同様のエラーに頭を悩ませていて、解決方法が見つかっていない問題の一つです。
私もすでに販売元であるEAには問い合わせていて、2週間ほど話をしているのですが、全く解決には至りません。
先に私のPCの環境をご紹介します。
- CPU:Intel Core i7 4790K
- メモリ:CFD DDR3 Elxir 16GB(8GB * 2)
- M/B:MSI Z87-GD65 Gaming
- グラボ:ELSA S.A.C GTX770 4GB
- 電源:Corsair HX750(750W)
次に、これまでに私が試したことを一度ご紹介しておきます。
なお、ここで紹介する内容は私が全て試して解決に至らなかった行為です。
もしかするとこれをご覧になっている方の環境で解決に至るかもしれません。
- Battlefield 1の再インストール
- グラフィックドライバのクリーンインストール
- 他ドライバの更新
- CCleanerを使ったメンテナンス
- Revo Uninstallerを使ったBattlefield 1の完全アンインストール
- BIOSから内蔵グラフィックス支援機能を無効化
これらによって解決はしていません。
さて、ではここで少しエラーを読み解いてみます。
ただ、決して解決方法がわかったわけではありませんのであしからず。
まず、先程のエラーですが、簡単に翻訳すると「DirectXの関数"GetDeviceRemovedReason"に失敗した」というものです。
ではこの関数とは何なのか、MSDN(Microsoft Developer Network)から調べてくると、次のように書いてありました。
デバイスの削除理由を取得します。
とまあ関数名の通りで、デバイスが削除された理由を取得する関数です。
このデバイスとは、グラフィックボードのことを指します。
しかし、ここで不審な点が1つ。
プレイ中にグラフィックボードは取り外していない
どう考えても、グラフィックボードをプレイ中に取り外すなんてバカげたことを考える人はいません。
また、マザーボードから衝撃で外れた可能性も考えられますが、そうなると画面の表示自体も停止してしまう上、すぐに復帰するなんてことはありえないはずなのです。
また、DXGI_ERROR_DEVICE_HUNGとあるように、グラフィックボードがハングアップしたように見受けられます。
ハングアップする理由は様々あり、どれが原因だとは言えません。
それぞれの環境でストレステストを行い、同様の現象が再現できるか確認し、そこからパーツの故障か判断しなければなりません。
しかし、現在多くのGTX770ユーザーの元で同様のエラーが発生しているこの状況は異常であり、個々パーツの不具合とは考えにくいでしょう。
また、ゲームの問題の可能性もありますが、Battlefield 1で採用されているFrostbite Engineだけでなく、Cry EngineやUnreal Engineなどその他様々なプログラムで発生しているため、原因はグラフィックボードの開発元である「NVIDIA」なのではないでしょうか。
現在、NVIDIAのフォーラムにはこの問題専用のスレッドが設置されており、多数のユーザーが怒りの声を書き込んでいます。
それに対してNVIDIAは「出来る限り早めに対応する予定」との見解を示していますが、いつ頃その修正が公開されるかは未定のようです。
このエラーは長時間プレイしていると発生するので、「長時間のゲームプレイを抑制する」という意味では効果がありそうです。