0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unityゲームが突然クラッシュする原因と対処法を、自分の環境で検証してみた

Posted at

Unity製ゲームって、ある日突然クラッシュしませんか?
私は去年、「DINKUM」「Lethal Company」「Risk of Rain 2」あたりをプレイしていて、まさにその“地獄ループ”にハマりました。
起動して数分でフリーズ、黒い画面、無音、再起動……。

しかも他のUnreal製ゲームは全然平気。
「なんでUnityだけ!?」という感じで、半年くらい悩み続けました。

最初は「メモリ不足か?」「GPUドライバか?」「Windows 11のせいか?」と、いろいろ試したんですが、原因は意外と複雑で。

この記事では、自分がクラッシュ原因を切り分けていった再現手順と注意点、そして試して比較した対処法をまとめます。

同じようにUnity製ゲームだけ落ちる人の参考になればうれしいです。


まず疑うべきは「おま環」:ドライバとWindowsアップデート

「おま環」(お前の環境が悪い)ってネットではよく言われますが、実際かなり多いです。

私の環境では、RTX 4060 Ti + Windows 11 + 最新ドライバという一見問題なさそうな構成でも、Unityのタイトルだけが頻繁に落ちていました。

結論からいうと、グラフィックドライバとWindows Updateのズレが引き金になっていました。

UnityはDirectX周りの挙動がかなりシビアで、OSやドライバが微妙に古いと、それだけでアクセス違反(Access Violation)を起こすことがあります。

特に「Insiderビルド」のWindows 11を使っている場合、Unityランタイムと相性が悪いケースも報告されています。

私がやった最初のステップはこれです:

  • NVIDIAのドライバを完全削除(Display Driver Uninstaller使用)
  • 最新のGame Ready Driverを入れ直す
  • Windowsを「通常のリリースビルド」に戻す(Insider Program無効化)

この3つをやっただけで、かなり安定しました。

「グラボは新しいのにおかしい」という人は、ドライバの再インストールから見直してみてください。


Unityのクラッシュログを読む:player.logとdmpファイル

次に試したのが、Unityのクラッシュログを直接読む方法です。

プレイヤー視点では地味ですが、開発側のログをのぞくと「原因のパターン」が見えてきます。

Windowsの場合、クラッシュ直後に以下の場所にログが出ています:


C:\Users<ユーザー名>\AppData\LocalLow<会社名><ゲーム名>\Player.log

このファイルの末尾に「Crash!!!」と書かれていれば、Unityエンジン内部で例外が起きています。

たとえば「d3d11: failed to create buffer」みたいな行があれば、DirectX 11のメモリ確保に失敗している可能性が高いです。

さらに原因を深掘りしたい場合は、クラッシュフォルダ内の「.dmp」ファイルをWinDbgで開くのがおすすめ。

私は以下のようにして解析しました:

  1. UnityのBuild Settingsで「Copy PDB files」にチェック
  2. ビルド実行 → クラッシュ発生後、Temp\Crashesフォルダにdmp出力
  3. WinDbgで開いて「!analyze -v」を実行

すると、どのスクリプトのどの行で落ちたのかが表示されます。

私のケースでは、RawTextureUtil.cppの1580行目でAccess Violation。

つまり、メモリ参照が壊れていました。


メモリ不足・VRAM関連のクラッシュを検証

Unity製ゲームで多いのが「メモリリーク」系のクラッシュです。

特に大型MODを導入していたり、テクスチャを大量に扱うタイトルだと、VRAM(ビデオメモリ)不足が原因になります。

私が遭遇したケースだと、4Kモニターでプレイしていたとき、ゲーム起動から10分くらいでブラックアウト。

ログにはこんな行が残っていました:


D3D11: Failed to allocate texture with dimension 8192x8192.

つまり、GPUのメモリが足りなくなってクラッシュしていたわけです。

このとき効果があったのは次の設定です:

  • 解像度をフルHD(1920×1080)に落とす
  • 垂直同期(VSync)をオンにしてFPSを60に固定
  • アンチエイリアスをOFFまたは2xに下げる

特にFPS固定は効果が大きく、60fps制限をかけるだけで、クラッシュが一度も起きなくなったタイトルもありました。

Unityは描画負荷がスパイクするとき(=一瞬だけ高fpsになるとき)に落ちることが多いので、固定fpsが安定化のポイントです。


