Daz To Unreal – AutoJCM

I’ve added a new feature I call AutoJCM. What this does is find all the Join Controlled Morphs associated with your character, transfers them with the character, and makes a Post Process Animation Blueprint specific to the character to control these automatically in Unreal.

Limitations

This currently requires the Fix Bone Rotations on Import setting to be enabled which unfortunately will break animations transferred from Daz Studio

Not all JCMs are getting transferred yet, but more are than the previous method and they are connected more properly. There are a few more special cases I’m working on. For instance, there is one on the shoulder that is driven by two bones.

You need to package the plugin with your builds. The new setup uses some classes I made at runtime, so you can’t remove the plugin before building the project. If you’re building for Mac or Linux, you’ll need to compile the plugin as well.

There is also a bug where it’s going to leave the newly created Animation Blueprint open in an editor window after transfer. This is to prevent a crash until I come up with a better fix.

How to Use It

In Daz Studio when you use Daz To Unreal check the Enables Morphs check box.

Then click Choose Morphs button

In the bottom left of the window check Auto JCM. The morphs won’t get added to the Morphs to Export list. They’ll be automatically found during export and added, so don’t worry if the list is empty.

After that, just export as normal.

How Does It Work?

During export the plugin is going to go through the properties for the character finding Morphs that are enabled and are controlled by bone movements. It will add these to the list of morphs to export and also add a JointLinks section to the DTU file with additional information about them.

At import time these will be found and loaded into a list in an AnimBlueprint based on the included UDazJointControlledMorphAnimInstance class. This class gets set as a Post Process Animation Blueprint on the Skeletal Mesh for the character and gets saved next to the skeletal mesh with the suffix _JCMAnim

The animation class iterates through these at runtime finding the current rotation of the associated bone and then applying the appropriate alpha value to the morph curve.