この方の記事や公式サイトなどを参考にUE5(5.2.1)をインストールしようと試みました。インストール自体は成功したのですが、プロジェクトをVisualStudio2022で開くと、エラーが発生してしまいます。エラーは十数個出現していますが、その全てがプロジェクト作成時にすでに存在するファイルで発生しています。この他にもエラーが発生していますが、型エラーやオーバーライドのエラーなど問題と関係ない(と考えられる)ようなエラーです。また、プロジェクトを作成してそれをVisualStudioで開いただけ(一切の手を加えていない状態)でもエラーが出現します。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E0035 #error ディレクティブ: Unsupported architecture, please declare which address bit distinguish user space from kernel space UE5 C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\CoreUObject\Public\AssetRegistry\AssetDataTagMap.h 184
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E1835 属性 "deprecated" はここでは適用されません UE5 C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\CoreUObject\Public\Serialization\BulkData.h 1201
エラー (アクティブ) E0415 "UPTRINT" から "UE::CoreUObject::Private::FPackedObjectRef" に変換するための適切なコンストラクターが存在しません UE5 C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\CoreUObject\Public\UObject\PackedObjectRef.h 32
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E0135 名前空間 "FixedTagPrivate" にメンバー "KernelAddressBit" がありません UE5 C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\CoreUObject\Public\AssetRegistry\AssetDataTagMap.h 201
試してみたこと
問題の切り分け
自身の結論
私では原因の特定ができませんでした。
自身の考察 やったことなど
エディターとUE5のどちらに原因があるのか探るために、以下の動作を行い挙動を確認しました。
・VisualStudioではなく、VSCodeを使用してみる
=>初期プロジェクトではエラーがでない。
・UE5でコンパイルが成功するか
=>初期状態ならコンパイルは成功する
ここからVisualStudioの問題であると予想したため、VisualStudioのアンインストール、及び再インストール、PCの再起動を行いました。また、足りないコンポーネントがないように、上のサイトに加えて以下の情報も参考にコンポーネントをインストールしました。
https://papersloth.hatenablog.com/entry/2023/04/18/194340
しかし、同じエラーが発生しています。仕方がないのでVisualStudioではなく、VSCodeを使用して学習を進めようと考え、一番上のサイトのComponentの部分まで進めました。しかし、ここでもエラーが発生してしまい、解決できませんでした。以下がUE5上でのコンパイル時に発生します。VSCode上では、型エラーと識別子エラーが発生していますが、コードはサイトのコードをコピーしただけなので、文法のミスはないはずです。
---------- Creating patch ----------
Running C:\Program Files\Epic Games\UE_5.2\Engine\Build\BatchFiles\Build.bat -Target="TestEditor Win64 Development -Project=""C:/Users/imamu/GameCreate/Practice/UnrealEngine5/Practice/Test/Test.uproject""" -LiveCoding -LiveCodingModules="C:/Program Files/Epic Games/UE_5.2/Engine/Intermediate/LiveCodingModules.txt" -LiveCodingManifest="C:/Program Files/Epic Games/UE_5.2/Engine/Intermediate/LiveCoding.json" -WaitMutex -LiveCodingLimit=100
Quick restart disabled when re-instancing is enabled.
Using bundled DotNet SDK version: 6.0.302
Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -Target="TestEditor Win64 Development -Project=""C:/Users/imamu/GameCreate/Practice/UnrealEngine5/Practice/Test/Test.uproject""" -LiveCoding -LiveCodingModules="C:/Program Files/Epic Games/UE_5.2/Engine/Intermediate/LiveCodingModules.txt" -LiveCodingManifest="C:/Program Files/Epic Games/UE_5.2/Engine/Intermediate/LiveCoding.json" -WaitMutex -LiveCodingLimit=100
Log file: C:\Users\imamu\AppData\Local\UnrealBuildTool\Log.txt
Creating makefile for TestEditor (Build.version is newer)
Parsing headers for TestEditor
Running Internal UnrealHeaderTool C:\Users\imamu\GameCreate\Practice\UnrealEngine5\Practice\Test\Test.uproject C:\Users\imamu\GameCreate\Practice\UnrealEngine5\Practice\Test\Intermediate\Build\Win64\TestEditor\Development\TestEditor.uhtmanifest -WarningsAsErrors -installed
Total of 0 written
Reflection code generated for TestEditor in 0.9514502 seconds
Building TestEditor...
Using Visual Studio 2022 14.34.31946 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
[Upgrade]
[Upgrade] Using backward-compatible include order. The latest version of UE has changed the order of includes, which may require code changes. The current setting is:
[Upgrade] IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1
[Upgrade] Suppress this message by setting 'IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_2;' in TestEditor.Target.cs.
[Upgrade] Alternatively you can set this to 'EngineIncludeOrderVersion.Latest' to always use the latest include order. This will potentially cause compile errors when integrating new versions of the engine.
[Upgrade]
Determining max actions to execute in parallel (12 physical cores, 20 logical cores)
Executing up to 12 processes, one per physical core
Requested 1.5 GB free memory per action, 10.19 GB available: limiting max parallel actions to 6
Building 11 actions with 6 processes...
[1/11] Compile [x64] SharedPCH.Engine.ShadowErrors.InclOrderUnreal5_1.cpp
[2/11] Compile [x64] Test.cpp
[3/11] Compile [x64] CPPHelloWorld.gen.cpp
[4/11] Compile [x64] Test.init.gen.cpp
[5/11] Compile [x64] CPPComponent.cpp
C:\Users\imamu\GameCreate\Practice\UnrealEngine5\Practice\Test\Source\Test\Public\CPPComponent.h(12): error C2079: 'ACPPComponent' ?? ??????class 'CPP_BP_API' ?Ŏg?p???Ă??܂??B
~以下文字化けしたエラーが続く~
C:\Users\imamu\GameCreate\Practice\UnrealEngine5\Practice\Test\Intermediate\Build\Win64\UnrealEditor\Inc\Test\UHT\CPPComponent.gen.cpp(148): error C2440: '????': 'UClass *(__cdecl *)(void)' ????'UClass *(__cdecl *)(void)' ?ɕϊ??ł??܂???
C:\Users\imamu\GameCreate\Practice\UnrealEngine5\Practice\Test\Intermediate\Build\Win64\UnrealEditor\Inc\Test\UHT\CPPComponent.gen.cpp(148): note: ?X?R?[?v?????̖??O???肳?ꂽ???Ń^?[?Q?b?g?^?Ɉ??????̂͂???????
[7/11] Compile [x64] TestGameModeBase.gen.cpp
[8/11] Compile [x64] CPPVariable.gen.cpp
[9/11] Compile [x64] TestGameModeBase.cpp
[10/11] Compile [x64] CPPVariable.cpp
[11/11] Compile [x64] CPPHelloWorld.cpp
Build failed.
VSCodeでもエラーが発生するので、UE5自体に問題があると考えました。そのため、UE5とEpic Games Launcher のアンインストールと再インストール、再起動、検証する、を試しました。ですが、同じエラーが発生したままで解決できませんでした。
・検索するとどうやら
この方のように「C++プロジェクトでパスにマルチバイト文字(日本語)が含まれている場合エラーが発生する」ようです。ですが、私の場合はパスに日本語を含んでいないので当てはまらないと考えました。
・一番上のエラーをよく見ると
AssetDataTagMap.hの177付近で発生
// This bit is always zero in user mode addresses and most likely wont be used by current or future
// CPU features like ARM's PAC / Top-Byte Ignore or Intel's Linear Address Masking / 5-Level Paging
#if defined(__x86_64__) || defined(_M_X64)
static constexpr uint32 KernelAddressBit = 63;
#elif defined(__aarch64__) || defined(_M_ARM64)
static constexpr uint32 KernelAddressBit = 55;
#else
#error Unsupported architecture, please declare which address bit distinguish user space from kernel space
#endif
ここのelseの部分でエラーが発生しているようです。つまり、KernelAddressBitを上手く設定できていないことが原因なのかなと考えました。ですが、この部分を検索しても良い情報が得られず、また私自身プログラミング初心者で低レベルの知識がないため、自身でのデバッグは困難であると判断し、今回質問させていただきました。
ちなみに自身が使用しているデバイスは、
|プロセッサ|12th Gen Intel(R) Core™ i7-12700F 2.10 GHz|
|実装 RAM|32.0 GB
グラボ GeForce RTX 3070
であるため、なぜアーキテクチャがサポートされていないのか分かりません。