ハードウェア・オーバークロックの落とし穴

もうひとつ見落としがちなのが、GPUのオーバークロック設定です。

実は、Unityのランタイムはオーバークロックに非常に敏感で、わずかなクロック上昇でも不安定になります。

私のRTXカードも、出荷時から「OCモデル」でした。

普段は他のゲームで全く問題なかったのですが、Unityタイトルだけが落ちる。

NVIDIAコントロールパネルで「デバッグモード」をONにしたら、ピタッと止まりました。

同様の回避策は2つあります:

  • NVIDIAの場合:「ヘルプ」→「デバッグモード」でクロックを標準化
  • MSI AfterburnerなどでGPUクロックを−50〜100MHzほど下げる

これで安定するなら、ほぼクロックが原因です。

一部のOCモデル(特にMSI/ASUS系)はUnityとの相性が悪いことが知られています。


Windows 11でUnityゲームが起動しない場合のチェックリスト

最近特に多いのが「Windows 11でUnity製ゲームが起動しない」ケース。

これはUnityの問題というより、Windows側の仕様変更が絡んでいます。

以下の項目を確認してみてください:

  • 「Insider Program」ビルドではないか(安定版に戻す)
  • ディスプレイ接続がHDMI/DPか(変換アダプタは避ける)
  • ハードウェアアクセラレーションをOFFにしてみる(Chrome/Discord/Steam)
  • NVIDIAコントロールパネルの「電源管理モード」を「最高パフォーマンス」ではなく「最適電力」に変更

特にInsider版のWindowsは不安定です。

私の環境でも「OSを通常版に戻した瞬間」から、半年悩んだクラッシュが嘘のように消えました。


MODや外部ツールの干渉も疑う

Unity製の人気タイトルはMOD対応が多いですが、その分クラッシュの温床にもなります。

特にBepInExやMelonLoaderなどを使うゲームでは、ライブラリの競合が起きやすいです。

私が確認した例:

  • MODを外すと安定動作
  • 再導入するとまた落ちる(特定MODのdllが原因)

クラッシュ直後のplayer.logを見ると、DllNotFoundExceptionAccess violationが出ていました。

Unityのクラッシュログに「Stack Trace」が残っている場合、MODフォルダのdll名を見てみると原因がわかることがあります。

Steamワークショップ経由でMODを導入している場合、
**「ローカルファイルを検証」→「再起動」**するだけでも直るケースが多いです。


比較:クラッシュ原因の種類と対処法まとめ

これまでの検証をざっくり分類すると、Unityゲームのクラッシュ原因は主に5種類に分けられます。

  • ドライバ・OSの不整合(Insider版・古いドライバ)
  • GPUオーバークロック・電源設定
  • VRAM/メモリ不足(高解像度・MOD多用)
  • 外部オーバーレイ・MODツールの干渉
  • Unityランタイムのバージョン固有バグ

それぞれの対処法を試す順番のおすすめは:

  1. ドライバ・Windows更新を最新化
  2. VSync ON+FPS固定
  3. MOD・オーバーレイを無効化
  4. GPUをデバッグモードに戻す
  5. クラッシュログ(player.log / dmp)解析

1つずつ潰していけば、ほとんどのケースで原因が特定できます。

「全部やってもダメ」な場合は、Windowsのクリーンインストールが最終手段です。


まとめ:Unityは悪くない、けど環境にはシビア

半年間、Unityゲームが落ちまくる環境で試行錯誤して思ったのは、
「Unityそのものが不安定」ではなく、「環境依存が極端に強い」だけということ。

同じバージョンのUnityでも、OSビルドやドライバが違うだけで挙動がまるで変わります。

もし「Unity製のゲームだけ落ちる」と感じているなら、
冷静にログを読み、1つずつ切り分けるのが一番の近道です。

そして、FPS制限・ドライバ再インストール・Insider無効化の3点セットは、ぜひ試してほしい。

最後に、自分でUnityゲームを作る側としても、こうしたクラッシュの仕組みを知っておくとすごく勉強になります。

もしこれからUnity開発を始めるなら、ツールや教材がまとまっているUnity入門の森ショップを覗いてみると良いかもしれません。

環境トラブルに強い開発者になれると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?