【ESO】ゲーム終了時にクライアントが応答なしとなり消えない不具合の解決策。
すべてのユーザーにも発生するわけじゃないけど、ある日を境に急にゲームを終了しようとすると、ゲームクライアントがそのまま真っ黒で応答なしとなり、クライアントはタスクマネージャーかSteamで強制終了させないと消えないという不具合に遭ったのは、多分自分だけじゃないと思う。
今回は単にこの不具合について語るだけで、他の不具合とその解決策は割愛です。
単刀直入にいうと、この不具合が起こる理由はESO関連のシェーダーキャッシュが壊れたからだそうで、それを再構築させることで治るはず。
公式フォーラムの情報によると、まずゲームを終了して、「…\Documents\Elder Scrolls Online\live」の中にある「shadercache.cooked」というファイルを削除し、そしてグラボドライバーのキャッシュも削除する。
Nvidiaの場合は「%userprofile%\AppData\Local\NVIDIA\DXCache」
AMDの場合は「%userprofile%\AppData\Local\AMD\DxCache」
DxCache内のファイルは暗号化されてて、どれがESOのキャッシュなのかわかるはずがないので、全部削除するしかないと思う。
ただ、ここにあるキャッシュはESOだけのものじゃなく、他のゲームのキャッシュもあるから、全部削除したら他のゲームを起動する時にももう一度シェーダーキャッシュを作り直すことになるので要注意です。
そして、自分の場合はDxCacheの中にあるファイルを削除する時に、4つだけのファイルが削除を拒否した、多分これらのファイルは現在進行形で使われてるから削除できないだけで、そのままスキップしてもいいと思う。
(※これに関しては多分FirefoxとSteamを終了させてなかったのが原因なので、削除する時は一旦すべてのアプリを終了した方が良さそう。)
念のため、上記のファイルは削除じゃなく、バックアップとしてどこかに移動するだけでも大丈夫だが、DxCacheのファイル数は3桁以上なので、移動するなら別のフォルダーに入れるのをおすすめ。
上記のファイルを削除・移動させたら、ESOを起動すれば、ログイン画面でしばらく固まるはず(自分の場合はBGMが流れながら応答なし)、これはシェーダーキャッシュを作り直してるだけだから心配することがない、パソコンの性能にもよるけど、大体30秒前後で終わると思う。
これでゲームクライアントが消えないという不具合は解消されたはずです。
文頭ではすべてのユーザーにも発生するわけではないと言ったけど、その理由はシェーダーキャッシュは徐々に膨らむもので、ファイルが大きくなるとバグりやすいという傾向があるため、基本年単位でやったユーザーにしか起きない不具合です。
ESO自体は、毎回のアップデート(パッチ当てではない)後にもシェーダーキャッシュを作り直す仕様となっており、もしその時のシェーダーキャッシュがバグって壊れたら、クライアントが消えないようになる。
そのため、今回の不具合は大体アプデの直後に発生する傾向がある。
あとは、これも公式フォーラムの情報だけど、実はそのまま放置してもクライアントが最終的に消える、ただしそれは5-6分間ずっと応答なしの状態になるから、普通にタスクをキルした方がいいです。