Well, the last half of last year got pretty crazy and development on ARTv2 pretty much stopped. We announced Paragon, and released a teaser trailer for it. It was a ton of work, but I think we're all happy with the results.
However, since the start of the new year, my focus has been 100% on the tools, and progress is happening at a great pace. I plan on staying on top of the tools until they get to parity and are released :)
So, since the last update, a few things have been completed:
Match Over Frame Range Tool
Each module has settings in its class that determine if it has anything to match to, and what the match over frame range options are. I also figured out how to do animated buttons :)
The matching code is also vastly improved in accuracy and speed.
Single Joint Module
At the start of the year, I started writing the single joint module. Getting it into the UI as a module option took very little time. Then the joint mover had to be created, then the skeleton settings UI for the module:
Like the leg module, there are a few common elements in the settings interface. Change Name, Parent, Mirror Module, will always be there for every module. Everything below that is custom to that module. On the single joint, I wanted to be able to change the proxy geo mesh and the control type easily, so these are built into the settings:
The control gets used in the rig build process, so any modifications you make stay and get used as the rig control.
Leaf joint and Jiggle joint from ARTv1 have been combined into this Single Joint module in v2. If you want jiggle dynamics, you can check the 'Has Dynamics' box, and the rig will be built with that as a mode. You can also choose here which attributes you want unlocked and animated, as well as add custom attributes!
For the custom attributes, I wanted to try and remove as much from post-scripts as possible, so now you can add attributes in the settings step, with their min/max/default values, and the goal will be to eventually be able to setup your relationships here as well. These custom attributes get saved with templates as well as get mirrored over when creating a mirror module.
Creating the mirror module was something I had to revisit in the base class as well. When working with just the leg module, I never tried having a leg a child of another leg, but with single joints, you'll likely be doing that sort of thing a lot! So, when creating a mirror, you want the mirror to be a child of the parent's mirror. So if I have a single joint as a child of thigh_l, when creating a mirror, I now look at the parent module of the single joint, see if that has a mirror, and if so, use that as the parent of the newly created module.
The rig build is fairly straight forward, but if you have dynamics added, you get some more options, like mass, spring stiffness, damping, bounciness, and orient to parent.
The picker for the single joint was pretty easy to implement, given it's..a single joint. It creates the button, a label so you know what it is, and if you right-click, you can select it's settings.
The only thing left to do was write the single joint module's import FBX method, which was like 10 lines of code :)
Change Animation Picker Background
This was something else I added in. I really wanted the ability to set a custom background in the picker, in each picker tab.
These backgrounds also save and load with the templates!
It's been a pretty productive couple weeks! There was also some bug fixes and polish items done. Next week I'll start the arm module, which I'm guessing will take a couple weeks, then I have the spine, head, and chain modules. So not too much left to get to parity!