Bone Face Rig - single bone rotation of head and face
Moderators: Víctor Paredes, Belgarath, slowtiger
Bone Face Rig - single bone rotation of head and face
This is a new thread about a bone rig for animating faces I am developing. I decided to start a new one since this is sort of "version 2".
I'm closing in on the final rig.
http://www.lowrestv.com/moho_stuff/male_agent2e.mov
This is pretty close. There are still some issues with the sides of the head/cheek and hair that I haven't quite figured out how to deal with. I figured out the other problems so I am confident I will find the solution.
I have dealt with the ears by using a separate "back head" layer and a front "head/face" with the ear layers sandwiched between. This is where I run into problems. The back head stays put mostly. It shifts slightly on either side as the head turns. The front head/face however is the big problem. I either will lose the stroke on the outside edge of the turn or else have an odd stroke on the inside edge. I need that front head to NOT cover the ears. Plus if I have hair at some point it needs to be hidden behind the head as well.
I still need to tweak the eye motion but it works better than the original. I am only using Genete's springy 3D rig for the eye rotation around the head.
The ears were an absolute pain in the freaking arse. I drew them "open" on frame 0 then had to close them up with bone offset. I then added bone constraints to the "ear bones" so they open to the original configuration when the head turns. It looks pretty good if you ask me. It should still be fairly easy to create different types of ears... ears don't change that much anyway.
The eyes weren't much fun either. Each eye has a top level bone. They move based on the springy "3D" rig from Genete. But the eyeballs needed individual bones for control... and still follow the head as it turns. It was a pain but it works. When the head turns the eyes stay in place. Another bone can change the eyeballs position in unison. There are also individual eyeball controls for each eye separately... mainly for tweaking if needed or a "cross-eyed" look.
At some point very soon I will be asking for beta testers. I plan to sell this so I will need some honest feedback. It uses one layer script for the rotation. I modified a script from Rasheed to rotate a bone based on the translation of another bone. So by dragging a bone in the x axis it causes another slave bone to rotate. Very cool. It is only used for the eyes at the moment. I was able to go back to my original concept of using one bone to do the entire rotation of the face.
-vern
I'm closing in on the final rig.
http://www.lowrestv.com/moho_stuff/male_agent2e.mov
This is pretty close. There are still some issues with the sides of the head/cheek and hair that I haven't quite figured out how to deal with. I figured out the other problems so I am confident I will find the solution.
I have dealt with the ears by using a separate "back head" layer and a front "head/face" with the ear layers sandwiched between. This is where I run into problems. The back head stays put mostly. It shifts slightly on either side as the head turns. The front head/face however is the big problem. I either will lose the stroke on the outside edge of the turn or else have an odd stroke on the inside edge. I need that front head to NOT cover the ears. Plus if I have hair at some point it needs to be hidden behind the head as well.
I still need to tweak the eye motion but it works better than the original. I am only using Genete's springy 3D rig for the eye rotation around the head.
The ears were an absolute pain in the freaking arse. I drew them "open" on frame 0 then had to close them up with bone offset. I then added bone constraints to the "ear bones" so they open to the original configuration when the head turns. It looks pretty good if you ask me. It should still be fairly easy to create different types of ears... ears don't change that much anyway.
The eyes weren't much fun either. Each eye has a top level bone. They move based on the springy "3D" rig from Genete. But the eyeballs needed individual bones for control... and still follow the head as it turns. It was a pain but it works. When the head turns the eyes stay in place. Another bone can change the eyeballs position in unison. There are also individual eyeball controls for each eye separately... mainly for tweaking if needed or a "cross-eyed" look.
At some point very soon I will be asking for beta testers. I plan to sell this so I will need some honest feedback. It uses one layer script for the rotation. I modified a script from Rasheed to rotate a bone based on the translation of another bone. So by dragging a bone in the x axis it causes another slave bone to rotate. Very cool. It is only used for the eyes at the moment. I was able to go back to my original concept of using one bone to do the entire rotation of the face.
-vern
There is only 1 bone to do the turn. Both horizontal and vertical. You just drag one bone around to turn the head.
There are other bones for the face. One bone each for the upper and lower lips/jaw.
For this version they are controlled independently but I hope to add another "top level" control for the whole mouth with a lower level for each lip or lip/jaw area. Same as the eyeballs are now.
So you could animate the whole mouth open and closed, pursed or wide with just one bone, then add additional motion as needed using the targeted controls, or just use the targeted controls alone. Very flexible.
Also each lip has another sub level control for each side (left/right). Lots of control.
There are similar bones for the eyes and eyebrows. All independently controlled. You can drag both eyebrows up or down, squish them in change the angle, or do each separately. The eyelids can be controlled together or separately as well.
I think that pretty much covers every aspect of facial expression I could think of... within reason of course. If you want him to puff his cheeks out you could do that with a point motion action added to the bone motion.
I have written a sort of "targeted" layer script specific to the rig. This cuts over 200 lines of code from the script and makes it easier to write. I am able to hard code in the exact bone IDs so I don't need to constantly parse the bone list on every frame (over 200 bones). It is hard to tell if this improves performance yet since my Mac is very slow.
The best part for me is that all key frames are based on bone translation. Just one animation channel to keep track of. The script handles adding rotation keys for specific bones from another bones translation but you don't have to touch those unless you need to delete them.
Of course the body rig will be "traditional" bone rotation.
I've been trying to find a justification for what may seem to be a lot of effort in this. What I realized is that in the past I would spend 10 times the effort rigging a 3D character. This is actually easer by comparison.
-vern
There are other bones for the face. One bone each for the upper and lower lips/jaw.
For this version they are controlled independently but I hope to add another "top level" control for the whole mouth with a lower level for each lip or lip/jaw area. Same as the eyeballs are now.
So you could animate the whole mouth open and closed, pursed or wide with just one bone, then add additional motion as needed using the targeted controls, or just use the targeted controls alone. Very flexible.
Also each lip has another sub level control for each side (left/right). Lots of control.
There are similar bones for the eyes and eyebrows. All independently controlled. You can drag both eyebrows up or down, squish them in change the angle, or do each separately. The eyelids can be controlled together or separately as well.
I think that pretty much covers every aspect of facial expression I could think of... within reason of course. If you want him to puff his cheeks out you could do that with a point motion action added to the bone motion.
I have written a sort of "targeted" layer script specific to the rig. This cuts over 200 lines of code from the script and makes it easier to write. I am able to hard code in the exact bone IDs so I don't need to constantly parse the bone list on every frame (over 200 bones). It is hard to tell if this improves performance yet since my Mac is very slow.
The best part for me is that all key frames are based on bone translation. Just one animation channel to keep track of. The script handles adding rotation keys for specific bones from another bones translation but you don't have to touch those unless you need to delete them.
Of course the body rig will be "traditional" bone rotation.
I've been trying to find a justification for what may seem to be a lot of effort in this. What I realized is that in the past I would spend 10 times the effort rigging a 3D character. This is actually easer by comparison.
-vern
Well I think the character is perfect for a TV ad - ANYTHING! No doubt you;d be able to pitch it to a media company who would supply yo uwith a big guy's voicetrack promoting SOMETHING (toilet cleaner, tabletop cleaner, vegetable specials, XBOX360, used car warehouse...etc...) and you'd be able to give them the animation in like...A DAY OR TWO!
I really think you should apply your animated rig to perhaps earn a bit of cash and exposure. It's a fantastic 3D effect, and his face really does distort to extremes which makes for great animation.
I really think you should apply your animated rig to perhaps earn a bit of cash and exposure. It's a fantastic 3D effect, and his face really does distort to extremes which makes for great animation.
I plan to sell the characters with the rig. I would like to focus on the actual usable characters as much as the rig. For instance I could see people purchasing the characters for some project and the rig is just a bonus.
I have bunches of characters that have never seen the light of day that could be applied to this rig. It would be a way to make use of them without having to put them in an animation myself.
To start with I am focusing on "out of the box ready to animate" characters of different varieties. I will start with one character, probably this one, and maybe a female character. Similar to how some people are creating figures and add ons for Poser. That's the best comparison to what's in my head at the moment.
I would also like to have "add ons", characters with props and different clothes. I could put a suit and tie on this guy, or a t-shirt and jeans, that kind of thing.
I can also sell really really really cheap characters WITHOUT the rig that could be dropped in to an existing rig that was purchased previously.
I want to start out simple and cheap to get things going. I will eventually have a version with a description on applying the rig to your own characters. At the moment that would take longer to get this going as I had to jump through some "odd" hoops to solve some problems.
It still is humanly possible to apply the rig to your own stuff but you should have a pretty good knowledge of ASP to do it. There is some amount of point/bone binding required. This is a view of frame 0 with frame 1 inset:

