The current constraints work great but there are limitations that have annoyed me. For example, you can only have one bone for each constraint. The position constraint changes direction depending on how each bone is parented or rotated. I am very ambitious and want to make position constraints based on "world" or screen space. So if you move a bone up, it moves the constrained bone up no matter where it is in the rig.
This is a result of a very old super complex rig I created many years ago but still love using but it is very difficult to modify and use. It has on average 300 bones. Since I couldn't have multiple constraints on one bone controlling one point, I used multiple bones in exactly the same spot all with the same strength but constrained by controller bones to move in different ways. Using this new script I could knock the number of bones required to a small fraction it currently has making it much easier to create new rigs for new characters.
I would like to fix this with a new tool script. So far I've got it all set up with all the bits and bobs ready but I really need more info on saving script data to the bone layer. I know this is done quite a bit using the new-ish
Code: Select all
moho.layer:ScriptData()
Maybe some info on how much can be saved and the best way to delimit or organize the data. For example, I will need to save multiple controls for each control property along with their values.
This is just a work in progress.
![Image](https://trustthebeard.net/wp-content/uploads/moho/hv-bone-constraints-1.png)
The really really hard part (for me anyway) will be trying to figure out how to flip "matrices" and find all the movement vectors for the position constraints. I did some testing and the concept works. It will calculate the weighted percentages of each constraint value of each bone and use that to change the position, angle, or scale. I actually did some testing with a spreadsheet and it's not rocket science.
EIDT: One big thing I forgot to mention. This new constraint tool will work with an embedded layer script. The script will access the saved data created by the tool to move the bones around.