Rigging nodes

Hello!

Merry Christmas to you, hope you’re spending the holiday well, I’m just here to chime in some suggestions for the Rigging Nodes addon!

No rush, it is Chrismas after all, but I thought better post this now, before I forget it.

Firstly.
It would be nice if you were able to get an array of bones in an armature layer. I feel like you can do that right now, but I couldn’t find a node for that.

And secondly.
A “find” operator for the “String Operator” node, that would create an array with every bone in the armature that has the prompted word in it, so you can basically assign tags like “Cloth” or “Tweak” to bones and put them all in an array.

I’ve been messing around a lot with the addon, and I’m starting to get comfortable with it! I’ll do my best to put in some suggestions every now and then.

2 Likes

Hi, Merry Christmas! Thanks for your addon I so love it.
I have a Issue or something I did wrong. In Blender-2.83.9 no matter what I do I can’t create a SubTarget Array pin like in the first video. On my side I get this:


Oh and Set Mode seems don’t work too

1 Like

You can work around this by using a loop.

More work but it works fine.

1 Like

Thank you, that worked!

Hi!

There is no way right now to check the layer of a bone :frowning: . I’ve noted it down on my to-do list.
I think I’ll add some extra options to the “Get Bones” node to filter by name or some other property.

In the latest release I’ve added a “Filter” node. You can filter an array of bone names (You can get all bones of the armature with the “Get Bones” node) and achieve what you want with an expresion like this:

'cloth' in x.lower()

Thank you for the comment :slight_smile: and suggestions are always welcome!

This bug should be fixed in the 0.8.0 release.
Set mode works behind the hood. But due to some changes I did to improve the speeds of the execution the objects will appear in Object mode unless you add the optional “Mode” socket to the Input node that creates the armature. This might change in the next updates.

I’ve quickly added the “Filter Bones” node in the 0.8.1 update. Here is an example that collects the bones by their layer:

2 Likes

0.9.0

Added

  • New operator for editing the custom shape of a bone

    • Found under the “Item” category in the “VIEW 3D” editor, in the “Rigging Nodes” panel
  • New nodes:

    • Edit Bone Groups (Add / Remove bone groups and set their color)

    • Sort (Array)

    • Sort Bones

    • Curve Mapping

  • Addon settings for changing the naming convention:

    • “DEF”/“CTRL”/“MCH”/“TRGT” prefixes can be edited

    • the separator can be edited (by default it’s set to “.”) (the last separator used for the bone number will always be “.”)

    • “left” and “right” flags can be edited (by default they are set to “L” and “R”)

  • “Rotate Bone” node can now rotate in the local space

  • “Symmetrize” node:

    • new option to symmetrize all bones, one bone, or an array of bones

    • It can now output the symmetrized bone names

  • “Join Armature” now can output the joined bone names

Changed

  • Pointer sockets can now be None when the property they are meant to point to does not exist

  • Pointer sockets can be connected to a bool socket to check if it is valid

  • Driver sockets can be connected to a bool socket.

  • Renamed “Add prop” node to “Add Custom Prop”

  • Node trees in the background will not display their socket data

  • Created objects mode will be respected after the node tree is executed

Fixed

  • Changing node options would sometimes make deleteable socket not deleteable

  • Pointer sockets can now be connected to object sockets

  • Symmetrize node was not working correctly when multiple armatures where being edited in the same tree

  • Float to int conversion was not working

Removed

  • Removed “Custom Script” node from the node search menu (it needs a proper re-write)
3 Likes

This is so beautiful. You’re beautiful. I only just found it after thinking “if only there were rigging nodes, I could do my own muscle system instead of simple bones, it’s too much work without nodes to get good results”.
I see it has some features to work with rigify. Would be really nice if there was some short video showing some simple edit on a rigify rig, cause for now I have a hard time with it. Is it possible to actually edit the rigify rig I have or can I only use it as an input to create a new rig.
Anyway I’m amazed. Maybe I’ll actually just create my own rig instead of rigify for nodes practice. :slight_smile:

1 Like

Thank you @jamqdlaty :slight_smile:

I haven’t implemented anything for this addon to work with rigify other than what you mention of referencing it in the input node. Using it this way will consider the rigify rig as the “meta” rig and it will output another final rig.

Whatever you do in the nodes is up to you, if you already know the steps you have to make to tweak the rigify rig it should be quite straightforward.

No idea if what I’m going to propose is possible or not, but it’s something that would improve the addon a lot for me.

