Im struggling with how to use xpresso with a simple mouth rig on a character. I have a series of poses in a pose morph tag for the mouth, and a set of upper and lower teeth on splines. Im trying to link the strength of the pose to changing the Y value of upper and lower teeth to matvh the mouth pose. It works on one pose, but when I add second pose from pose morph it then works for that one but the previous one then doesnt work and teeth don’t move. Any suggestions?, see screenshot. Thanks

based on your description I try to get a scene file, that might help to find your solutions. Fingers crossed.

Sorry, I do not work from images, there is too much missing in it. Scene files only. Reduced to the absolute bare problem, no 3rd party stuff in it, thanks.

The Null can move things, the Cube (character) can be rotated and moved as well, and the two pose values will move the spheres, and they should be each close to the edge that moves with the pose slider.

Perhaps taking information from the face, a point might be more efficient. Not having a scene file, makes this a guess, and so I stop here.

Hi, Thanks for that but I just can’t work it out, i’ve not used too much Xpresso. I have a stripped scene file here. The difference from yous is i am adding the teeth upper and lower in multiple times to the expression with multiple range mappers, 1 per pose. I need the Y values to be different on upper and lower depending on the pose.

Please have also a look in the Xpresso Editor> X-Manager, it should go from top to bottom, or in other words first things calculated on top, last thing on the bottom (which eventually over writes the top!)

Hi, Thanks for that, I’ve added a few poses to the test scene and using ($1;$4) for the formula using 4 poses, it seems to work fine. Thank you so much for your help on this.

People keep saying I should be using Maya to learn character modelling, rigging and animation but I don’t see why it can’t be done in Cinema as I find it by far the most intuitive and user friendly 3D package around.

The formula for four is
max(max($1;$2);max($3;$4))
It takes the max from two groups and then the max from the result of the two. Which can be expanded nearly endlessly.
You need to drag out more inputs on the Formula node. IF needed put the Range mapper first for each to be able to fine tune the result.

Thanks, that is all working in the final scene now. Of course one issue I will have is what the Y value should be for the teeth upper and lower if I mix some morph sliders, but will cross that bridge when I come to it.

Sorry, thought I was finished with this but I have hit a snag. One of the poses is open mouth and all others are mouth closing. So for mouth closing the max formula works and the lower teeth are always going one way which is positive Y.

When i get to the open mouth pose, the lower teeth go to a -Y position so it needs to use min value not max. Same trouble with upper teeth that has a min formula node plugged into it. The open mouth pose requires positive max value instead. Is there a way to create a formula for instance that uses max value for ports $1,2,3,4 but min for ports $5 and $6?

So in summary out of 6 ports to lwr teeth, i want it to use the max value of Y for ports 1 to 4, but the max value for ports 5 and 6.

So the pose 1-4 moves the teeth in one direction and 5+6 in the opposite. Since I assume we talk here about 0%-100%, you can place a Range Mapper for 5+6 so they can be easily used in this set up. In other words, if the would be on their lowest, they produce for the evaluation in the Formula the highest. I used one time the Subtraction (Math) node, to create a simpler variation.

The value of the output is ) while 1-4 is 0% and 5+6 is 100% Or any combination where 1-4 is 100% or any of 5+6 is 0% will result in 1. Whereby the resulting value 0-1 can be turned into every value with a RangeMapper.

Thanks for that, it gave me a different way of thinking about it. Ended up doing it a slightly different way by outputting the formula into another formula and using the output value of pose 6 rangemapper into a math node to make 0. Then used just 2 ports on last formula that would carry value of formula 1 output and add the port 2 which is 0 until slider is used on port 6. This then reverses the direction for output of teeth. Thanks for all your help finally finsihed it lol.