LiveLinkRemap Matrix Morph Targets From One to Many

Hi all,

Iam getting a LiveLink data stream from the iPhone ARKit to drive the morph margets of a face rig. My problem is now that i need to manipulate from one input value multiple morph targets with different weights. This means when i get the input value for e.g. mouth open = 0.4, i need to set different morph targets of the face to get the desired effect of a nice looking mouth opening e.g. set morph yaw to = 0.6 and set cheeks to = 0.2 and set lips to = 0.3

My approach for this is to use a matrix where i can input one value and it returns me a set of values, depending on the weights in the matrix. With this i can tweak how the morph targets are driven from one value.

I looked into the LiveLink Pipeline and there are only options to remap the name of the morph targets. What i need is a special LiveLinkRemapAsset which takes the input, feeds it through the matrix and outputs the values for the morph targets.

Does someone has an idea how to tackle this problem?

Thank you :slight_smile:

I did this using the ARKit component and getting each morph target curve value stored into a float, using a clamp to set the min/max value, and plug the entire thing onto an output node, where the float values are exposed.
From there you can decide to tweak the values in realtime, and I did this to tweak just some of the blend shape values while I was doing those specific expressions.

Does the ARKit component provide realtime data for face tracking?

Where can i find more information how to use it?

Thank you.

I get the morph values into the animation blueprint through the LiveLink component. How can i access every morph-target float value that comes out of this component?

I need to access the values and motify/create new morph target values. How can i do this?

Get curve value is what you need, it gives you the value for that morph, then you can use it to do whatever you want

That it great. Thank you Enter Reality.

After i got the value, how can i manipulate morph targets in realtime? How can i set the curve values in realtime?

Use Set Morph Target node

I did a test where i set the morph value with “Set Morph Target” and afterwards i read it with “Get Curve Value” and it seems the value is not set. Can you help?

Thank you

Hi, I know this is kind of a old post. Thought I might leave a link to LLVhere, which is a tool for working with ARKit live link frames and offers some utility functions for debugging morph targets / blendshapes.