Unreal crashes when trying to invoke a Pyside 6 tool while Ornatrix plugin is activated.

 
 
 
Posted by:michor.lu
Data created:26 March

Hello

 

We have starting testing out Ornatirx for Unreal and the plugin loads fine and groom can be applied.

 

One thing that is a bit of a deal breaker for us at the moment is any of our custom Pyside 6 based tools will crash Unreal when the in house tool gets invoked.  We are using this as a template to load our Pyside 6 tools Unreal / PyQt sample UI Template | Epic Developer Community

Has anyone run into this before?

Perhaps there is a work around?

 

Thanks
Michor

Hi Michor,

I'm not sure if I understand the issue. How is your in-house tool interacting with Ornatrix?

Jeordanis Figuereo (Product Designer. EPHERE Inc.)

Hi Jeordanis,

 

That is the thing.  Our tools do not interact with Ornatrix at all. 

The moment the Ornatrix plugin is not loaded, all our Pyside based tools within Unreal will open without crashing unreal.

 

OrnatrixEditor.dll and OrnatrixGame.dll depend on Python.

Which is your UE version? In the case of UE 5.5 this is python311.dll, which UE carries in "UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python311.dll"

Could it be that you have changed that DLL, or maybe another copy is loaded from somewhere else?

 

Ivan Kolev (Software Developer, EPHERE Inc.)

E-mail: ivan.kolev at ephere dot com

Discord: ikolev

Hi Ivan,

Thanks for taking your time to respond.

To answer you question, we do not make any changes to the python related dlls or dependancies and we are using UE 5.5.3.

After a deeper look into this, it seems like the crash happens if there is an attempt to import the opentimeline modules. It seemed like a large portion of our tools was affect as they indirectly import the module and hence the assumption was it was Pyside6 related.

We are using 0.17 of the python opentimelineio libraries and we rely on it to read EDLs from editorial. Just a simple: `import opentimelineio as otio` would cause Unreal to crash when Ornatix is loaded.  When Ornatrix is not loaded, importing opentimelineio appears to work without issue.

I don't see how two libraries that depend on Python can cause crashes to one another.

What Ornatrix does is load the Python DLL and register a few Python modules.

One thing I can suggest is check what DLLs get loaded into the UE process when just Ornatrix or just opentimeline are loaded (using a tool like Process Explorer), then compare the lists. Maybe some 3rd party DLL is different.

Another thing you can do is send us the crash report that UE generates, if there is one.

 

Ivan Kolev (Software Developer, EPHERE Inc.)

E-mail: ivan.kolev at ephere dot com

Discord: ikolev

We tried version 0.18 of the OpenTimelineIO-Unreal-Plugin, importing opentimelineio with Ornatrix active didn't crash.

So either version 0.18 fixed something, or there's something more behind this.

 

Ivan Kolev (Software Developer, EPHERE Inc.)

E-mail: ivan.kolev at ephere dot com

Discord: ikolev

Hi Ivan,

Thanks for the heads up on 0.18 of OpentimelineIO.  I would assume you have built this yourself as there doesn't seem to be a 0.18 yet via the official channels (via pip install)?

We just followed the installation instructions at

https://github.com/OpenTimelineIO/OpenTimelineIO-Unreal-Plugin

 

Ivan Kolev (Software Developer, EPHERE Inc.)

E-mail: ivan.kolev at ephere dot com

Discord: ikolev