Does this look too complicated?
I would put in diagrams and instructions in the file for adding your own characters.
-vern
I have bunches of characters that have never seen the light of day that could be applied to this rig. It would be a way to make use of them without having to put them in an animation myself.

To start with I am focusing on "out of the box ready to animate" characters of different varieties. I will start with one character, probably this one, and maybe a female character. Similar to how some people are creating figures and add ons for Poser. That's the best comparison to what's in my head at the moment.
I would also like to have "add ons", characters with props and different clothes. I could put a suit and tie on this guy, or a t-shirt and jeans, that kind of thing.
I can also sell really really really cheap characters WITHOUT the rig that could be dropped in to an existing rig that was purchased previously.
I want to start out simple and cheap to get things going. I will eventually have a version with a description on applying the rig to your own characters. At the moment that would take longer to get this going as I had to jump through some "odd" hoops to solve some problems.
It still is humanly possible to apply the rig to your own stuff but you should have a pretty good knowledge of ASP to do it. There is some amount of point/bone binding required. This is a view of frame 0 with frame 1 inset:

Does this look too complicated?
I would put in diagrams and instructions in the file for adding your own characters.
-vern
- Ashe Raven
- Posts: 62
- Joined: Thu Sep 14, 2006 11:43 pm
- Contact:
Actually in that image that is just regular bone offset.
In order to have the eyes and ears work correctly I had to move them off to the side so as not to be influenced by all the other bones.
The mouth has a large set of bones as well and needed to be offset. Offsetting the bones was simple by dragging just the group parent. When I looked at the dozens of little bones I would have to offset I added another parent bone for those groups.
I also have an action with point offset the way you describe. Mainly for the beard. There were some trouble spots with it and I didn't want to create even more bones and offset the beard as well.
Only two points on the beard at the corners of the mouth needed to be moved on frame 1. Their position was tweaked on frame 0 to fall between the influence of two of the mouth bones. On frame 1 I just tweaked them back.

