I used the driver constraint addon by esau to connect the shapekeys to the bones. The shapekeys come from the manuel bastioni lab and the bones from rigify. I’ve used two armatures and I have connected them into one only armature called rig. Now I’m trying to use the addon to constraint the bones because I want that when I use the shapekeys also the bones move. The final goal is to convert the shapekeys library into a pose library faster. The problem is that when I go on a shapekey and I do “copy data path”,the value copied is not good and it can’t be used with the driver contraint addon. It sounds like this : active_shape_key_index ; instead this value should return the name of the shakepey. Anyway,when I use this value the error given is : “bpy_structdriver_add() properly “active_shape_key_index” not animatable”. Instead,If i use the name of the shapekeys,the error is “property has not been found”.
You can watch what happens going here : (also the blender file is there)
Here is the correct data path. You are copying the name not the value.
You need to copy the Value of the shape key not the name.
If it is the addon, then you need to get back with the originator. Manually the driver works fine. 82 won’t take that long to do.
please,can you tell me where did you read that value ?
copy data path in “VALUE” on the shape key.
Your driver is on Value in the shape key. That is where you need to copy the data path from.
excusme if I make so many newbie questions. I’m trying to learn. The correct data path is my case is on the value field,not on the shapekey name field,like it is on the tutorial that I’m following. For example for Expressions_eyeClosedL_max is key_blocks[“Expressions_eyeClosedL_max”].value. I’ve been able to make a driver to connect the shapekey to the bone. I’ve watched some tutorials where the authors have created a set of shapekeys and a set of bones. They move the bones and the mesh connected with the shapekey also move. I don’t need this. I need to move the shapekey and at the same time the bone should also move and the mesh should be deformed. In my case,instead,I can’t move the shapekey anymore,because there is the driver. If I do it,it says : can’t edit driven number value see graph editor for the driver setup. So,what’s the solution here ? What I’m trying to do ? I’m trying to convert the set of shapekeys of the manuel bastioni lab in a set of (bones) poses.
That’s a dead end. The reason is because you put a driver on the bone activated by the shape key, the end result will be that the bone transform channel for a pose will always be rest position.
I can show you how to drive the bone with the shape key, but I don’t know how to convert that bone movement to a pose because the position in the pose is always the rest.
Here is how to do the reverse:
Put a driver on one of your bones transform channel. Here I used local Z of the bone.
Change your Driver as follows. Using scripted expression with “var” as the variable, change the following attributes.
Variable to single property with VAR
Property dropdown to Key and also key next to the property
Your data path is still “value” of the shape key.
To make it work, you have to keyframe the value slider and then play it back. The bone will move in this case following the value of the shape key from 0 to 1.0 as the variable changes.
movebonewithdriver.blend (476.6 KB)
hello. thanks for your help. You did for sure something that help me to understand how the drivers works,but this is not what I want to do. I want to move the value of the expressions shapekeys and I want that the bone that I have previously connected with the shapekey also move and deforms the mesh. Do you think that it can be done ? You are more experienced than me. If you think that it can be there an ingenious solution I can make a public post.
What is your end goal? Why do you want to do this? What are you doing in your animation that you think you need to do this? I can help I think If I understand what your end goal is. I understand you want to move the bone with a shape key, but why? Usually you do this the other way and then use a independent bone to trigger the shape key. That bone becomes part of your pose. It can be just a freestanding bone parented to root with shapekeys in a switchboard setup. Then you can pose your character with pose libraries and each pose will automatically set your shape key.
because it sounds very natural for me to make 3 steps
with the driver constraint addon I link the shapekey to the bone
I move the value of the shapekey and the bone and the mesh also move exactly like the shapekey wuould do by itself (this is because I have used two armatures,because the MB lab shapekeys are many and precise)
I go in the pose library and I add a pose
its an automatic workflow that sounds natural (at least for me) . Maybe if a script can automate this,it is even better…
this is what I tried to do…but it does not work. when I move the slider of the shapekey the bone does not follow.