ゲームがGameAssembly.dllでクラッシュする原因|Unity IL2CPPはPlayer.logから切り分ける【2026年版】

ゲームがGameAssembly.dllでクラッシュする原因|Unity IL2CPPはPlayer.logから切り分ける【2026年版】

本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。

トラブル・設定 / 2026年9月8日
GameAssembly.dllで落ちたら、Player.logを先に読む
これはWindowsの部品ではなく、そのゲーム専用に作られたファイルです
Unity製ゲームのクラッシュで「障害が発生しているモジュール名: GameAssembly.dll」と記録されることがあります。このファイルはゲームごとにビルドされる固有のもので、他所からコピーしても直りません。Unity公式が案内するPlayer.logの場所と、MOD環境での落とし穴を整理します。
DLLの入手・コピーは無意味まずPlayer.logを読むBepInExは安定版だとIL2CPP非対応

出典:Unity公式マニュアルのIL2CPPスクリプティングバックエンドログファイルの保存場所Windows IL2CPPビルドの生成ファイル一覧(2020.2版)、BepInEx公式ドキュメントのインストール概要IL2CPP版の導入手順にもとづきます。2026年9月8日に確認しました。

Unity製のゲームが落ちたあと、イベントビューアーに「障害が発生しているモジュール名: GameAssembly.dll」と出ている。ファイル名だけでは何なのか見当がつかず、検索すると例によってDLLを配布するサイトが並びます。

ここで押さえておきたいのは、GameAssembly.dllはWindowsの部品ではなく、そのゲームをビルドしたときに生成された専用ファイルだということです。Unity公式の解説では「IL2CPPランタイムと、あなたのすべてのスクリプトコードを含むライブラリ」と説明されています。つまり中身はゲームごとに違います。他所から持ってきても意味がありません。

そして、このクラッシュにはWindowsのイベントビューアーより先に読むべきログがあります。Unityゲームが自分で書き出しているPlayer.logです。この記事では、その場所と読み方、MODを使っている場合の落とし穴に絞って整理します。例外コードやPCの安定性といった共通の話は、それぞれの記事へ送ります。

ゲーム固有のファイルですWindowsのシステムファイルではありません。
先に読むのはPlayer.logUnity公式が保存場所を案内しています。
直すのは整合性チェックDLLの入手やコピーではありません。
MOD環境なら最優先で確認BepInExは版によってIL2CPP非対応です。
目次

前提GameAssembly.dllはゲーム専用に作られたファイル

Unityには、C#で書いたコードをどう動かすかを決める仕組みが2つあります。そのうちIL2CPPは、Unity公式の説明で「Intermediate Language To C++」の略とされ、コードを事前にネイティブコードへ変換して動かす方式です。この方式でWindows向けにビルドすると生成されるのがGameAssembly.dllです。

中身についてUnity公式は「IL2CPPランタイムと、あなたのすべてのスクリプトコードを含むライブラリ」と定義しています。ゲームのロジックそのものがネイティブコードへ変換されて詰まっているファイル、という位置付けです。

ここから2つのことが決まります。1つは、このファイルがゲームごと・ビルドごとに完全に別物だということ。同じ名前でも中身は共有されません。もう1つは、ここで落ちたということは、ゲームのスクリプト処理が動いている最中に異常が出たという手掛かりになるということです。ただし手掛かりであって、原因の確定ではありません。MODがゲーム関数に割り込んでいる場合も、PCのメモリが不安定な場合も、異常が検出される場所はここになりえます。

この定義が載っているUnity公式ページは、現行版から削除されています
GameAssembly.dllの説明は、Unity 2020.2以前のマニュアルに残っている「Windows IL2CPPビルドが生成するファイル」のページで読めます。現行のマニュアルには同じページがありません。定義自体はUnityが公式に示していたものですが、参照するときはアーカイブ版になる点を承知しておいてください。

見分けUnityPlayer.dllとは役割が違う

Unity製ゲームのクラッシュでは、UnityPlayer.dllが障害モジュールになることもあります。どちらが出たかで、最初に見る方向が変わります。

項目UnityPlayer.dllGameAssembly.dll
中身Unityエンジン本体のライブラリIL2CPPランタイムと、そのゲームのスクリプトコード
ゲームごとの違いUnityのバージョンが同じなら共通しやすいゲームごと・ビルドごとに完全に別物
最初に疑う方向エンジン側の処理、描画、Unityバージョン固有の不具合ゲームのロジック、MOD、セーブデータや進行状態
存在するゲームUnity製ゲーム全般IL2CPPでビルドされたゲームのみ

ただし両者はゲーム実行中ずっと連携しています。ゲーム側の処理が不正な状態を作り、最終的にエンジン側で落ちることもあれば、その逆もあります。「GameAssembly.dllだからエンジンは無関係」と切り離せるわけではありません。あくまで最初に見る方向を決めるための材料です。UnityPlayer.dll側が障害モジュールになっている場合の切り分けは、UnityPlayer.dllでクラッシュする原因で扱っています。

