Rigging nodes

Hah! you are awesome. I really appreciate all the hard work you’re doing!

That expression you posted above would be great as a new default node. Get all verts from a particular group with a weight either < > == != a value. Wonder if there would be a way to use the curve mapping node to define the weight value?

I can easily add the node with this behaviour. I don’t get how you want the curve mapping to be used though.

Ah, I think I can use the curve mapping as an input to the weight input.

I guess the other thing that would be good here would be instead of returning the position of each vert, return a pointer array then you can pull things like the normal, etc.

Hi @AquaticNightmare ,
I am creating a method to move, rotate or scale along a axis. This is needed to move pole vector bone along the upper arm xz plane.

It is working well. But now would like to set the matrix element individually. For example, I want to insert bone length y attribute of matrix translation. How would I do that?
Thanks :slight_smile:

You’d have to use the script node, I don’t have a node that lets you modify a matrix columns or rows. I’ll consider it for a later update.

Okay, I will wait for it then :slight_smile:

Hello again,
Can you please tell me how can I reverse the value of the driver on constraint? I am asking to FKIK switch or to drive the visibility.

In the “setup driver” node, you can change it to “Scripted Expression” and in the expression you can put “1-my_variable” and it will reverse the variable value (considering it goes from 0 to 1). Is that what you are asking for?

Hi, thanks for the quick reply.
Yes, that is what I was asking. so my_variable is something like var in driver editor. I have put 1-my_variable in expression. But it is not doing anything.


Another thing I would like to know is how can I duplicate grouped node without making them connected to each other.

Hi, I have another question. I am trying to control visibility using drivers. I put “hide” as the property name but it is not working. What is the correct keyword for it?

“hide” is the correct property, but it only works when you use the datapath to the bone, not the pose bone

1 Like

Thanks! It works. I hope you get some time write a documentation on rigging node and how do particular. It will be immensely helpful for riggers :slight_smile:

Are there any other properties who also need bone to data path? and another thing will be, how can I set bone display type ( b bone) or manipulate armature properties.
Thanks :blush:

You can look at all the properties that can be edited on a bone by creating a “Set Bone Property” node, all those can be set with drivers using the bone to datapath (bone or pose), you cannot set drivers to edit bones.
You can edit armature properties (like display type) with the “Set Object Property” node and changing the dropdown from “Object” to “Armature”


if you hover over the property yoiu will see the actual property name that can be used in drivers

Thanks for the quick response. I will try it out :slight_smile:

Did an overly long tutorial on how i use rigging nodes to create footroll systems. https://youtu.be/I-glp5dpGes
Feel like i could do with some efficiency pointers from @AquaticNightmare :slight_smile:

I’ll be giving it a look, but a few tips I have just to start and to keep your scene and network a bit more organized:

  1. Don’t use the “Input object” if you are not going to modify the object itself (as you mention, it duplicates the object). If you want to have somewhere to get that same object from, use a group instead and select the object you want right there.

    and then you can grab that input inside the group multiple times like this
    (use ctrl+h to hide all the unconnected sockets from a node to keep it cleaner)

    You can do this with all kinds of inputs that you reuse to avoid too many links and reroute nodes.
  2. The create name node has a “type” socket, where you can choose between “DEF”, “TRGT”, “MCH” etc that you setup in the addon preferences. This node is useful for converting names. For example if you have “DEF.MY_BONE.001” and you feed it into the “original bone” socket, you can then change the type to “MCH” and the number to “0” and it will output “MCH.MY_BONE”
  3. You can also use the Get/set variable to avoid long links or reroute nodes, I don’t use these that much, only 2 or 3 in big node groups, I use the method I mentioned above most of the time.

edit: For what you mention on 1h 30m, you can unlink objects from the nodes with this

1 Like

Great tips! that improved my nodetree significantly. Although I can’t seem to get the get set variable to work. In fact im not sure i had the right node…

The nodes are “Get Value” and “Store Value” and are under the flow control category. I’ll probably rename them to something like “Set/Get Tree Variable”
You first plug something into the “Set” node and give it a name, then you can select that on the get node

1 Like


One more thing… how do you set ik stretch values for bones?

1 Like