Shapekey Posing

Im looing at rotating bones with a shapekey, this isnt to replace the use of actual poses its to use along side them.

I have a basic example already

The hip and knee bones x rotation is being driven by the shapekey

Although this is all working as a armature posing shapekey, if i then try to use an actual pose the the the bones driven by the shapekey override the bone rotations of the pose(aka the pose dont work on these bones now) This might be quite simple as im not really too familiar with drivers and googling this is stressing me out finding random none relevant topics. So i thought to just ask my self

Essentially what id like if for these shapekeys to work over the top of a pose, so it basically takes whatever rotation the bones want to be in from a pose and then adds onto it from there. I have a few morphs that simply require slight moving/rotating to help. Im sure there are perhaps overlay to do this but i am specifically interested in this method(assuming it is at all possible to do) I want to know if this is a valid method regardless of other methods being available. I know the standard way is to get bones to drive shapekeys, but who wants to just do standard things :stuck_out_tongue:

Im essentially trying to emulate what is possible in Daz3d with there ‘Bone Morphs’

Sorry, but I’m not sure I’ve understood what you are looking for.

Though, if it’s something non-conventional as you’re saying, then most probably you’re not looking for a Corrective Shape Key; you might want something like a Shape Key (Value change) that is able to affect other Bones’ Transformations from that same Armature in a more directive fashion.

If that is the case, I’ve been investigating some ways to do that also; the discussion on this > link proved to be clarifying to me, although I have not be very successful on my particular case.

Essentially, ¿if Shape Keys transform vertexes (mesh), can Bones follow somehow those transforming vertexes —and still be well responding to further mesh transformations? It looks like there are different ways to do that, but it can get more or less complicated depending on what we’re trying to achieve. And, likely, the more conventional way of Rigging would be: Bones driving Shape Keys (changes to the mesh), not the inverse

I hope this helps, good luck.

1 Like

Hay, So adding the driver shown to a bone on the x rotation that bone will rotate live as i slide the shapekey value. so you can do that with position. You can then add a diver modifier ‘generator’ and set the min/max to control how much the bone moves/rotates according to the shapekeys 0 to 1 percentage. So that bit works and if the bones in question dont also need to be controlled by animation/poses then great, but in my case i do need them to work.

I thought about if perhaps you make a duplicate bone and have that try to follow ‘bone1’ and have ‘bone1’ try to follow ‘bone2’. So there both slaved to each other so if a pose moved ‘bone1’, ‘bone2’ moves with it or if a shapekey moved ‘bone2’ ‘bone1’ follows that

So you have animation work on one bone and shapekeys work on the other and you let and control which follows who in wich order so to speak. But iv not figured out how to try this as a theory

I’m not sure to understand why you want that…
Have you an example like a video of what Daz3d Bone Morphs do ?

But I think indeed having a main controller for both the shapekey and the bone is the solution.

Daz’s bone morphs move/rotate bones instead of vertices
Think like a shapekey but for bones instead of using poses or animation

They use them for when they have a mesh morph that requires a bone to slightly adjust for that morph to look right, instead of applying a pose or adjust animations a bone morphs is used instead.
Think like if you had a body mesh and made a morph of a bigger belly and you have the character play an animation where they put there and on the belly but was designed for the flat none morphed belly. The bone morph would account for this and move where the arm bones go so its sits over the now bigger belly automatically. You can then have these mesh and bone morphs as one actual slider so you activate one and it dose both morphs.

Sometimes these bone morphs are used just like corrective shapekeys for meshes so they only do a bone morph when certain joints are at certain rotations, this whey they can be setup to only apply in certain conditions just like you would a regular shapekey for meshes. So for the belly example the bone morph would be driven any time the any of the arm bones are in the rotations needed where the arm would be over the belly area, this would automatically push ot the arm to not clip into the bigger belly where otherwise the animation would. This would essentially work across animations not just one as it has nothing to do with a specific animation, there are other ways to achieve the same thing but there less automatic and honestly less intuitive. Daz as kind of matured this concept for quite some time as its i guess one of its staples along with its auto clothes fitting system

Basically it a animation/poseless bone placement adjustment system, Daz has many assets for this an im looking to get them to work in blender ‘properly’ so to speak