なお、自分の遊んでいるゲームがIL2CPPかどうかは、フォルダーを見れば判断できます。BepInEx公式のインストール案内では、IL2CPPを使うゲームは「il2cpp_data」というフォルダーを持ち、もう一方の方式(Mono)のゲームは「Managed」フォルダーを持つと説明されています。GameAssembly.dllとil2cpp_dataの両方があれば、IL2CPPと考えて差し支えありません。

最初に読むPlayer.logの場所と、見るべき部分

ここがこのクラッシュで最も重要な手順です。Unityゲームは実行中の情報を自分でログに書き出しており、Unity公式マニュアルはWindowsでの保存場所を次のように案内しています。

Player.logの場所
%USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log
エクスプローラーのアドレスバーに %USERPROFILE%\AppData\LocalLow と入力すると開けます。そこから開発会社名、ゲーム名の順にフォルダーをたどってください。AppDataは既定で非表示のため、直接たどる場合は隠しファイルの表示を有効にする必要があります。

読むのはファイル全体ではなく、末尾のクラッシュ直前の部分です。イベントビューアーは「GameAssembly.dllで落ちた」としか教えてくれませんが、Player.logには落ちる直前にゲームが何をしていたかが残っています。特定のシーン読み込みで毎回同じエラーが出ている、特定のアセットの読み込みに失敗している、といった具体的な情報が得られます。

注意点が1つあります。最後の1行を原因と決めつけないでください。Unityゲームは正常動作中も警告や例外をログに書きます。見るべきなのは「毎回クラッシュ直前に同じ異常が出ているか」です。1回だけの記録では判断材料になりません。2〜3回落として、共通して出るものを探してください。

MOD環境BepInExは版によってIL2CPPに対応していない

MODを入れているなら、ここが最有力の容疑者です。IL2CPPゲーム向けのMODは、ネイティブコードになったゲーム関数に直接割り込む形で動きます。ゲーム側がアップデートされてGameAssembly.dllが作り直されると、割り込む先の構造が変わり、MODが噛み合わなくなります。ゲームアップデート直後からクラッシュが始まったなら、まずここを疑ってください。

そのうえで、BepInExを使っている人が引っかかりやすい点があります。安定版として配布されているBepInExのドキュメントには「IL2CPPでビルドされたゲームは現時点でサポートしていない」と明記されています。IL2CPPに対応しているのは開発版(master)系統で、Windows向けにIL2CPP-win-x64とIL2CPP-win-x86が別々に用意されています。安定版を落としてIL2CPPゲームに入れても正しく動きません。

IL2CPP版のBepInExを導入している場合、ゲームを起動するとBepInEx/LogOutput.txtというログが生成されます。Player.logと合わせてこちらも確認してください。特定のプラグインを読み込んだ直後に止まっているなら、そのプラグインが原因です。

切り分けるときは、MODを1つずつ無効にするよりMODローダーごと外した完全な素の状態を先に作るほうが早く進みます。それで落ちなくなれば、Windowsにもドライバーにも手を付ける必要はありません。なお、ゲームを再インストールしてもMODが追加したファイルは残ることがあるため、フォルダーの中身も確認してください。

やってはいけないDLLの入手・コピーと、Unity Editorの導入

GameAssembly.dllで検索すると出てくるDLL配布サイトは、このファイルに関しては特に無意味です。中身がゲーム固有である以上、他所のファイルが自分のゲームと噛み合う可能性はありません。同じゲームであっても、バージョンが違えば中身は別物です。旧バージョンのファイルを最新版へ上書きする方法も同じ理由で成立しません。

正しい直し方は、ゲームランチャーの検証機能です。Steamならプロパティからインストール済みファイルの整合性を確認します。破損していれば正しいバージョンが再取得されます。これで直ったなら、Windowsの修復もドライバーの入れ替えも不要です。

もう1つ、Unity HubやUnity Editorをインストールする必要もありません。あれはゲームを作る側の道具で、遊ぶ側に必要なものは製品に同梱されています。同じ理由で、sfc /scannowでGameAssembly.dllが復元されることもありません。SFCが見るのはWindowsの保護されたシステムファイルで、このDLLはその対象外です。

切り分け症状ごとに、次に見る場所を決める

ここまでで直らない場合は、周辺の症状で進む方向を決めます。

あなたの症状最初に確認する場所詳しい手順
1本のゲームだけで、毎回同じ場面で落ちるPlayer.logとセーブデータ新規セーブで再現するか比較します。再現しなければ進行状態側の問題です
MODを入れているMODローダーごと除去素の状態で落ちなければMOD環境の問題です。BepInEx/LogOutput.txtも確認します
例外コードが0xc0000005メモリアクセス違反「メモリを参照しました」が出る原因と直し方
例外コードが0xc000001dCPU命令セットIllegal InstructionとAVX2の確認
ゲームごとに障害モジュールが変わるPC全体の安定性XMP・EXPOを無効にして比較し、CPUのOCも定格へ戻します
落ちる瞬間に画面が暗転するGPU側症状から探す診断チャート

判断の分かれ目は「1本だけか、複数か」です。同じPCで他のゲームが何時間も安定して動くなら、CPUやメモリの故障を疑う根拠は弱くなります。逆に、あるゲームはGameAssembly.dll、別のゲームはUnityPlayer.dll、また別のゲームは別のDLLというように障害モジュールが散らばるなら、ゲーム個別ではなくPC側の共通要因を先に見てください。