My first dream would be to have a library of rigs (accessible by a new submenu in Add>Armature) and rigging node trees stored somewhere in Blender user files. Another - having Custom Buttons similar to Rigify Buttons in rig Object Data Properties. These would be loaded from the library of rigging node trees. This would probably require some new “Custom Button” node which would basically add an option to execute this node tree in the Custom Buttons panel I mentioned.
This would allow a simple workflow while working on similar complex objects like human rigs with custom muscle system. I imagine a workflow like this:

  1. You load up a model, click Add>Armature>Custom>Some-Saved-Meta-Rig.
  2. You set up the rig similarly to Rigify
  3. You press a Custom Button “Generate Meta-Muscles”
  4. This executes a node tree which creates basic “Meta-Muscles” bones in more-or-less correct positions based on Meta-Rig. Now you can adjust positions of future muscles.
  5. You press a Custom Button “Generate Final Muscled Rig” - It executes another node tree which creates advanced skeleton + muscles rig based on Meta-Muscles rig.

Currently according to my knowledge I would need to append meta-rig and required node trees from another file, after positioning Meta-Rig I would need to open the Meta-Muscles node tree, find a final node, press Set Preview, edit the Meta-Muscles rig, open a Final Muscled Rig node tree, find a final node and press Set Preview again. Correct me if I’m wrong.

Anyway I’m not trying to complain here, I love your work, I’m just trying to share my ideas for improving it even more, feel free to ignore them. :stuck_out_tongue: This and some better support for Rigify rigs (node based edits to already generated rig without destroying it, although I think this would require a lot of work) would be nice two cherries on top of the cake.

Edit: Also I checked readme, the example file is for old version, so I tried looking at the images to see if I can follow what you’re doing there, but the IK/FK Setup node tree png image is so small that it’s unreadable. :frowning:

Edit 2: Not sure if it’s a question related to Blender overall or to the addon, didn’t need it in other node setups: How do I remove a custom socket? Accidentally added one that I don’t need. Google only shows some shader node related stuff and people fix it in Material tab.

This was the idea, but instead of a submenu, you’d be using the upcoming asset browser.

This is something I’ve thought of and could be done. A way of executing a node tree like an operator, for setting up specific nodes and be able to edit them later. But I haven’t really needed it personally, so I haven’t implemented it yet. Ideally you’de have these kind of “only execute once for setup reasons” node groups like assets and could be quickly executed at will from a menu. But this is still not possible, the asset browser needs to be developed a bit more (and its python API).

Yup, that’s the way I’m working right now, I’m linking node trees from other files. In my case I even split the meta rig into multiple ones (meta rig for the mouth, eyes, arm.) so that they can be joined and work on them separately. I’m waiting for the asset browser to be implemented and the drag and drop system to be reworked so attaching rig parts will be easier.
The meta-muscles workflow you mention should work, but I can’t promise anything, I haven’t tested that kind of workflow.

Yeah, I haven’t uploaded any new example. Maybe I’ll gather a few of mine and upload them here as examples.

In the “N” panel you can remove optional sockets, you can also hide them instead or use ctrl + h to hide all unconnected sockets.

1 Like

I’ve uploaded two example files here:

I wanted to edit the main post to post the link there but apparently I can’t edit it anymore.

2 Likes

By chance are you able to add a way for this to use a pie menu? So you could press a key to bring up all what you can switch too like how you can press the “Z” key to change to wireframe, rendered etc so you could say press “N” and it would show you either what parent to switch too if your switching child ofs, or from FK to IK?

Good idea, here’s how it looks like, you can download it from my gitlab. I’ve made the pie menu appear when pressing “D”.
space_switcher_pie

1 Like

Sadly, I can’t seem to get the menu to come up at all even after updating, I’ve tried changing the keybind but nothing so far. EDIT! I just ended up straight up deleted the file instead of removing it via blender, and it works now xD

1 Like

Excellent Addon, trying things I realized that it doesn’t work in 2D.
The empty menu appears.

Work well if I use a 3D project

Hello,
I’ve quickly tested creating a new 2d animation project and the nodes do appear (using 2.90).
Could you check if any errors appear on the console? (window->toggle system console)
edit: Nevermind, I was able to reproduce it. I’ll check it when I have some time.

This is solved in the new upgrade.

I have come across some oddities that I do not know if it is a limit on Blender’s side or it is a bug, but once I have switched the parent on a bone to another I can not adjust the speed or really edit the animation the most I can do is tweak animation in the graph editor.
Edit;
Here is a gif of an issue I have;