In my blender example is a functioning shapekey that rotates the bones into there desired ‘pose’ but currently this overrides any rotations form actual real poses and animations. What im now looking for is to set this up to make it so the ‘bone morph’ is an additional rotation not an exact rotation. So instead of the bone morph setting a bone to 40 degrees exactly it ‘adds’ 40 degrees ontop of whatever the bone is at be it its reset pose or an animation/pose ect

Hope that makes more sense, im hoping its a case of setting the driver differently or maybe using an action constraint im really not sure

I’m starting to understand what you want a bit better , but it’s still a bit foggy…

This can be done by adding an extra bone and parenting.

You want to add 40° to the arm, then the arm bone needs to be parented to a “morph arm” bone,
the morph arm is driven , so if you change the body shape it rotates, but still the arm is free to have whatever rotation you want.

You are planning to make a rig that change shape, so you can animate it and have some sliders that change the size proportions of the character ?

So theres no way to condition the shapekey driver that controls the bone to only function at certain conditions and not all the time. Even if it was a manual toggle that would be good enough

It is a multi purpose rig thats morphs into lots shapes, done partly by vertices morphing and some by bone morphing. Its used to balance shape vs weight painting, by moving bones it allows me to not have the mesh surface too far away from the bone locations

Imagen i morph a human character into Shrek the human shaped rig really wouldnt work on the Shrek shape mesh(I mean it might but its an example) so i would also morphs the rig into a Shrek shaped rig. This would be bone position morphing, i would actually start by morphing the bone into the shape then shapekey sculpt the rest on the mesh

For duplicate bone i would basically need to make all of them duplicate, i mean if it works then its an option. But id like to see if there is actually a better option, like some not very well documented driver or action constraint thing

That should be possible, it really depends on how you set your expression.

I understand that in Daz3D the shapes are driving everything else, that makes sense probably because of how the software evolved.

If I had to do a similar system in blender, I’d probably start with the rig : I’ll make a rig that can change proportions, and then drives the shapes of the mesh according to that.

Another solution, would be to work with shapes and make an auto-rig that match the mesh proportions, that would be a two step process then . First build the character and then rig it . But that’s maybe not what you want. That would give more a character generator than an adaptable rig.

Have you looked at this ?

and this ?

These look like similar attempt of what you’re trying to acheive, maybe it’s worth checking how they did it !

The universal human is just using follow constraints and is using dupe bones, its basically got a bone for scaling and other bones are simply constrained to follow that theres no use of drivers. Its a nice rig but not helpful for me in this case

This other thing is interesting, its basically scripting to do sort of what im looking for. Its seemingly doing this not using drivers. So it leaves the bones to do there thing for animation but allows a morph to change a bones position/rotation as an additional. just wish i knew how to script like this so i could setup my own bone controls like i would a driver

It doesn’t seems so, the script part is only the UI.
If you look at meshes they have shapes keys with drivers, some bones on the rig also have drivers. And then there are some constraints on many other bones, probably some of them use the driven bones as targets.

And the controllers bones ( the char shaped bones to adjust the proportions) got a bunch of custom properties that probably drives the shapes and the bones.

It’s a complex rig , so it may takes some time to figure out how it works but the basic concept behind it doesn’t seems too complicated.
In the end it’s a bit similar to the universal human rig, but with different meshes and shape keys to make character variations.

1 Like

Ah yes i see now, many of the hidden bone. So this is just parenting bones and driving them instead like i thought i would have to do. At the very least i have a confirmation that method works, would still love to know if its doable just with the drivers them selves.

Thanks for showing that rig to me, its an interesting project. I realize i can do something similar to change clothing but within the keyshape menu instead of the custom ui thing
I use https://github.com/MichaelGlenMontague/shape_keys_plus as it allows for a folder style sorting system in the shapekey menu so i can have all kinds of sliders setup for bones or clothing and such that just drive the custom properties. No haste with scripts and its all located in one space that i can natively organize

Blenders drivers system really needs a rework as it hasnt really been changed in a long time and kinda dosnt fit in with blenders new ‘lets stop being awkward’ approach to ui and such

I’m not sure to understand what do you mean, generally you can replace constraints by drivers.
It’s also possible to get rid of some bones, this rig is quite layered.

