Control Rigs - Driving morphs with controllers

Yo, I’ve been experimenting a decent bit with the control rigs (4.25), since they seem like an appealing way to plot out animations in-scene, in-engine.

But one aspect I just can’t get to work is driving morphs with the controllers directly, so that I can for example set up a facial rig to run a couple simple morphs from.
Has anyone had any luck with driving morphs through the control rig system?

(As a disclaimer, I am able to do it by running morphs through a BP in the scene which force-updates the mesh. This does unfortunately mean that morphs only display during simulation or actual playback however.
(And it means that the morphs have to be driven directly from sequencer, which isn’t the most elegant approach. Not to mention having to set up the BPs to manually drive dozens+ of morphs.))

So I’m just curious if anyone has a way of driving morphs directly with the controllers in the control rig? Like some sort of Control Rig -> AnimBP approach that imports/exports values to drive morph?

set curve value is what you’re looking for! You can drive it like this: Make a controller and place it where you want it, set it’s initial position there. Get control transform> transform location>clamp -1 to 1>set curve value. I’ll attach an image

7 Likes

Hello , I tried to make what you show, but I dont have any curve in the set curve value node, even if my mesh has morphs.
No idea why ?

1 Like

Aha, yeah that would absolutely do it! I guess I was expecting there to be a more literal morph hookup. That does smoothen the process out notably. I was already using some controllers to do stuff like blend between different solvers. I just had a hard time figuring out how to get that to actually drive morphs.
Glad I can throw away the BP-update approach, since that only worked while the game was in simulate mode.

Looks like I couldn’t figure it out because of a bug(? probably), which is the same as what winterbaby encountered.

Looks like there’s -something- slightly wonky about it. But I figured it out @winterbaby
If you select a skeletal mesh, and right click -> create control rig, then all the morphs and etc get populated into the ‘Get/Set Curves’
That’s probably why I couldn’t figure it out myself the first time around, the control rigs don’t seem to update if you say, copy an existing control rig and swap out the mesh.
(Like if say, one started out by editing the Ue4 Mannequin control rig example.)

If someone still has problem with the “set curves” node not having your morphs after changing the mesh, you can import them by going to “window”-> “curve container”->right click “import”.
Hope this helps.

6 Likes

THIS!! :raised_hands:
I have been searching for so long for a solution to be able to key morph targets in the sequencer for animations and I just couldnt find anything that worked without play mode!
And it’s so simple too!!
Thank you!!

2 Likes

Question: May I ask how I can string together 3 different morphs targets of an eye blink on a blueprint slider control? Morph “A” would be the first stage of a blink, then the Morph “B” would be the second stage of the blink as the eyelid wraps around the wide part of the eye and then the Morph “C” would be the last stage of the blink with the eyelid at the bottom. When I move the blueprint slider from 0 to 1, the 3 different morphs would blend/sequence together making a seamless eye blink. In short, I would like to string three different morphs to look like it is 1 morph sequence based on a slider. And animate the eye blink in Sequencer.