-vern
In order to have the eyes and ears work correctly I had to move them off to the side so as not to be influenced by all the other bones.
The mouth has a large set of bones as well and needed to be offset. Offsetting the bones was simple by dragging just the group parent. When I looked at the dozens of little bones I would have to offset I added another parent bone for those groups.

I also have an action with point offset the way you describe. Mainly for the beard. There were some trouble spots with it and I didn't want to create even more bones and offset the beard as well.
Only two points on the beard at the corners of the mouth needed to be moved on frame 1. Their position was tweaked on frame 0 to fall between the influence of two of the mouth bones. On frame 1 I just tweaked them back.

-vern
Not exactly...
The points are ALWAYS effected by the bones from their ORIGINAL position in frame 0. Moving them on frame 1 doesn't change that.
For example in this case... the points on the beard if left unchanged on frame 0, left in the "correct" position will be influenced by the wrong bone and stick out funny.
On frame 0 I move those points to be influenced by the inner mouth corner bones. On frame 1 those points are "weird" so I move them back to where they should be... BUT they are still influenced by the same corner mouth bones and distort correctly... they are not influenced by the bones in the new point position.
I only need that point motion on frame 1.
-vern
The points are ALWAYS effected by the bones from their ORIGINAL position in frame 0. Moving them on frame 1 doesn't change that.
For example in this case... the points on the beard if left unchanged on frame 0, left in the "correct" position will be influenced by the wrong bone and stick out funny.
On frame 0 I move those points to be influenced by the inner mouth corner bones. On frame 1 those points are "weird" so I move them back to where they should be... BUT they are still influenced by the same corner mouth bones and distort correctly... they are not influenced by the bones in the new point position.
I only need that point motion on frame 1.
-vern