Bulk export and sharing of face and body poses

UpL8RenderingUpL8Rendering Posts: 119
edited January 23 in Unreal Discussion

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

Post edited by UpL8Rendering on

Comments

  • UpL8RenderingUpL8Rendering Posts: 119
    edited January 23

    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

    Post edited by UpL8Rendering on
  • UpL8RenderingUpL8Rendering Posts: 119
    edited January 23

    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

    Post edited by UpL8Rendering on
  • UpL8RenderingUpL8Rendering Posts: 119
    edited January 23

    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

     

     

    Post edited by UpL8Rendering on
  • UpL8RenderingUpL8Rendering Posts: 119
    edited January 23

    Just in case post #1

    Post edited by UpL8Rendering on
  • Just in case #2

Sign In or Register to comment.