As I’ve mentioned earlier, as well as manipulating control shapes around on screen, another way to interact with the rig is via attributes.
We have been learning about using Set Driven Key to control objects. It works a lot like animating itself, you select something and give it keyframes in different positions, only these keyframes are tied to an attribute which when you change the attribute it changes the object.
I’ve used set driven key on my hand controller to control the fingers. There are attributes which control the curl of each individual finger and then an ‘all curl’ which controls all those attributes. I was unsure of whether to set up ‘all curl’:
- ‘All Curl’ is set driven key against ‘Index Curl’, ‘Mid Curl’ etc.
- ‘All Curl’ is set driven key against the rotation jnt_thumb_1, jnt_index_1, etc.
For simplicity’s sake I just used the finger curls I had already setup and connected them to all curl which has worked so I’m thankful for that. Some other rigs I looked at had set driven key for each individual finger joint but I had already spent enough time on this and didn’t want to spend forever setting up countless joints.
The Set Driven Key tool works great but is not very intuitive. For a novice to this tool it would be very difficult to understand what is going on as there is no prompts to explain what to do. Once you know how it works its pretty easy to understand so although it could be a potential thing to re-work for my scripting tool I don’t think this will be worth re-building.
Set Driven Key on hands generally takes quite some time. Again this something that could be scripted but I think is too advanced for me to attempt.
One problem I have run into is with the thumb rotation. All other fingers rotate quite well but the thumb’s joints aren’t all lined up correctly and the rotation it takes across the hand is not perfect. Although the ‘Thumb Side’ attribute can reposition it better I’d like to take a look at this later to try and fix the problem. I am unsure which rotation axis to use to get it to rotate properly so will come back to this later.
I’ve added in minimum and maximum values to these attributes so that the attribute value will not just keep going on forever if the user holds onto the slider (although the fingers wouldn’t move further past their keyframes anyway), this is more of a usability thing as it looks less like a bug if the values are surpassed.
Another problem I foresee occurring is the fact that I’ve had to use guesswork to see how far to rotate the fingers. Without seeing the mesh move with it its hard to tell where the tips of the fingers touch the hand. Although not too much of an issue, this is something I can tweak once I’ve started skinning.