Getting rig of all parenting and strive to have the minimal amount of bones ( only the deforming ones) will probably do more harm than good. Because you’ll end up with complex driver expressions and it will probably be way harder to get something that does’t break easily.

I agree that it can be simpler, while I never find the driver interface user friendly I’ve got a hard time to see how I would improve it. Needless to say that in every software I’ve seen it always looks a bit convoluted. What would you change to make it better ?

3 Likes

Honestly alot more options and or dropdown menus in the driver i would be helpful, so like where you currently type expressions if the had a dropdown arrow to the right you can reveal a bunch of preset expressions with tooltips saying what they do would help anyone really look at them to see if its something they need. The skapekey addon i posted also adds control for drivers when a selected shapekey has one which is super useful not having to navigate all over the place

I should say i will be using a daz rig an various content i own as i have it sat on my hdd so i want to put it to use, Iv never made my own rig before but i have edited a few. making a dupe bone isnt too hard though.

2 Likes

¡Hey, @sozap! I know you didn’t asked me directly, but that’s one intriguing question even for me.

I would create something like a 3D Viewport Driver Manager Panel at the Properties Shelf, so that the user could immediatly test any Driver (with sort of a meta-clone of its Value) from that list (even the colored Values, the ones from Shape Keys locked down by the presence of a Driver on them, would be affected by the meta-clone) and regardless of the existance of already configured Driving Bones or anything else driving the operation. So a Panel that would be a parallel collection of Values for all the Drivers.
When I was trying to make rigs with Bones, Shape Keys, Drivers, the Graph, the Properties and the 3D Viewport Editor, I wasted infinite amount of time simply because I didn’t have any automatic way to check certain forms of results on my working progress; this was also related to the switching of the Modes on the 3D Viewport.
Well, at least as far as I know, for the user experience it’s often terrible to manage all those things together when Rigging.

2 Likes

Yer it echo’s back to old blender before 2.8 with the awkward ui and not very intuitive experience
I used to hate blender, and chose to use sketchup over it but now i love blender

1 Like

Btw they rig from the blend sozap showed is not bad for demonstration if that method suites your need for what you was trying to do, you dont need to use the scripted ui as you can just make a shapekey be the driver instead

1 Like

Although it’s not a priority anymore as I’ve recently switched to something easier to make, I’ll be checking on that file. So, thanks for mentioning.

Yes I see what you mean !
Especially with shape keys you need to go back and forth edit mode on the mesh to edit shape key and pose mode to test the driver… And the Driver editor if something is wrong with the driver…
What you describe could probably be made into an addon.
I think maya as a kind of global driver editor where every driver is listed. That doesn’t make it way more user friendly, but it’s another approach than blender and probably it has some benefits.

I think a few tricks makes making simple drivers a bit easier, like coping something “as new driver” and edit the expression right in the value, but well it’s not perfect either, once you start editing complex expressions with multiple variables it doesn’t work anymore.

If your are really into rigging I’d suggest learning a bit of python, eventually it’s always possible to automate some tasks. That can be useful if you have a lot of driver to setup to create a script for that and edit the script rather than going back and forth between editors and modes. It may sounds like a nightmare but I do think rigging and scripting comes along very well !

1 Like


This is that addon it replaces the shapekey ui give you the ability to group shapekeys into folders ect and also has the driver ui right there underneath its a god send

Just need like mentioned some sort of global driver list menu
or have bone drivers available in an npanel menu even outside pose mode

1 Like

That looks nice indeed.
In spite of the incredible Blender development success on the last years, there should still be more attention addressed to Rigging; for instance, I’ve got information that the “Shape Keys” system in Maya, allows for “Breakdown Keys”, like, favoring Non-Linear shape transformations. From my animator’s perspective, this would be a fundamental feature to have in Blender.

You’re right, even some Blender artists approach that; I have an artist friend that has been working with Blender for a long time by now, and he eventually started making his own scripting tweaks in Blender, because of his special needs and his communication with Dev people that make Addons and etc.
At the moment, I’m somewhat overwhelmed so I can’t really spare time for learning such a different skillset; but I wonder what a creative mind could make today, with such resources at hand in Blender; that would be even fun.
For the time being, though, It’s already a too fortunate thing to be able to Model 3D characters and even Rig those characters, both with fine results. I believe would need a Real Problem to drive me in on this research at some point in the future.