arkit morph target control rig - Eye controls

Hello

did someone manage to make a forward and backward solve for eyes? Since, this setup does not have bones, but morph targets, I did not realy find a solution yet.

The current setup works for all morph targets, and is fine for adjusting a smile or moving my eyebrows, but it is a huge pain for eyes:

Backward solve:

forward solve:

I basicly have to manually adjust the eye morph targets and check each frame.

I had something like similar a while ago, where I was asked to create a look at solution, which usually is done using a joint rather than morphs.

What I ended up doing was:

  • Check the left/right/up/down rotation of the eyes in Maya, where a locator was place at the center of the eye geometry and aimed to the pupil center, so that it would be constrained to it and I could note down the angles
  • In Unreal create a locator between the eyes, then drive the XY rotation of the locator using DotProduct math
  • Get the values from the up/down/left/right from maya by reading the between the eyes locator XY rotation values, clamping the results to 0 to 1 values.
  • Connect the output from the clamp to the morph target values

Isn’t as precise as having a joint, but it does its job pretty good

For eye blinks, I just used a timeline with a 0 to 1 and back values that would trigger every 5-8 seconds.

I managed to create a forward solve eye-rig (with the target aim! without using bones) but i struggle with the backward solve… I somehow would just like to have a switch, where i can say. “Ignore the animation sequence eyeball movement curves and overwrite it with my control rig inputs”, or “smooth the morph target curves to target an object in scene”… but it’s not working like that.