概要
Epic Games Launcher から Unreal Engine 5.8.1 を起動しようとしたところ、次のエラーで失敗した。
LS-0019-IS-PQR1
見た目は「インストール/起動失敗」だが、エンジン本体の破損ではなく、起動前に走る前提条件(Prerequisites)インストーラが非ゼロ終了したことが原因だった。調査手順と、安全な回避策をまとめる。
- 対象: Unreal Engine 5.8.x(本稿は 5.8.1)
- 環境: Windows 10
- 症状: ランチャーから Launch すると
LS-0019-IS-PQR1、エンジン本体は直接起動すると動く
結論(先に答え)
| 項目 | 内容 |
|---|---|
| エラーの意味 |
IS-PQR1 = Prerequisites(前提条件)インストール失敗 |
| 実際に失敗していたもの | エンジン同梱の vc_redist.x64.exe(Visual C++ 再頒布可能パッケージ) |
| 失敗理由 | PC に、同梱版より新しい VC++ ランタイムが既に入っているため、古い同梱インストーラが入れられない |
| 典型終了コード |
1638(0x666) / ログ上は 0x80070666(Cannot install a product when a newer version is installed) |
| 対応方針 | 新しい VC++ を消さない。「既に満たされている」とみなして前提条件チェックを通す |
新しい VC++ をわざわざ古い版にダウングレードする必要はない。
より新しいランタイムが入っているなら、UE の実行条件は満たされている。
症状の切り分け
1. Epic Games Launcher のログを見る
ログは次の場所にある。
%LOCALAPPDATA%\EpicGamesLauncher\Saved\Logs\EpicGamesLauncher.log
今回の決定打は次の行だった。
LogPrerequisites: Running prerequisites installer .../Engine/Extras/Redist/en-us/vc_redist.x64.exe /quiet /norestart
LogPrerequisites: Error: Prerequisites executable failed with code 1
LogBuildPatchServices: Error: EBuildPatchInstallError::PrerequisiteError PQR1
FCommunityPortalLaunchAppTask: ERROR: LS-0019-IS-PQR1
ポイント:
- 失敗しているのは UnrealEditor.exe ではなく
vc_redist.x64.exe - ランチャーは前提条件が通らないと Launch 自体を止める
2. 同梱 VC++ と、PC に入っている VC++ を比較する
同梱物の場所(エンジンのインストール先配下):
<UE_5.8のインストール先>\Engine\Extras\Redist\en-us\vc_redist.x64.exe
レジストリでインストール済み VC++ を確認する例:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" |
Select-Object Version, Major, Minor, Bld, Installed
今回の例:
| 側 | バージョン |
|---|---|
UE 5.8 同梱 vc_redist.x64.exe
|
14.50.x |
| PC に入っている x64 ランタイム | 14.51.x(より新しい) |
3. 同梱インストーラを手動実行して終了コードを見る
$redist = "<UE_5.8のインストール先>\Engine\Extras\Redist\en-us\vc_redist.x64.exe"
$log = "$env:TEMP\vc_redist_ue58.log"
$p = Start-Process -FilePath $redist -ArgumentList "/install","/quiet","/norestart","/log",$log -Wait -PassThru
"ExitCode=$($p.ExitCode)"
Get-Content $log -Tail 30
ログに出た内容(要旨):
Detected related bundle: ... version: 14.51.x ... operation: Downgrade
Error 0x80070666: Cannot install a product when a newer version is installed.
Exit code: 0x666 # 10進で 1638
つまり **「古いのを入れようとして、新しいのが既にあるから拒否された」**だけである。
補足: ランチャー側のログでは
failed with code 1と出ることがあるが、手元で同じバイナリを叩くと1638になるケースがある。いずれも「前提条件インストーラが成功扱いにならなかった」という点では同じ。
4. エンジン本体が壊れていないか確認する
前提条件チェックを迂回して、エディタを直接起動する。
<UE_5.8のインストール先>\Engine\Binaries\Win64\UnrealEditor.exe
今回は直接起動で初期化が進み、プロセスも生存した。
→ バイナリ欠損や GPU 起動失敗ではなく、ランチャーの前提条件ゲートの問題と断定できる。
なぜこうなるか
Epic のランチャーは、アプリアイテムのメタデータに次のようなフィールドを持つ。
-
PrereqSHA1Hash… 前提条件インストーラの識別(SHA1) -
LastPrereqSucceededSHA1Hash… 直近で成功した前提条件の識別
LastPrereqSucceededSHA1Hash が空、または PrereqSHA1Hash と一致しないと、起動のたびに同梱 vc_redist.x64.exe を /quiet /norestart で走らせる。
ところが:
- 同梱 VC++ はエンジンリリース時点の固定版
- ユーザー PC には Visual Studio や他ソフトで より新しい VC++ 14.x が入っていることが多い
- Microsoft の再頒布インストーラは ダウングレードを拒否する(1638 / 0x80070666)
- ランチャーは非ゼロ終了を全部「前提条件エラー PQR1」にする
結果として、実行環境は十分なのに起動できない状態になる。
対処法
方法A(推奨): 前提条件を「成功済み」にする
マニフェスト(.item)は概ね次の場所にある。
%PROGRAMDATA%\Epic\EpicGamesLauncher\Data\Manifests\
中から AppName が UE_5.8 の .item を探す(JSON)。
$dir = "$env:PROGRAMDATA\Epic\EpicGamesLauncher\Data\Manifests"
Get-ChildItem $dir -Filter *.item | ForEach-Object {
if (Select-String -Path $_.FullName -Pattern '"AppName":\s*"UE_5.8"' -Quiet) {
$_.FullName
}
}
該当ファイルをバックアップしたうえで、次を同じ値にする。
"PrereqSHA1Hash": "<既存の値のまま>",
"LastPrereqSucceededSHA1Hash": "<PrereqSHA1Hash と同じ値>"
PowerShell 例(値は自分の .item に合わせて置き換え):
$itemPath = "<該当する .item のフルパス>"
$backup = "$itemPath.bak_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
Copy-Item $itemPath $backup
# 先に PrereqSHA1Hash を読み取る
$jsonText = [System.IO.File]::ReadAllText($itemPath)
if ($jsonText[0] -eq [char]0xFEFF) { $jsonText = $jsonText.Substring(1) }
if ($jsonText -notmatch '"PrereqSHA1Hash"\s*:\s*"([0-9A-Fa-f]+)"') {
throw "PrereqSHA1Hash not found"
}
$hash = $Matches[1]
$jsonText = [regex]::Replace(
$jsonText,
'"LastPrereqSucceededSHA1Hash"\s*:\s*"[^"]*"',
"`"LastPrereqSucceededSHA1Hash`": `"$hash`""
)
$utf8NoBom = New-Object System.Text.UTF8Encoding $false
[System.IO.File]::WriteAllText($itemPath, $jsonText, $utf8NoBom)
その後:
- Epic Games Launcher を完全終了(トレイ含む)
- ランチャーを再起動
- UE 5.8 を Launch
LastPrereqSucceededSHA1Hash == PrereqSHA1Hash になると、ランチャーは前提条件インストーラを再実行せずに起動処理へ進む。
方法B: エディタを直接起動する(確実・即効)
ランチャーを経由しない。
<UE_5.8のインストール先>\Engine\Binaries\Win64\UnrealEditor.exe
ショートカットを作っておけば日常利用にも困らない。
ランチャー連携(ログイン連携など)が必要な場面では方法Aの方がよい。
方法C(任意・保険): 終了コードを成功扱いにする薄いラッパー
「メタデータを直しても、何らかの理由で再度 vc_redist が走る」場合の保険。
- 元の
vc_redist.x64.exeをvc_redist.x64.original.exeに退避 - 実体の代わりに、次の方針の薄い exe を置く
- 元インストーラを同じ引数で実行
- 終了コードが
0/1638/3010(要再起動)なら0を返す
※ ランチャーがファイルロックしていると差し替えに失敗することがある。
その場合はランチャーを完全終了してから行う。
また、将来エンジンを Verify / 再インストールすると同梱ファイルは戻る。
やってはいけないこと
-
新しい VC++ をアンインストールして同梱の古い版だけにする
他アプリ(VS 含む)が依存している可能性が高く、逆に環境を壊しやすい - エラーコードだけ見て「UE を再インストール」から始める
本件では再インストールしても、同じ前提条件ゲートで再発しうる
確認チェックリスト
-
EpicGamesLauncher.logにPrerequisiteError PQR1/vc_redist.x64.exeが出ている - 同梱 VC++ より新しい VC++ 14.x が既に入っている
-
手動実行で
1638または0x80070666になる -
UnrealEditor.exe直接起動は成功する -
.itemのLastPrereqSucceededSHA1Hashを揃えた(または直接起動運用) - ランチャー再起動後、Launch が通る
余談: ディスク空きにも注意
今回の主因ではなかったが、システムドライブの空きが極端に少ないと、別系統のインストール/キャッシュ失敗が重なることがある。
UE はシェーダキャッシュや DDC でも容量を食うので、システムドライブは余裕を見ておくのが無難。
また、過去に設定した DDC パスが存在しないドライブを指していると、起動ログにスキップ警告が出る。動作不能とまでは限らないが、キャッシュ効率は落ちる。
まとめ
-
LS-0019-IS-PQR1は「前提条件インストーラ失敗」コード - UE 5.8 では同梱
vc_redist.x64.exeが、より新しい VC++ 済み環境でダウングレード拒否されやすい - エンジンが壊れているとは限らない。直接起動で切り分ける
- 対処は VC++ を消すことではなく、前提条件を成功済みとみなす(または直接起動)
同じエラーで再インストールを繰り返している人がいたら、まず EpicGamesLauncher.log の LogPrerequisites を見てほしい。
参考(キーワード)
-
LS-0019-IS-PQR1UnrealEngine - UE5
- Windows
- トラブルシューティング
- VisualC++
- UnrealEngine
- UE5
- Windows
- トラブルシューティング
- VisualC++
EBuildPatchInstallError::PrerequisiteErrorPQR1- Visual C++ Redistributable 14.50 vs 14.51
- MSI / Burn 終了コード
1638(ERROR_PRODUCT_VERSION) 0x80070666