Bulk export and sharing of face and body poses
Edit 1/23/2021: LOL I just posted this and it looks like the Daz to Unreal bridge may automate this process in the near future
The original inspiration for this post/tutorial is from a blog post created by another Daz user named InuGames https://inu-games.com/2018/02/27/export-all-ectrl-as-animation-daz3d-to-ue4/
The script they wrote to bake poses to the timeline is now available on their Git Hub page. https://github.com/inugames/daz
I created a fork of the script and fixed an issue where micro increments of poses where getting added to the timeline before and after the poses where added.
I also added a Read-Me file/tutorial that has few updates like using the Daz to Unreal plugin, and a different way to use the poses in the Animation Blueprint
My fork is located here: https://github.com/GNVR-Dev/daz
I will add the Read-Me file tutorial below as well.
This Daz Studio script can be used to bake poses to the timeline
It can be easily changed to bake eCTRL (Face Poses), pCTRL (Body Poses), or several others
The following instructions will walk you through:
1. Transferring a base character mesh into Unreal Engine
2. Opening the Daz Script IDE Window
3. Baking poses to the timeline
4. Transferring the animations to Unreal Engine via the Daz to Unreal Bridge
5. Creating Pose Assets from the Animations
6. Setting up the Animation Blueprint
Comments
Export Base Character:
In Daz Studio load a base character into the scene.
Send the character mesh to Unreal by going to:
File -> Send To -> Daz To Unreal
Set the Asset Type to Skeletal Mesh
Uncheck Enable Morphs
Uncheck Enable Subdivisions
and click Accept
Enable The Script IDE Pane(tab):
Go up to Window -> Panes (Tabs) -> Click on Script IDE
Open or paste the script in the Script IDE Window
Click Execute to add all the eCTRL poses (Face Poses) at the maximum (+) value to the timeline
Once completed this will generate a list of poses that were added to the timeline
Select all the pose names
Right click and select copy
Export the animation by once again going to File -> Send To -> Daz To Unreal
Change the Asset Name to something like eCTRL_Max
Set the Asset Type to Animation
Uncheck Enable Morphs
Uncheck Enable Subdivisions
Click Accept
Once imported right click on the animation
Go up to Create and click Create PoseAsset
Paste the names of the max value poses into the dialog box and click Accept
Back in Daz Studio Script IDE window change var bMax from true to false
Click Execute again to add all the eCTRL poses (Face Poses) at the minimum (-) value to the timeline
Select all the pose names
Right click and copy the list of the minimum value poses
Once again export the animation by going to File -> Send To -> Daz To Unreal
Change the Asset Name to something like eCTRL_Min
Set the Asset Type to Animation
Uncheck Enable Morphs
Uncheck Enable Subdivisions
Click Accept
Once imported right click on the animation
Go up to Create and click Create PoseAsset
Paste the names of the min value poses into the dialog box and click Accept
Setting Up The Animation Blueprint:
Right click in the Content Browser
Mouse over Animation and select Animation Blueprint
Choose the skeleton that matches your character
In the Animation Blueprint AnimGraph right click and create a Modify Curve node
Pull off of the output pin and create a Node to Evaluate Pose eCTRL_MaxPoseAsset
Pull off of the output pin and create a Node to Evaluate Pose eCTRL_MinPoseAsset
Connect it to the Output Pose
Setting up Pose Inputs:
Right click on the Modify Curve Node and select one of the eCTRL poses you want to control
For this example I'm using the BrowInnerUp-Down Pose
Pull off from the input pin and Promote to Variable
Compile the Blueprint
Name the Variable something like BrowInner
Set the Slider Range Minimum to -1 and maximum to 1
Set the Value Range Minimum to -1 and maximum to 1
In order for the eCTRL_MinPoseAsset poses to work in the 0 to -1 range we have to set up a custom curve
Back in the Content Browser right click, go up to Miscellanaous, and select Curve
Make it a CurveFloat and click Select
Name the Curve something like CTRL_Min_Curve
Open the curve
Put your mouse over the 0,0 center of the grid and scroll wheel click to create a pin
Move you mouse to the right and create another pin and Time:1 Value:0
Drag that pin down until the value equals -1
It should look like this:
Right click on the graph line and set the Pre-Extrap to Linear
Back in the Animation Blueprint
Click on the eCtrl_Min_PoseAsset Node
In the details panel change the Blend Option to Custom
Change the Custom Curve from None to the Curve you just created
You should now be able to change the value of the BrowInner variable and see the brows go up a down from -1 to 1
Using the pose assets and animation blueprint for multiple characters:
Open the eCTRL_Max_PoseAsset
In the Asset Details Panel under Additive
Check Additive and change the base pose to pose_eCTRL_Reference_Pose
Click on Convert to Additive Pose
Do the same for the eCTRL_Min_PoseAsset
Back in the Animation Blueprint Preview Scene Setting Tab you can change the Preview Mesh
Just in case post #1
Just in case #2