PCゲームが動かない時は使っているPCのDirectX(Direct3D)の対応バージョンをOSとグラフィックのハードそれぞれ確認してみましょう。
必要なDirectXのバージョンや機能を満たしていないかもしれません。DirectXバージョンの考え方と調べ方、対処方法をまとめます。
考え方:OSの対応DirectXバージョンとグラフィックハードウェアのDirectX(Direct3D)の対応バージョン・機能は別物
Windowsはバージョンごとに対応しているDirectXのバージョンが決まっています。また、グラフィックのハードウェアにも対応しているDirectX(Direct3D)のバージョン、機能(機能レベル)があります。
ゲームの要件に合うようにOSのDirectXバージョンとグラフィックのハードの機能レベルを両方満たしている必要があります。
OSの対応DirectXバージョン(9.0以降)
DirectX 9.0:主にWindows XP。Windows 2000、Me、98でも利用できる
DirectX 9.0c:Windows XP SP2に搭載
DirectX 10.0:Windows Vista以降に搭載
DirectX 10.1:Windows Vista SP1以降でのみ利用できる
DirectX 11.0:Windows Vista SP2 + Platform UpdateとWindows 7以降で利用可能
DirectX 11.1:Windows 8以降で利用可能
DirectX 11.2:Windows 8.1でのみ利用可能
DirectX 11.3:Windows 10以降でのみ利用可能
DirectX 12:Windows 10以降でのみ利用可能
DirectX 12 Ultimate:Windows 10バージョン2004以降でのみ利用可能
グラフィックハードウェアの対応Direct3Dバージョン
グラフィックのハードウェアがどのDirectX(Direct 3D)のバージョンに対応しているか、どの機能レベルに対応しているか確認します。Direct3D 11から「機能レベル」という概念が導入されています。機能レベルは12_2、12_1、12_0、11_1、11_0といったものが振られています。
グラフィックのハードウェアがDirectX 12に対応していても、実装している機能レベルが本来のDirectX 12(Direct3D)相当になっているとは限りません。
機能レベルが低いと対応しているDirect3Dの機能が低かったり、少なくなるので動作できるゲームが少なくなります。
調べ方:OSのDirectX対応バージョンとグラフィックの機能レベル
手順
1.Windowsの検索欄やファイルを指定して実行(Ctrl+R)で「dxdiag」を入力して実行
2.DirectX診断ツールが立ち上がる
3. 「システム」タブの「DirectX バージョン」を見る。ここはOSが対応しているDirectXバージョンとして見る
4. 「ディスプレイ」タブを開き、「ドライバー」欄の「機能レベル」を見る。ここはハードウェアが対応しているDirect3Dのバージョンとして見る
T100HA(Windows10 21H2)の対応バージョン
診断ツールで見てみると以下のようになっていました。
「システム」タブの「DirectX バージョン」は "DirectX 12"
「ディスプレイ」タブの「ドライバー」欄の「機能レベル」は "11_1、11_0、10_1、10_0、9_3、9_2、9_1"
T100HAはCPU(Intel Atom x5-Z8500)に内蔵されているIntel HD Graphicsコントローラを使っています。Wikipediaの「Intel HD Graphics」のAtom(Cherry Trail)欄を見ると、FL(feature level)が11_1でツールの表示と合っています。
対処方法
- OSのDirectXを更新してみる(またはOSをバージョンアップする)
- グラフィックドライバーが古い場合はドライバーを更新してみる。対応する機能レベルが上がる可能性がある
- 必要なDirectXのバージョン、機能レベルを満たしているグラフィックのハードに変えるか、パソコンを変える
参考にしたWEBページ
Direct3D 12のグラフィックス ハードウェアの機能レベル