VisualStudioでもUE5のブループリントのデバッグができると聞いたのでその為の設定を行ってしましたが、ビルドした際にビルドエラーが発生してそこで詰まってしまったのでその対策を忘備録で残しておこうと思います。
忘備録なので端折っていたりするところもあるのでもしかしたら他の人が見たらわかりにくいかもしれないです。
環境
UnrealEngine5のバージョン:5.5.4
VisualStudio2022のバージョン:17.14.3
UnrealEngine5のデフォルトプロジェクトの一つのThirdParsonをC++で作成しました。
躓いた個所
Visual Studio で Unreal Engine ブループリントをデバッグする
こちらの記事を参考に設定していました。
躓いた個所は「Visual Studio 用 Unreal Engine プラグインをインストールする」のところです。
本来はVisualStudioを開いた段階でインストールされるみたいですが今回既にコードを弄っていたのでその影響か手動でインストールしないといけなかったです。
プロジェクトにインストールを選んでインストールしました。インストール自体は上手くいったのですがその後にビルドを実行したところ下記のような大量のLNK2019エラーが出てしまいました。
・error LNK2019: unresolved external symbol “__declspec(dllimport)・・・・・・
具体的なエラー文は保存するのを忘れていたため覚えていないのですがこのようなエラーが出てしまいビルドの失敗するようになりました。
Unreal Engine プラグインをアンインストールしてみても駄目でしたので途方に暮れていましたがエラー文を見てみるとどうもUMG周りで失敗しているみたいで確かに表示したいUIがあったのでその表示の処理を追加していました。
それでエラー文をGoogle先生に聞いてみたところ下記の記事に遭遇しました。
Unresolved external symbol when trying to add widget to the viewport
エラー文が似たような内容だったのとUMG周りだったのでこちらの記事の通りにしたところビルドが通るようになりました。
やったことはBuild.cs内のPublicDependencyModuleNames
に"UMG"
を追加したのとBuild.csにPrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore"});
を追加しました。
public class HogeProject : ModuleRules
{
public HogeProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "UMG" });
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore"});
}
}
これでビルドが通るようになりました。
恐らく実装途中のプロジェクトにUnreal Engine プラグインをインストールをしようとしたのがよくなかったみたいです。
今度からプロジェクト作成時にインストールするようにしたいと思います。
下記の公式の記事にもUMG使う際にはBuild.csの設定をしてねと書いてあるのですが今まで設定しなくても使えていたのでこれが原因だとは思わなかったです・・・・
User Interface With UMG
とりあえずこれで次に書きたい記事の内容の実装の続きができます。
以上、忘備録でした。