【2016/9/21 記事更新】

win10 directx error unfocused

Windows 8.1やWindows 10ではBF3を起動しようとすると「DirectX Error」が発生するようです。もしかするとBF4やWindows 7でもこのエラーが発生するかもしれません。この記事ではその「DirectX Error」の解決方法をいくつか紹介します。私のWindows 10では解決策3または4を実行することでBF3をプレイできるようになりました。

※ファイルの拡張子は表示する設定にしておいてください。エクスプローラー上部の「表示」→「ファイル名拡張子」にチェックを入れてください。

解決策1 BF3の互換性設定を変更する

Windows 7ならこの設定で直るかもしれません。

① 「bf3.exe」を探す
BF3のインストール先フォルダ内にあります。ほとんどの人は「C:\Program Files (x86)\Origin Games\Battlefield 3」内にあるはずです。

② 「bf3.exe」を右クリック→「プロパティ」

③ 「互換性」タブで「互換モードでこのプログラムを実行する」にチェック→「Windows Vista (Service Pack 2)」を選ぶ

④ 「OK」

起動できなければ互換性設定は元に戻して大丈夫です。

解決策2 DirectXとVisual Cを再インストールする

あまり効果が無さそうです。飛ばしていただいて構いません。

① DirectXの再インストール
「Battlefield 3\__Installer\directx\redist」内の「DXSETUP.exe」を実行します。

② Visual Cの再インストール
「Battlefield 3\__Installer\vc\vc***\redist」内の「vcredist_x64.exe」を実行します。

解決策3 BF3のバイナリファイルを書き換える

BF3のバイナリファイルを1箇所書き換えることで遊べるようになる場合があります。この方法は成功例が多く報告されています。私もこの方法で解決し、マルチプレイも含めて問題無く遊べましたが、もしかするとバイナリ書き換えがチートと判断されてキックされるかもしれません。キャンペーンだけなら遊べると思います。

バイナリを書き換える方法は2つあって、ひとつは有志制作のツールを使う方法(A)、もうひとつはバイナリエディタを使って自分で書き換える方法(B)です。ツールを使う方が簡便で良いと思います。ただしそのツールに悪意が無いとは保証できないので、バイナリエディタを使った方が安心かもしれません。

方法A ツールを使って自動で書き換える
① 次のページの下の方の「BFExeFix.exe (16 kB - downloaded ***** times.)」をクリックしてダウンロード
Patch program for Battlefield3/4 DirectX Error (CreateSwapChain)

② ダウンロードした「BFExeFix.exe」をダブルクリックして実行

win10 directx error bfexefix

③ 「Find bf3.exe (Battlefiled 3)」をクリックすると「File Path:」が自動で書き込まれます。書き込まれなかった場合は「bf3.exe」のファイルパスを自力で探してください。

④ 「Perform Patch」をクリックするとバイナリが書き換えられます。同時に、バイナリ書き換え前のファイルが「bf3.exe.backup」という名前でバックアップされます。

方法B バイナリエディタを使って手動で書き換える
バイナリエディタで「bf3.exe」のアドレス「01C6AE71」を「99」→「00」に書き換えます。バイナリを下手に弄るとBF3が起動しなくなる可能性があるので注意してください。詳しい手順は以下の通りです。

① 初めにバックアップを作成しておきます。「bf3.exe」をコピーして「bf3.exe.backup」という名前にしてください。

② 次のサイトからStirlingをダウンロード
→ Stirlingの詳細情報 : Vector ソフトを探す!

③ ダウンロードされたファイル(.lzh)を右クリック→「すべて展開(T)...」→「展開(E)」

④ 展開されたフォルダ(stir131)内の「Stirling.exe」を実行

⑤ 「bf3.exe」を画面内にドラッグ&ドロップするなどして開く

⑥ メニューバーの「検索・移動(S)」→「指定アドレスへ移動(J)...」

⑦ 「01C6AE71」と入力(コピペ)して「OK」

⑧ 「00」と入力

⑨ メニューバーの「ファイル(F)」→「上書き保存(S)」して、Stirlingを終了する

解決策3.1 サーバーからキックされたら
マルチプレイでサーバーからキックされ以下のようなエラーが表示された場合は、PunkBusterを再インストールしてみるか、それでもダメなら書き換えたバイナリファイルを元に戻す必要があります。PunkBusterとは、プレイヤー全員が導入必須のチート対策プログラムです。
エラーゲームが切断されました:PunkBusterからキックされました。提示された理由:PunkBuster kicked player '******' (for 0 minutes) ... RESTRICTION: Corrupted File/Memory [98080837]

まずはPunkBusterの再インストールを試してみます。

① フォルダ「Battlefield 3」内にある「pbsvc.exe」を実行
② 「Install/Re-Install PunkBuster Service」にチェックされていることを確認して「Next」
③ 同意する場合は「I Agree」をクリック
④ 「Next」が押せるようになったらクリック
⑤ しばらく待って「Tests completed successfully without error.」と表示されたら「OK」
⑥ 「Finish」

これでもサーバーからキックされるようなら、バイナリファイルを元に戻す必要があります。「bf3.exe」を削除してから、「bf3.exe.backup」を「bf3.exe」という名前に変えてください。

解決策4 Windowsのシステムロケールを変更する

Windowsのシステムロケールを変更します。この方法でほとんどの人はBF3を遊べるようになりますが、他のアプリケーションの動作に支障を来す可能性があります(日本限定のゲームが起動しなくなる、文字化けする、等)。

① デスクトップ画面左下で右クリック→「コントロールパネル」を開く

② 「時計、言語、および地域」→「地域」をクリック

③ 「管理」タブで「システム ロケールの変更(C)...」をクリック

④ システムロケールを「英語 (米国)」に変更して「OK」

変更を適用するには再起動してください。

解決策5 AppLocaleを使ってOriginを起動する

2015/2/4 コメントを頂いたので解決策5を追加しました。
BF3 Windows8.1 DirectXエラーをAppLocaleで回避する方法:曹瑜のブロマガ - ブロマガ


MicrosoftからのAppLocaleの提供は終了しました。WebArchiveからであればダウンロード可能ですが、私のWindows 10ではAppLocaleを使ってもBF3を起動できませんでした。

参考


Ads