Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

Suppress .dll loading error pop-up on Mobu 2025 startup / or...

Suppress .dll loading error pop-up on Mobu 2025 startup / or...

nayoung.kimRAWN2
Participant Participant
135 Views
4 Replies
Message 1 of 5

Suppress .dll loading error pop-up on Mobu 2025 startup / or...

nayoung.kimRAWN2
Participant
Participant

Hello,

 

We had to re-compile pyfbusd to use our custom USD plugins (Asset Resolvers, etc.) since our internal USD version is 25.5 instead of Mobu default 23.5. We can use it now inside Mobu. But there are some annoyance with the error messages:

 

As Mobu wants to load all the default dlls in its default path (C:\Program Files\Autodesk\MotionBuilder 2025\bin\x64\extensions\fbUsdPlugin.dll), but due to the USD version conflict, it shows the error pop-up like the screenshot on the startup.

 

We can do some shady touching on Program Files which is really not an ideal solution. We tried to find a way to suppress this pop-up, but no success (with the flag when calling .exe).

 

Do you have any wise way to prevent this pop-up? Or any suggestions to handle those custom builds?

 

Thank you in advance!

0 Likes
Accepted solutions (1)
136 Views
4 Replies
Replies (4)
Message 2 of 5

nayoung.kimRAWN2
Participant
Participant

Actually we could remove the warning by renaming our plugin name inside of .mod as same as the original one (usd) and increase the version number higher than the default (which is 0.1). And now there's no C++ side issue.

 

Yet, default pyfbusd.pyd wants to be loaded from the default sys path, so I'm looking into it how to prioritise our path first using .mod file.

0 Likes
Message 3 of 5

Ndgt
Contributor
Contributor

Hi, @nayoung.kimRAWN2 

 

As Developer Help - Module folder structure documentation describes, Module Description Files simply add the specified directories to MotionBuilder’s module search paths. They do not seem to provide any mechanism to control the import priority of Python modules within sys.path.

 

By default, MotionBuilder’s MB/2025/config/pythonidelib_init.py already contains the import statements for the pyfbusd module. In theory, one could modify or extend that script to change the import logic or priority, but the .mod file itself cannot do this.

 

I’m not sure why recompiling the pyfbusd module would be necessary. If the goal is simply to use a newer USD version, a more straightforward approach is to build the USD plugin sample (the pyfbusd module and orUsdPlugin library) against your specific USD source. In my tests (with USD 24.11 built via vcpkg), this worked without any errors.

 

Would that approach meet your needs?

 

Best regards,
Ndgt

0 Likes
Message 4 of 5

nayoung.kimRAWN2
Participant
Participant

Hi @Ndgt ,

 

Thanks! Yes we figured out that it cannot be done within the .mod file, so we're managing it in our startup script to handle sys.path and reload our module. We tried in multiple places and we concluded that it's the best to deal with it in our custom pipeline rather than a separate file (to deal with multiple users).

 

But maybe I quite don't understand what you've tested - basically we don't load from C:\Program Files\Autodesk\MotionBuilder 2025\OpenRealitySDK\USD\ anymore, we only load our own USD which is built against USD 25.2. And with this, import pyfbusd in pythonidelib_init.py file always raises an error: ImportError: DLL load failed while importing pyfbusd: The specified module could not be found. Isn't it because of the internal USD dll version mismatch?

 

Still, thanks a lot for your swift reply. Have a good day!

 

Best regards,

Nayoung

0 Likes
Message 5 of 5

Ndgt
Contributor
Contributor
Accepted solution

I checked again and indeed I also get the same ImportError when importing pyfbusd module — I had overlooked that earlier, sorry about that.
It does seem to come from a version conflict (or maybe even a DLL name collision).

Good job handling it cleanly in your startup script and custom pipeline.

If you ever want to completely avoid loading the default MotionBuilder USD, removing or disabling pyfbusd.pyd, fbUsdPlugin.dll, and usd.mod could be an option.

 

Best,

Ndgt