Windows10 環境での DirectX インストール状況と 9.0C 対応方法

DirectX

主にゲームとなりますが、意外と一般的なソフトでも必要とされる DirectX は、PC 上で 3Dモデル を扱うために必要とされるランタイムです。
Windows には初期インストール状態から OS に組み込まれているものなので、気にする必要はないと思われるかもしれませんが、その状態では不十分です。

新たな変更は無いか確認したく、久々に DirectX に関して調べていたら、Windows10 環境でゲームなどが起動できなかったり、XP 時代に正常に出来たゲームが PC 性能が圧倒的に上がっているにもかかわらずコマ送り状態でまともにプレイできないという声を多く見かけました。
一連の原因が特定できたので対処方法を纏めたいと思います。

DirectX の基礎知識

まずは折角なので DirectX の基礎知識を知っておいていただきたいと思います。
DirectX のランタイムは二つに分けて考えると理解しやすいです。
「基本ランタイム」と「SDK依存の追加ランタイム」分けられます。

例えるなら USB 機器などを繋ぐ際にドライバのインストールがありますが、機器本体を認識する USB ドライバは元々 PC に入っていることもあり気にしたことが無い人が多いはずです。
この流れに当てはめると「機器(ソフトウェア)」「USB ドライバ(基本ランタイム)」「機器のドライバ(SDK依存の追加ランタイム)」のようなイメージができると思います。

基本ランタイム

Windows XP では DirectX 9 が最初から入っており、それ以降の DirectX はインストールできません。
その後の OS のリリースに伴い DirectX 10・11・12、と発展してきて、現在の Windows10 では DirectX12 が最初から組み込まれています。
この部分を「基本ランタイム」と言います。
そしてこの基本ランタイムには下位互換性があります。
この基本ランタイム部分というのはマイクロソフトダウンロードセンターなどで配布されているものではなく OS のファイルの一部なので、トラブルがあったときは OS の修復や再インストールという話になります。
逆に言えばアップデートなどを気にする必要もなく、OS のアップデートで勝手に更新される物です。

SDK依存の追加ランタイム

DirectX 絡みで皆さんがトラブルに遭遇するのは「SDK依存の追加ランタイム」の部分です。
実はこれは OS に最初からは入っていません。
とはいえゲームなどは、ゲームフォルダ内に必要な物を同封している(最近の主流)ので、問題なく動く方が多いです。
そうではないゲーム、特に DirectX9 時代のゲームなどでは「DirectX 9.0Cが入っていません」のような警告が出て起動ができません。
この警告文が混乱の元で、まるで基本ランタイムの DirectX 9 が必要だと警告されてると思ってしまいますが、実際に必要なのは「SDK依存の追加ランタイム」である「DirectX エンド ユーザー ランタイム」というものです。

DirectX エンド ユーザー ランタイムはマイクロソフトダウンロードセンターからダウンロードしてインストールします。
これは 9 用とか 12 用とかが存在するものではなく、DirectX 共通のものです。
これには WEB インストーラーとオフラインインストーラーがあり、ゲームソフトのヘルプや公式サイトでは WEB インストーラーのリンクが張られているのが一般的です。
ここで二つ目のトラブルの原因があり、ダウンロードセンターにある最終型の WEB インストーラーが Windows10 に対応しておらずインストールに失敗します。
古いものは捨てて代わりになる新しい物を買って下さいというのがマイクロソフトの考えですね。

幸いなことにオフラインインストーラーの最終版の方は正常にインストールできるので、これをインストールすれば解決です。
以下のリンク先からファイル名「directx_Jun2010_redist.exe」をダウンロードし、指示に従ってインストールします。
ダウンロードの際に推奨ソフトも一緒にダウンロードさせようとするので、要らない物はチェックを外して下さい。
2010 って古くない?と思われるかもしれませんが、2019年現在でもこれが最終バージョンで、これ以降はランタイムが別途必要無い方法が取られているので気にしなくていいです。

マイクロソフトダウンロードセンター内の directx_Jun2010 ページ
https://www.microsoft.com/en-us/download/details.aspx?id=8109

古いゲームでコマ送りカクカク状態になる場合の対処法

マイクロソフトは Windows10 でというか DirectX12 で、DirectX9 の仕様変更を行いました。
これがこの現象の原因で、後からルール変更されたようなものですから当然古いゲームはトラブルを発生し、メーカーとしても今更パッチも出せないという状況になってます。
筆者の所持しているゲームでも何本かこれに該当して確認できたので、色々検証してみた結果この仕様変更で致命的なのが「d3d9.dll」のファイルが変更されていることだと判明しました。

こうなると対処法は極簡単で、以前の d3d9.dll に戻してやればいいわけですが、安全にシステム側のファイルはそのままでゲームの実行ファイルのあるフォルダ内に配置してやればそのゲームだけ古い d3d9.dll を使えます。
後は古い d3d9.dll を入手すれば良いだけの話なのですが、2010年以前のゲームなどでこれが同封されているものから抜き取ってしまえば良いのです。
とはいえそれを持ってなくて困る人の顔が目に浮かびます。
これはマイクロソフトが悪いので筆者としては怒りのアップロードをしておきます。
古い Capcom のゲームから抜き取ったものです。

当サイトのバックアップドライブ
ファイル名:d3d9.dll
https://drive.google.com/drive/folders/1qAEwtz3vYIXdaoT-uIc67c_3zjOutJvQ

もしこれでも改善しない場合は、ゲームのグラフィック設定で試行錯誤することになりますが、こういったトラブルの場合解決できる項目はゲーム内のオプション設定外の場合が多く、インストールランチャーとかにシステム設定のような項目があり、そこの調整出直る場合がほとんどです。
ゲームのインストールフォルダ内に、通常のランチャー以外に「config.exe」や「setting.exe」のようなものが無いか探してみましょう。
そういった設定画面が見つかったら、基本的に描写設定関係を変更してみます。
CPU・GPU・ソフトウェア、といった選択ができる項目があれば真っ先にそれです。
次に怪しいのはシェーダー関連の設定です。
こればかりはメーカーによって異なりますし、そもそもそういう設定が用意されてなく、自分で xml ファイルの編集が必要な物もあります。
そこまで苦戦するゲームはめったにないので、ある意味貴重な勉強材料の当たりを引いたとおもって頑張ってみて下さい。

コメント