Hey there, it's been quite a while, hasn't it? But you'll be happy to know that I haven't been doing nothing in the meantime. I've been hard at work creating a new rigging system for my characters!
Previously I've mostly been using Blenrig5 for my characters, and this new system is heavily inspired by it. However, Blenrig5 has quite a few limitations.
In general, I had to rely on a great bit of corrective smoothing and careful camera angles to get the renders I wanted or was at least happy with. So, one big goal for this new system was to be able to get any pose I wanted without having to fear that it looked wrong. And I'm happy to say that this has become the case!
As a quick summary. The new rig is
As a quick aside first.
A lot of the time was also spent developing a set of python modules that made development of those tools and future ones a lot easier. With previous tools I never really invested the time to make the functions truly reusable. But with this one I hope to achieve this, and I've already tested it on a few smaller scripts that took a lot less time to write with the new modules.
They are for the most part a series of wrapper classes around existing bpy objects that add pointers back to the holding structures and add a bunch of frequently used functions.
The process starts by setting up a metarig with the Rigify structure. We also set up the controller bones at this stage.
Once the metarig is done, the objects can be prepared. The first step is to assign the collections holding all parts that should be rigged to body parts. There we can decide which bones should be responsible for parenting. We can also decide if the contained objects should be rigged with vertex weights, or directly to the bones.
The metarig is then refined by the script into a version that cleans up problematic areas and adds loads of features and additional controls. It uses the previously set up body parts to distribute the shapekeys for later. The nice thing about the refinement step is that it doesn't reset any changes the rigger made on a previous attempt. For pretty much everything it checks if the property already exists, and if it does, it only adjusts the values if it makes sense.
Once the rig has been created, the objects should be parented to it. The parenting panel will do the first step with automatic rigging, which for most areas should be almost perfect already, though some like the upper legs require some cleanup.
After that, the actions need to be set up, and following that, the shapekeys.
Once everything is looking good, the rigger has the option to apply a lot of the custom properties to make the rig evaluate faster, at the cost of losing a bit of freedom to change a few things later.
A few things can be done quicker if a previous version exists. If a somewhat compatible metarig exists, the rigger can create a reprojected rig that can easily be transformed in pose mode before the changes are then applied to the original back in edit mode, allowing the rigger to adjust proportions to a new character.
Furthermore, actions can be reused, however I need to write a system that adjusts for proportional differences still.
The rigging system needs to be run in Blender 3.0, as new matrix multiplications and Rigify presets have been introduced there, courtesy of Alexander Gavrilov https://github.com/angavrilov
Since it is currently in alpha and the official release has unfortunately been delayed a few months, the alpha build will have to be used until then.
I want and need to adjust the rig system in the future to allow it to work for differently structured characters. That means I need to add wing support and the ability to use multiple body part of the same kind: Multiple heads, arms, legs, etc. to name a few things.
Also, I want to increase the functionality and design of existing parts. While I'm happy with for example the face for now, I do want to make improvements in the future. A long time was spent just testing out different bone meshes to fit the face and test out which controllers work, because there is virtually no reference for this kind of thing out there, unless we are counting the Disney and DreamWorks characters. But those are not disclosed to the public, and generally set up not in blender which would make compatibility questionable. So, I just had to see what works. And I'm sure in the future I'll come across better concepts and implement those in the system as well.
As this system is now in a somewhat completed state, I will be getting back to sculpting my next two characters and then rig them with this system.
Schism
2021-09-12 23:20:17 +0000 UTCKaitoukitsune
2021-09-09 23:58:29 +0000 UTCKaitoukitsune
2021-09-09 23:57:34 +0000 UTC