【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"
}
]
}
