ydrive / EasySynth

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

EasySynth MovieRender Queue and City Sample UE5.3 #77

Closed SPLChristophKreutzer closed 1 month ago

SPLChristophKreutzer commented 3 months ago

Describe the bug Whenever I try to render a Sequence in one of the City Sample maps i get a:

[2024.07.04-06.14.33:000][611]LogEasySynth: UTextureStyleManager::OnLevelActorAdded: Adding actor 'BP_CrowdCharacter_C_15' [2024.07.04-06.14.33:000][611]LogWindows: Error: appError called: Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 771] Array index out of bounds: 1 from an array of size 1

UnrealEditor_Renderer UnrealEditor_Engine UnrealEditor UnrealEditor UnrealEditor_Core UnrealEditor_Core UnrealEditor_RenderCore UnrealEditor_RenderCore UnrealEditor_Core UnrealEditor_Core kernel32 ntdll

or:

Assertion failed: Index>=0 && Index<NumBits [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\BitArray.h] [Line: 1410]

UnrealEditor_Renderer UnrealEditor_Engine UnrealEditor UnrealEditor UnrealEditor_Core UnrealEditor_Core UnrealEditor_RenderCore UnrealEditor_RenderCore UnrealEditor_Core UnrealEditor_Core kernel32 ntdll

I think it might have to do with MASS? Did anyone test this before?

To Reproduce Steps to reproduce the behavior: Download CitySample 5.3 Create Level Sequence Run EasySynth Crash happens when a render Style has finished e.g. Color/Depth/etc...

Expected behavior I expect the renders to complete without any hiccups.

Screenshots If applicable, add screenshots to help explain your problem.

Configuration (if applicable):

Additional context I will test if the same error occurs in 5.2

The error is very obscure and I dont see where it could originate from. If I do a normal MovieRender it doesnt crash however. Also using the same sequence in the empty level in the citysample doesnt crash. It appears that the crash happens right after a render cycle is finished and it wants to go to the next. It needs to reset the actor locations maybe and do things are not supposed to work? Any help would be appreciated.

SPLChristophKreutzer commented 3 months ago

Disabling Mass Actors seemed to "fix" the issue. Is this an inherent problem with MASS?

NikolaJov96 commented 3 months ago

Hi @SPLChristophKreutzer,

The plugin should work on the City Sample, but it was tested only with the default static scene and not with any dynamic actors.

I am unfamiliar with MASS, but I suspect you want to run the rendering with some dynamic elements.

Although the movement of actors during rendering isn't an issue (e.g. when actor transformations are interpolated using the sequencer), there were issues when dynamically spawning or destroying actors. Unfortunately, this was not our use case, so we never got to the bottom of it. For such a case, semantics wouldn't work as they rely on having access to all actors in the editor before starting the rendering. Still, I don't see why the rest of the pipeline functionality wouldn't work.

Sorry I could not help, feel free to post any new findings here.

chaoer commented 2 months ago

Same Settings and Same Error after Click Pick a mesh texture style

Assertion failed: Index>=0 && Index<NumBits [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\BitArray.h] [Line: 1410]

Any suggestion? Thanks

NikolaJov96 commented 1 month ago

Hi chaoer,

Sorry for the late reply. Texturing in EasySynth works only for basic scenes with standard actors placed in the scene. This is because it has to keep track of actors and associate them with a semantic class. I suspect levels such as City Sample utilize various UE magic functionalities which may confuse this naive system.

I'm closing this issue since it's not actionable, please feel free to come back if you have any more info.

chaoer commented 1 month ago

Hi chaoer,

Sorry for the late reply. Texturing in EasySynth works only for basic scenes with standard actors placed in the scene. This is because it has to keep track of actors and associate them with a semantic class. I suspect levels such as City Sample utilize various UE magic functionalities which may confuse this naive system.

I'm closing this issue since it's not actionable, please feel free to come back if you have any more info.

Actually I find something to fix this: When using EasySynth on UE > 5.0, we should first DISABLE the Pixel Streaming in global settings. Then everything will be ok.