FAQよくある質問

GameAssembly.dllをダウンロードして入れ直せば直りますか
直りません。このファイルはゲームごと・ビルドごとに生成される固有のもので、Unity公式も「IL2CPPランタイムとすべてのスクリプトコードを含むライブラリ」と定義しています。他所のファイルが噛み合う可能性はありません。ゲームランチャーの整合性チェックで復元してください。
Player.logはどこにありますか
Unity公式の案内では %USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log です。エクスプローラーのアドレスバーに %USERPROFILE%\AppData\LocalLow と入力し、開発会社名とゲーム名のフォルダーをたどってください。
BepInExを入れているのですが関係ありますか
大いにあります。まずローダーごと外した素の状態で再現するか確認してください。また安定版のBepInExはIL2CPPゲームに対応していません。対応しているのは開発版系統で、Windows向けはIL2CPP-win-x64とIL2CPP-win-x86に分かれています。
自分のゲームがIL2CPPかどうか分かりません
ゲームフォルダーにil2cpp_dataがあればIL2CPP、Managedがあればもう一方の方式(Mono)です。BepInEx公式もこの見分け方を案内しています。GameAssembly.dllが存在する時点でIL2CPPの可能性は高くなります。
sfc /scannowで直りますか
直りません。GameAssembly.dllはWindowsのシステムファイルではなくゲームに同梱されるファイルなので、SFCの対象外です。ゲーム側の整合性チェックを使ってください。
Unity Editorをインストールする必要はありますか
ありません。Unity Editorはゲームを開発するための道具です。製品版のゲームには実行に必要なものが同梱されています。

総括まとめ|このDLLは「直す」のではなく「取り直す」

GameAssembly.dllは、UnityのIL2CPPでビルドされたゲームに生成される、そのゲーム専用のファイルです。Unity公式の定義では、IL2CPPランタイムとゲームのすべてのスクリプトコードが入っています。Windowsの部品ではないので、配布サイトから入手する対象でも、SFCで修復する対象でもありません。

やることの順番は決まっています。まずPlayer.logを読みます。イベントビューアーが教えてくれないゲーム側の事情がここに残っています。次にMODを使っているならローダーごと外して素の状態を作ります。それでも直らなければゲームランチャーの整合性チェックです。

それでも再発するなら、そこで初めて例外コードと周辺症状を見ます。1本のゲームだけならゲーム側、複数のゲームで障害モジュールが散らばるならPC側。この順番を守れば、MODのバージョン不一致が原因なのにWindowsを再インストールする、といった遠回りは避けられます。

2026年9月8日時点の結論

GameAssembly.dllはUnityのIL2CPPでWindows向けにビルドしたときに生成される、ゲーム固有のファイルです。Unity公式は「IL2CPPランタイムとすべてのスクリプトコードを含むライブラリ」と定義しています(この記述は現行マニュアルからは削除され、2020.2以前のアーカイブ版に残ります)。Windowsのシステムファイルではないため、DLL配布サイトからの入手やsfc /scannowでは直りません。最初に読むのはPlayer.log(%USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\Player.log)です。MODを使っているならローダーごと外して比較し、BepInExは安定版がIL2CPP非対応である点も確認してください。例外コードやPC全体の安定性については、それぞれの個別記事で切り分けます。

2026 BEST BUY — GPU 部門
GIGABYTE Radeon RX 9060 XT 16GB GDDR6 グラフィックボード
16GB最安

RX 9060 XT 16GB

Amazon
ASRock RX 9070 XT Steel Legend Dark 16GB GDDR6
コスパ最強

RX 9070 XT 16GB

Amazon
MSI GeForce RTX 5070 12G VENTUS 2X OC
WQHD定番

RTX 5070 12GB

Amazon
MSI GeForce RTX 5070 Ti 16G VENTUS 3X OC
ミドルハイ

RTX 5070 Ti 16GB

Amazon
Amazon PICK UP — ゲーミングライフ
ねんどろいど ブルーアーカイブ 桐藤ナギサ
ねんどブルアカ

ねんど 桐藤ナギサ

Amazon
amiibo レオン・S・ケネディ バイオハザード レクイエム
バイオamiibo

amiibo レオン

Amazon
Creative Pebble V3 USB Bluetooth 3.5mm対応 PCスピーカー ブラック
コスパ定番

Creative Pebble V3

Amazon
オーバーロード Coreful フィギュア アルベド レースクイーンver.
オーバーロード

オバロ アルベド

Amazon
グッドスマイルカンパニー ダンガンロンパ1・2 Reload ねんどろいど セレスティア・ルーデンベルク
ねんどダンガンロンパ

ねんど セレスティア

Amazon
Writer
管理人アバター

ゲーミングスタイル管理人

自作PC愛好家・ゲーム歴15年超

ゲーミングPC歴は15年以上。毎年パーツを更新しながら最新トレンドを追いかけています。初心者にもわかりやすく、上級者も満足できる情報発信を心がけています。