This would be really helpful in a project I’m working on where I need to create a rig for a face which is set up as a material. So far I have been able to access and control the basic vector1 parameters out of the rig. But I’m getting lost when it gets more complex. I can’t really find any other information on this topic other than this and am wondering if there are people out there that might know more about it and can help out or are interested in looking at this together :)!
It’s hard to provide a concrete solution without knowing what kind of complex we are talking about.
But for facial rigs it’s usually boils down to controlling said vector1s (anim curves). Whether it’s blendshapes, or material curves you can (as you know) drive them from a ControlRig.
Metahumans do it in similar way, they take control positions and remap them to expression curves, before feeding all curves into RigLogic which outputs correct bone transforms, blendshapes and material curves for wrinkle maps.
You most likely can breakdown your rig into curves as well, whether you following FACS system or ARKit, or with phonemes etc.
Thank you for your reply. I’m still very new to this process and not familiar with all of the terms that you mentioned. The biggest struggle for me now is that in the material some of the ’ controls ’ are set up in 3 or 4vector nodes, using only 2 channels (Red and Blue, or Green and Blue) but I don’t know how I can control that in the rig. Can I leave the vector as it is and is it something that I need to do in the control rig to be able to access the different channels in one control? Or do I need to change the material to make separate parameters for the channels?
You can change material parameters from vector4 into several vector1s. Then add same curve name into skeleton and check it as a material curve. This is the easiest way I can think of right now.
For example you have gaze control vector3 and it’s using Red and Green channels to drive look direction. You can break it down to Look_Up and Look_Right (negative values of those can substitute for looking down and looking left curves). Then open skeleton asset and in Anim Curves tab add these curves. Remember to check them as Material under Type column. Now if you drive these curves from ControlRig, you should see material updating accordingly.
You can easily breakdown Vector4 same way, and if each channel does different thing, you can add 4 vector1 parameters. In ControlRig you can create one Control that drives all of them, if that makes sense for it to do so.
Ah yeah, i tried that before. Or at least… i removed the vector 3 node and put 2 separate vector 1 nodes for the X and Y axis to move the pupils/iris in this case. But then it didn’t work in the rig. But i think i should try that again, maybe i did something wrong when i tried that.
how do you get one control to drive multiple controls? That would def be very useful
Common issue is that people forgetting to add these curves into skeleton and set them as material types. Can that be the case?
As for controlling several curves with one control. There are different types of controls, Positional control has XYZ locations, you can connect different channels to each. Or even setup that let’s say X location to drive one curve from 0 to 1, but another one from 0 to -1.
You can pack even more functionality with Transform controls (Location, Rotation, Scale), but it’s usually overkill and not so easy to use.
Another mention is that if you need custom attribute (for example as in Maya) on a control, it’s possible in 5.1 with Animation Type changed to Channel.