ydrive / EasySynth

Unreal Engine plugin for easy creation of synthetic image datasets
MIT License
174 stars 31 forks source link

Windows build error using UE5 #46

Closed cgsaxner closed 1 year ago

cgsaxner commented 1 year ago

Describe the bug Hi, I'm trying to insall the EasySynth plugin under Windows / UE5, but when building the engine with the plugin, I get following error: 'UMoviePipelineExecutorBase *UMoviePipelineQueueSubsystem::RenderQueueWithExecutor(TSubclassOf<UMoviePipelineExecutorBase>)': cannot convert argument 1 from 'const FSoftClassPath' to 'TSubclassOf<UMoviePipelineExecutorBase>' UE5 xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\SequenceRenderer.cpp 406 If I remove EasySynth from my Plugins folder, the build runs without issues. Did you test the Plugin under Windows in UE5 yet? Is there something special I need to consider? Thanks!

Here's the full output: 1>[3/5] Compile Module.EasySynth.cpp 1>xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\SequenceRenderer.cpp(406): error C2664: 'UMoviePipelineExecutorBase *UMoviePipelineQueueSubsystem::RenderQueueWithExecutor(TSubclassOf<UMoviePipelineExecutorBase>)': cannot convert argument 1 from 'const FSoftClassPath' to 'TSubclassOf<UMoviePipelineExecutorBase>' 1>xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\SequenceRenderer.cpp(406): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 1>xxx\UnrealEngine\Engine\Plugins\MovieScene\MovieRenderPipeline\Source\MovieRenderPipelineEditor\Public\MoviePipelineQueueSubsystem.h(45): note: see declaration of 'UMoviePipelineQueueSubsystem::RenderQueueWithExecutor' 1>xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\Widgets\SemanticClassesWidgetManager.cpp(73): warning C4996: 'SColorBlock::FArguments::IgnoreAlpha': IgnoreAlpha is deprecated. Set AlphaDisplayMode to EColorBlockAlphaDisplayMode::Ignore instead Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. 1>xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\Widgets\SemanticClassesWidgetManager.cpp(282): warning C4996: 'SColorBlock::FArguments::IgnoreAlpha': IgnoreAlpha is deprecated. Set AlphaDisplayMode to EColorBlockAlphaDisplayMode::Ignore instead Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. 1>xxx\UnrealEngine\Engine\Plugins\EasySynth\Source\EasySynth\Private\Widgets\WidgetManager.cpp(380): warning C4996: 'FAssetData::ObjectPath': FName asset paths have been deprecated. Use GetSoftObjectPath to get the path this asset will use in memory when loaded or GetObjectPathString() if you were just doing ObjectPath.ToString() Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.

To Reproduce Steps to reproduce the behavior:

  1. Build UE5 from source under Windows 10 / Visual Studio 2019
  2. Clone the EasySynth repo to \Engine\Plugins and checkout branch "ue5"
  3. Open \UE5.sln in Visual Studio 2019, set solution configuration to Developer Editor and Platform to Win64
  4. Build UE5
  5. The error appears during compilation

Expected behavior I can build UE5 with the EasySynth plugin without an error.

Configuration (if applicable):

NikolaJov96 commented 1 year ago

Hi @cgsaxner,

This issue appears when using UE5.1, which is the default UE version since recently. To fix the issue, change the line that causes the crash (Source/EasySynth/Private/SequenceRenderer.cpp::405) to this:

UMoviePipelineExecutorBase* ActiveExecutor = MoviePipelineQueueSubsystem->RenderQueueWithExecutor(ProjectSettings->DefaultLocalExecutor.ResolveClass());

We will create the ue5.1 branch with this fix shortly. This should fix the engine compilation issue. I hope there will be no issues while using the plugin. If that is not the case, ue5 branch should work correctly with UE5.0.

cgsaxner commented 1 year ago

Thank you @NikolaJov96 for the quick reply and fix! Indeed I was using UE5.1. For now, the everything seems to work smoothly with the plugin. I really like it, thanks for the great work!