【UE5】開発中プラグインからエンジンプラグインのモジュールを参照する場合
今Move Render QueueのShift Lens対応をやり始めたんですがちょっとハマったのでメモ。
色々検証した結果、レンダーパスのところだけ自作したものに差し替えればいいか-という結論に至ったので既存のMovieRenderPipelineプラグインを読み込ませるために、MovieRenderQueueShiftLens.Build.csファイルのPublicDependencyModuleNamesにモジュールを追加した。
PublicDependencyModuleNames.AddRange(
new string[]
{
“Core”,
“MovieScene”,
“MovieSceneTools”,
“MovieSceneTracks”,
“MovieRenderPipelineCore”,
“MovieRenderPipelineRenderPasses”,
“MovieRenderPipelineSettings”,
}
);
ビルドは成功。エンジンの起動もできるんだけど、ロード中に以下のメッセージが出てくる。
モジュール ‘MovieRenderQueueShiftLens’ をロード出来なかったためプラグイン
‘MovieRenderQueueShiftLens’ のロードに失敗しました。OSエラーかモジュールが正しく設定
されていない可能性があります。
依存関係を見てみると、MovieRenderPipelineのDLLを参照したがっている。
MovieRenderQueueShiftLens.Build.csファイルこんな追記をしてみたけど、違った。
DynamicallyLoadedModuleNames.AddRange(
new string[]
{
}
);
/
if (Target.Platform == UnrealTargetPlatform.Win64)
{
string LibPath = “/Plugins/MovieScene/MovieRenderPipeline/Intermediate/Build/Win64/UnrealEditor/Development”;
PublicAdditionalLibraries.Add(EngineDirectory + LibPath + “/MovieRenderPipelineCore/UnrealEditor-MovieRenderPipelineCore.lib”);
PublicAdditionalLibraries.Add(EngineDirectory + LibPath + “/MovieRenderPipelineEditor/UnrealEditor-MovieRenderPipelineEditor.lib”);
PublicAdditionalLibraries.Add(EngineDirectory + LibPath + “/MovieRenderPipelineRenderPasses/UnrealEditor-MovieRenderPipelineRenderPasses.lib”);
PublicAdditionalLibraries.Add(EngineDirectory + LibPath + “/MovieRenderPipelineSettings/UnrealEditor-MovieRenderPipelineSettings.lib”);
PublicAdditionalLibraries.Add(EngineDirectory + LibPath + “/UEOpenExrRTTI/UnrealEditor-UEOpenExrRTTI.lib”);
string LibPathDll = “/Plugins/MovieScene/MovieRenderPipeline/Binaries/Win64/”;
RuntimeDependencies.Add(EngineDirectory + LibPathDll + “UnrealEditor-MovieRenderPipelineCore.dll”);
RuntimeDependencies.Add(EngineDirectory + LibPathDll + “UnrealEditor-MovieRenderPipelineEditor.dll”);
RuntimeDependencies.Add(EngineDirectory + LibPathDll + “UnrealEditor-MovieRenderPipelineRenderPasses.dll”);
RuntimeDependencies.Add(EngineDirectory + LibPathDll + “UnrealEditor-MovieRenderPipelineSettings.dll”);
RuntimeDependencies.Add(EngineDirectory + LibPathDll + “UnrealEditor-UEOpenExrRTTI.dll”);
}
正解
MovieRenderQueueShiftLens.upluginファイルにPluginとして記述するのが正解でした。
{ "FileVersion": 3, "Version": 1, "VersionName": "1.0", "FriendlyName": "MovieRenderPipelineSLCEditor", "Description": "", "Category": "Other", "CreatedBy": "", "CreatedByURL": "", "DocsURL": "", "MarketplaceURL": "", "SupportURL": "", "CanContainContent": false, "IsBetaVersion": false, "IsExperimentalVersion": false, "Installed": false, "Plugins": [ { "Name": "MovieRenderPipeline", "Enabled": true } ], "Modules": [ { "Name": "MovieRenderPipelineSLCEditor", "Type": "Editor", "LoadingPhase": "Default" } ] }