Basic poses for ArKit Face capture. Made with default Parameter settings. Saved as Daz Pose Preset.
Reference Pose:
Unreal Engine Project Setup:
In your Project Settings make sure the following Plugins are enabled:
DazToUnreal
Apple ARKit and Apple ARKit Face Support
As well as Live Link
Click Restart Now to restart your project.
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
Using Pose Preset Animation
Download and extract or clone the three files into either:
Daz3DFiles\Presets\Poses
or
My Library\Presets\Poses
Open the ARKitFacePoseNames.txt file
You will need these names later
In the Content Library tab, navigate to and double click the ARKitFacePoses preset
This will pop up a message asking if you want add frames to the timeline. Click Yes.
All the poses will be added to the timeline.
Again, go to File -> Send To -> DazToUnreal
Change the asset name to something like ARKitFacePoses
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
Go back to the ARKitFacePoseNames.txt file and copy all the names of poses
Paste them into the Pose Asset dialog box and click Accept
Open the Pose Asset
In the Asset Details Tab under Additive
Check Additive and set the Base Pose to the ARKit_Ref_Pose
Click Convert to Additive Pose
If you have other characters you can change the Preview Mesh for the animation to see what the poses look like on other characters
Setting Up the Animation Blueprint
Right click in the Content Browser
Mouse over Animation and Select Animation Blueprint
In the Animation Blueprint AnimGraph right click and create a Live Link Pose node:
Set the Live Link Subject Name to the device you are using for face capture
Pull out from the output pin and create a modify Curve Node
Change the Apply Mode to Weighted Moving Average
Pull off from the Alpha input and promote to variable
Change the name of the Variable to WMA_Alpha
Compile the Blueprint
and set WMA_Alpha's the default Value to .8
Pull off from the Modify Curve node and create a node to Evaluate your face poses Pose Asset
Connect this node to the Output Pose and Compile to test that this part is working OK
To add head movement pull a pin out and create a Local To Component Node
Then create three Transform (Modify) Bone nodes and reconnect to the Output Pose (a Component To Local node will be created automatically)
On each of the Transform (Modify) Bone nodes set the Rotation Mode to "Add to Existing" and the Rotation Space the "Bone Space"
On the first Transform (Modify) Bone node set the Bone to Modify as neckLower
On the second Transform (Modify) Bone node set the Bone to Modify as neckUpper
On the third Transform (Modify) Bone node set the Bone to Modify as head
Pull off one of the Rotation pins and Make Rotator
Connect the rest of the rotator pins to the make roTator node
Right click on the graph and create a Get Curve Value node
Enter headPitch into the Curve name
add a multiply node and enter -90.0
add a divide node and enter 3.0
Duplicate these nodes twice and connect to the Y(Pitch) and Z(Yaw) of the Make Rotator Node
On the second Get Curve Value node change the Curve Name to headYaw
On the third Get Curve Value node change the Curve Name to headRoll
Compile and test.
If the head movement isn't working it's probably because the skeleton doesn't have a headPitch, headYaw, or headRoll anim curve set up yet.
In the Skeleton setup of your character go to the Anim Curve tab and search for Head.
If those curves aren't listed Right Click and "Add Curve"
Add a curve for: HeadPitch HeadRoll HeadYaw
Head movement should now be working