Unable to load MetaHuman 5.5 on engine built from code

Hi,

I’m currently trying to enable the MetaHuman plugin (the one from the Fab library named “MetaHuman Plugin”) in our project, since we would like to use it for cinematics, but some of its modules don’t seem to be compatible and won’t load.

We use a built from code version of the engine based on the 5.5.1, with some minor customizations, but only high-level things that should not affect the way modules are loaded by the engine.

The steps I have followed:

  1. Install the vanilla 5.5.4 using the Epic Games Launcher (5.5.1 is no longer an option).
  2. Download the MetaHuman Plugin through Fab.
  3. Install the MetaHuman Plugin to the vanilla 5.5.4.
  4. Copy the “MetaHuman_5.5” directory into “Engine/Plugins/Marketplace” in the Perforce workspace.
  5. Open the Visual Studio solution of the game project (back to our built from code version of the engine).
  6. Run the editor using the “Development Editor” configuration, enable the “MetaHuman” plugin and close it.
  7. Re-run the game.

Then I get a message box with the following error message:

UnrealEditor.exe – Entry Point Not Found

The procedure entry point ?GetModule@FDNInterchangeModule@@SAAEAV1@XZ could not be located in the dynamic link library D:\work\<ProjectName>\Engine\Plugins\Marketplace\MetaHumans_5.5\Binaries\Win64\UnrealEditor-MetaHumanIdentity.dll.

Interestingly enough, that only happens with the MetaHumanIdentity module and a couple more, not with all of them. If I remove those modules from the uplugin, then it loads and seems to work, but unfortunately we would also need them for the cinematics.

I thought it might be related to the exact engine version, as I installed the plugin for the vanilla 5.5.4 (the option of installing the vanilla 5.5.1 is no longer available in the Epic Games Store) and our compiled version is based on the 5.5.1, but then I found this thread in which they seem to have exactly the same issue with a compiled 5.5.4.

Thanks in advance! Any help with this would be greatly appreciated.

Steps to Reproduce
Setup:

  • Engine built from code, based on the 5.5.1.
  • Perforce workspace.

Steps:

  1. Install the vanilla 5.5.4 using the Epic Games Launcher (5.5.1 is no longer an option).
  2. Download the MetaHuman Plugin through Fab.
  3. Install the MetaHuman Plugin to the vanilla 5.5.4.
  4. Copy the “MetaHuman_5.5” directory into “Engine/Plugins/Marketplace” in the Perforce workspace.
  5. Open the Visual Studio solution of the game project (back to our built from code version of the engine).
  6. Run the editor using the “Development Editor” configuration, enable the “MetaHuman” plugin and close it.
  7. Re-run the game.

Then I get a message box with the following error message:

UnrealEditor.exe – Entry Point Not Found

The procedure entry point ?GetModule@FDNInterchangeModule@@SAAEAV1@XZ could not be located in the dynamic link library D:\work\<ProjectName>\Engine\Plugins\Marketplace\MetaHumans_5.5\Binaries\Win64\UnrealEditor-MetaHumanIdentity.dll.

Quick update to provide some more context: we had the MetaHuman plugin enabled before updating to the 5.5.1, and it did load (5.4 engine built from code).

One more update from my side on this topic: I tried downloading a snapshot of the 5.5.4 release from GitHub and compiling it as is, and I can confirm that the issue also happens in that case.

We are running a similar setup with 5.5.4 source editor and have the same problem. We are no longer able to enable the MetaHuman plugin. Not really in a position to update the studio to 5.6 yet so we need to solve this in 5.5 ASAP.

To clarify our use case we really need the Mesh to Metahuman process working as detailed here: https://www.youtube.com/watch?v=xOVyme4TFZw

The inability to load the MetaHuman plugin prevents this.

I’m not against enforcing a particular version of the compiler on our build machines, if we could find out which version Epic uses. (Not sure if that would solve it, but maybe it will help)

Hello,

Based on the description in this UDN issue (and the linked forum post) we have been able to replicate this problem. We identified that we did not have safeguards against building the DNAInterchange module added to the .build.cs file. We have posted an update to the MetaHuman Plugin on Fab which we believe should resolve it. You will need to download the updated version via the Epic Game Launcher.

As I think was noted elsewhere in this issue, the source code for MetaHuman Animator is available as part of Unreal Engine 5.6 onwards, so we expect compiling a custom build of the engine to be easier as/when you are able to update to the later version.

Thanks,

Mark.

Hi Mark,

Sorry for the late reply, somehow I had the reply notifications disabled and I didn’t see your post until today. I just tested it with the latest version, and can confirm that all modules load now.

Thank you very much for the fix!

Update: I’m afraid the issue has turned out to still be present. When I did the test with the latest version of the plugin, I didn’t realize that I had MetaHuman disabled locally — that’s why I didn’t get the error anymore at startup.

Anyway, since the source code is included from the 5.6 on, we have decided to upgrade as soon as the 5.6.1 is released, so this should no longer be an issue.

Thanks for the fix attempt, though!

OK, thanks for reporting back, Arturo.

The last suggestion from engineering is to check the UnrealEditor.modules file.

Alongside the plugin binaries, there is a UnrealEditor.modules file that essentially stored the engine id. What might be happening is when you copy the plugin from Fab, this file also gets copied, and there could be a mismatch in the value. The easiest “fix” is to just delete that file if you’re trying to build a cpp project. It will trigger re-generation of the .modules file with correct version