意外とちゃんと解説している記事がなかったのでメモ用に保存
PLATEAU-SDK-for-Unrealのダウンロード
Fabにも存在はしているが最終更新が結構前なのでGithubからダウンロードする

GithubのReleaseページから最新のzipファイルをダウンロード

適当なところでzipファイルを解凍する。
PLATEAU SDK for Unreal自体の作業はここまで。
プロジェクトファイルの設定
※Unreal側のライブラリの読み込み方法やCPPのバージョン指定方法が変わった関係上v3.2.2まではUnreal Engine 5.5.4以上のバージョンでは動作しません。(ほかにもいろいろエラーは出ます)
まずc++でプロジェクトファイルを作成します。

そうすると10分ぐらい待てばプロジェクトが開くはずです。
(シェーダーのコンパイルに時間がかかるのでゆっくり待ちましょう)

プロジェクトが開いたらプロジェクトを閉じます。
裏でVisualStdioでSlnが開いている場合も閉じてください。

エクスプローラーでプロジェクトが存在しているフォルダに行きます。

このフォルダに「Plugins」フォルダを新規作成します。

作成した「Plugins」フォルダ内にPLATEAU-SDK-for-Unrealを配置します。
解凍したPLATEAU-SDK-for-Unrealフォルダ内の「PLATEAU-SDK-for-Unreal」を作成した「Plugins」フォルダ内にコピーします。


コピーが終わったらプロジェクトが保存されているフォルダ(Pluginsの上のフォルダ)に戻って、
「プロジェクト名.uproject」ファイルがあると思うのでそのファイルを右クリック。
Windows11であれば「その他のオプション」→「Generate Visual Studio Project files」をクリック。
Windows10であれば確か右クリック時に「Generate Visual Studio Project files」が出ていた気がするのでそれをクリック。
これをすることでslnにPluginsのものが追加されてビルドできるようになります。



slnを開いて「ソリューションエクスプローラー」のGame→プロジェクト名→Plugins→PLATEAU-SDK-for-Unrealの表示があれば成功しています。

でソリューション’プロジェクト名’と書かれている部分を右クリックしてプロパティをクリック。
共通プロパティのスタートアッププロジェクトの構成の部分が
シングルスタートアッププロジェクトで作成したプロジェクトが選択されているか、
現在の選択範囲になっていることを確認してください。
まれに、ほかのものが選択されていてビルドができない場合があります。

確認が終わったらメニューバーの部分が「Development_Editor」になっていることを確認してビルドを実行します。

ビルドが成功すればプロジェクトが立ち上がってPLATEAUメニューが表示されているはずです。

ここまで来たらいったんプロジェクトを閉じて、slnも閉じて、「プロジェクト名」.uprojectファイルをダブルクリックして通常起動をしてみてください。
「Development_Editor」でビルド成功した場合はuprojectファイルをダブルクリックして起動してもメニューバーにPLATEAUメニューが表示されます。
UE5.6 or 5.7でビルドを通せるようにする(非推奨)
個人的に5.7でビルドを通したかったのでいろいろ修正したものです。
動作保証対象外ですので、試してみるときは自己責任でお願いします。(私に責任はありません)
Build.cs ファイルの修正
- Build.cs ファイルの修正(全5ファイル)
Source/PLATEAURuntimeBPLibraries/PLATEAURuntimeBPLibraries.Build.cs
Source/PLATEAUTests/PLATEAUTests.Build.cs
Source/PLATEAUEditorBPLibraries/PLATEAUEditorBPLibraries.Build.cs
Source/PLATEAURuntime/PLATEAURuntime.Build.cs
Source/PLATEAUEditor/PLATEAUEditor.Build.cs
☆修正内容
1.ファイル内の CppStandard = CppStandardVersion.Cpp17; をCppStandard = CppStandardVersion.Default
に変更します(存在する場合)。
2.ファイル内の PublicAdditionalLibraries.Add("glu32.lib");
および opengl32.lib
を以下のように変更します。
– PublicAdditionalLibraries.Add(“glu32.lib”);
– PublicAdditionalLibraries.Add(“opengl32.lib”);
+ PublicSystemLibraries.Add(“glu32.lib”);
+ PublicSystemLibraries.Add(“opengl32.lib”);
LineBatcher の修正(1ファイル)
Source/PLATEAUEditorBPLibraries/Private/AttrInfo/PLATEAUAttrInfoDrawGizmo.cppを修正します。
164行目付近の GetDebugLineBatch 関数をまるごと以下のように書き換えます。
ULineBatchComponent* GetDebugLineBatch(const UWorld* InWorld, const bool bPersistentLines, const float LifeTime, const bool bDepthIsForeground) {
if (!InWorld) return nullptr;
return bDepthIsForeground
? InWorld->GetLineBatcher(UWorld::ELineBatcherType::Foreground)
: (bPersistentLines || LifeTime > 0.f
? InWorld->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent)
: InWorld->GetLineBatcher(UWorld::ELineBatcherType::World));
}
Landscape の修正(1ファイル)
Source/PLATEAURuntime/Private/Reconstruct/PLATEAUModelLandscape.cppを修正します。
98行目付近の ALandscape* Landscape = World->SpawnActor<ALandscape>(Param); の直後のコードブロックを、以下のように書き換えます。
ALandscape* Landscape = World->SpawnActor<ALandscape>(Param);
#if UE_VERSION_OLDER_THAN(5, 5, 0)
Landscape->bCanHaveLayersContent = false;
#elif UE_VERSION_OLDER_THAN(5, 7, 0)
Landscape->SetCanHaveLayersContent(false);
#endif
Landscape->SetActorTransform(LandscapeTransform);
これで5.7でビルドが通るようになると思います
(正しい動作になっているかどうかはわかりません。)
(※5.6でも多分動くと思います)

コメント