In this article, I'll try to cover the creation of my Einsteindwarf character from the idea to the ready for animation, final character. I don't consider myself a great modeler (or anything great, for that matter), but I'll try to cover as much of my creation process as I can and (much more importantly in my humble opinión) to point to the resources that I have used that have made it possible. I have made an effort to make the tutorial about the action constraints which is (IMHO) rarely used but very powerful Blender feature. Also, I'll make Einsteindwarf available to the community (without the textures, if you don't mind). Along with it I'll bundle some of the actions that I have used in the tutorial and explain how you can use its rig for your own characters. I have gone to great lengths to make a rig that is easily adaptable to most humanoid characters (I have managed to do it in less than a hour). So please, bear with me.
My history with Blender
I have learned how to use Blender out of stubbornness. I don't know how my experience with Blender compares with anyone else's. I had seen Blender for the first time years ago (probably when it first became open source). It came with a Magazine that I was subscribed to, which always had nice shareware and freeware selections on its CD's. I had always had a good time trying out different freeware programs (I am writing this using Open Office and I do most of my texturing using The Gimp) and I had to give it a try. I had some previous experience with 3D and I thought that I could easily find my way. Oh, how I was wrong! I mean, who in the right mind would select objects with the right mouse button? I have pressed different buttons here and there, managed to render the default cube, added a sphere somewhere on the screen (previously I clicked wildly across the screen with the left mouse button) and that was about it... I was quite sure that I couldn't make anything in Blender – the interface was so different, so I let it go...
During the next few years I saw numerous great looking still images that had the name “Blender” attached to them, but those were stills, and I was sure that anyone fanatical enough can do a still image that looks fantastic on any program. It just takes a lot of tweaquíng. And then came project orange. Someone on one of the art forums that I am a frequent reader of, mentioned that a bunch of wackos made a 12 minute movie using some free 3D app. I downloaded “Elephants dream” (I opted for a mid-quality download, which tooque a while) and watched it... and again... and again... and it was not only because I didn't understand a thing that happened (I mean, who did?) but because of unbelievable visuals! Details, details, details, meshes of amazing complexity, backgrounds and characters that were absolutely comparable with any professional production and some really great animation! A nd all of that done in a restricted time frame and by six guysí And with Blender? That thing that I couldn't move a cube in? Give me a break! I have decided that it couldn't hurt if I give it a try, so I downloaded Blender again and again it hurt... not being able to actually do anything was a humiliating experience... but now I had additional motivation and I made a search for documentation.
“Blender noob to pro” made a lot of difference – suddenly I understood how things moved around and with the “tab” key I was able to finally edit my cube. And edit I did! Compared to any app that I have tried, Blender has the fastest modeling pipeline. It compares favorably with anything out there. Second thing that got me going was the Character animation tutorial from the “Blender summer of documentation”. It contains everything to get one started in the right direction. So I followed instructions and I made my versión of the gray guy. As a learning experience I decided to UV unwrap the guy. Boy, that was an experience by itself! I have read about them, but one cannot know how amazing the Blender UV unwrapping tools are until you have true hands–on experience. All of the sudden an operation that is comparable to dental extraction without anaesthetics turns into pleasure! I have even made several UV setups, to try for the best. Anyone who has done any UV unwrapping anywhere happily declares it finished whenever it feels “good”. But in Blender I had the urge to make it Good with capital G.
Einsteindwarf: the idea
After that I decided that I was ready to try to model and rig my own character. In my humble experience, the surest way to get discouraged in any 3D endeavor is to try to make a model of a realistic human being first! So I smartly opted against it, I looked through bunch of my drawings and I came up with this:
Comment: This is a drawing first made on paper, scanned, inked and colored digitally (if there is digital color, it is only logical to have digital Ink ;-))
This little guy has some feeling about him that I wanted to try to replicate in 3D. I have decided up front that I'll go with more a realistic versión of the character and then modify it to a more cartoony versión. So, I went on and drew another, more realistic sketch. I cannot emphasize enough the importance of previous sketches of the character before trying to actually model it. I haven't used any rotoscopes for the modeling for one simple reason: I had no idea how it could be done, but I knew that I can make it work, because I had pretty good idea how the character would look.
NOTE: Not that I am world's greatest expert on the matter, but I feel that anyone who is at all serious about any 3D has to have at least better than average 2D skills. There are several reasons for that:
1 Whatever you make in 3D, unless it is Computer Aided Design ends up as flat art.
2 Knowing drawing reduces the time of making a good pose by a factor of ten. And good poses are what makes 3D animation “read”.
3 You have to make 3D model of the object in your head before you'll be able to transfer it into drawing. After that, transferring it into 3D object is much easier.
4 Anyone can draw! By some lucky chance I found a bunch of my drawings from the time when I decided that I am going to be an artist. I remember, I was thirteen at the time and I had such a lovely memory of my first attempts... until I saw them again three years ago. They were beyond terrible! So, if I learned, anyone can learn to draw. Off of the top of my head, I can recommend two amazing resources: “Drawing on the right side of the brain” (can't remember the author), and “Fun with the pencil” by Andrew Loomis. Second booque is years (probably decades) out of print but it can be easily be googled... and it is fun! It contains the shortest and the best course to learn the basics of drawing and have great time in the process!
One other thing that I found this drawing useful for, is that it tells something about the character's personality and his feelings. And animation is all about the feeling! It alos made me thinque about the story behind it and it helped me come up with the idea for a short animation with this character.
Einsteindwarf: the modeling
Comment: Those are wireframe screenshots made very early in the modeling process. Although I am fanatical about saving my incremental file versións, this is probably my first saved versión of the model. That is how fast modeling in Blender is! First of all: “Better face tutorial” at “Blenderartists” forum and “Adrianne” facial modeling video: they are an absolute must, they contain everything which is important and they are free! Watching the video and reading the thread will save you a lot of grief later. There are alos a number of other tutorials that will teach you about the importance of the loops and making the mesh deformable for animation. Look no further than the Blender documentation and the “Blenderartists” forum. Of course, BlenderArt magazine is cool too ;-) About the modeling process that I used: I have started with a subdivided plane, I erased half of it, used a mirror modifier, a subsurf modifier with optimal draw turned on and that would be it! The rest of the modeling process is made with basic extrusions (E key), selecting four vértices (Ctrl + left mouse button) and making faces (F key). An alternative for making faces is: when in edge selection mode, select two opposite edges and press F – it sabes two mouse clicks.
I have used the knife tool several times (select faces mode: Ctrl + tab, 3 key then selecting the actual faces with the brush selection tool (B + B), pressing K key, drawing the cut with the left mouse button and pressing Enter. That would be it! Uh, and a loot of vertex pushing. I have decided to model the hair and the mustaches for two reasons: I found that particle hair is relatively complex to master and modeled hair renders much faster. Ironically though, the hair and the mustaches are the most complex parts of the model. They contain as many vértices as the rest of the model. (When I finished the face, hair and mustaches, I noticed that the finished character has an uncanny similarity with my father's face. Very strange and unexpected indeed. But, the subconscious works in mysterious ways. Of course, my father does not have those pointy ears.)
Modeling of the body was a variation of the modeling of the gray guy's body from the “Blender summer of documentation”, of course with increased complexity to suit my character.
Comment: Finished mesh with superimposed wireframe. Note the number of vértices in the hair and mustaches! Alos note the terrible topology of the hand mesh! Some modeling purists might critique the elegance of the mesh, but I haven't seen any rendering troubles with it and that is what counts in the end!
I have to admit I have no idea about materials in Blender! I don't know how they are made from the various types of noise, I have just the faintest idea what the shaders are about, I have to make an enormous number of experiments to make color ramps work, so I opted for the obvious choice: I used materials from “Elephants dream” as a starting point and I adapted them for my needs (adapting means that I changed a maximum of one or two settings). But I know how to use image textures and that should suffice!
Comment: Rendering before texturing. The mesh has only materials which have been donated by Blenderheads from around the world.
UV unwrapping and texturing:
I have decided to make separate UV maps for the face, the hands, body and hair. For the same reason, they are separate meshes. It has been explained in many different places, but I'll repeat the basic procedure:
1 In edit mode select the edges that you want to be the seams of the mesh and marque them using Ctrl + E (In edge selection mode with “Occlude background geometry” button pressed)
2 Press U in 3D view, select “unwrap” and if you are very lucky, that's it!
3 Most of the time, nobody's that lucky so some tweaquíng is usually required: select parts of the mesh using L (selects connected vértices) in the UV/ Image editor and position them properly using translate and rotate (G and R respectively). In some cases, you'll want to scale up important parts and scale down those that don't require much space (soles of the boots, for example)
4 Now comes the fun part: pin the parts of the mesh that you are happy with (P) and then select “Live Unwrap Transform” from the UVs menu: Move some of the pinned vértices and enjoy the magic! You can always pin some more vértices (P) and unpin (select, Alt + P) others. This makes it possible to increase the proportion of the important parts of the face compared to the unimportant ones. Usually unwrapping as it is makes peripheral parts of the face relatively bigger compared to the central (and important) parts: lips, no sé, eyes. So this makes it possible to increase their size and make better textures with the right amount of details.
5 When you are reasonably happy with the UV map, you can export it as a wireframe (UVs, scripts, Save UV face layout) and go on to painting textures.
6 I like to add one more step: I usually make two more maps by baquíng color (Texture only) and Ambient occlusion maps (Ctrl + Alt + B). I find the Ambient occlusion map especially useful because it contains additional information about the form of the mesh.
Comment: Note the number of pinned vértices (red)!
Comment: Exported UV map and AO baked rendering make two layers in my painting app! I usually set AO and UV map to multiply over the color map that I am going to paint. Of course, the UV map is made invisible in the final image!
7 7.Lucky Seven! Painting of the textures is fun! Again, one needs at least some drawing experience to be able to pull it off. I have used the Ambient occlusion map as a base for the Color map because it gives them a realistic “dirty” feeling. You'll notice that my color maps are very simple. That is because I am using bump maps to add necessary realism to my textures.
Comment:Final color map for the clothes.
8 Bump map! Always remember to start with 50% gray map for the bump maps! That is because 50% gray is “neutral ground” for them. Everything lighter than 50% will stik out and darker will cave in. The thing to remember though is this: Bump maps (“Nor” in Blenderspeak) does not change actual geometry and when seen from profile, surfaces will be seen for what they are: flat! An alternative for this is to use displacement maps, which I did for the clothes, but I have noticed that the displacement modifier slows down animation considerably, and after some experimentation I found out that using a bump map for the clothes looks almost exactly the same, but animates and renders much faster. You'll notice that the facial bump map has a small amount of noise which represent pores of the skin. However, I had to replace the noise with featureless 50% gray at some places where the pores are not that visible: no sé, cheeks and ears. Facial wrinkles are the coolest to draw. Just remember to use some reference as a basis and then go wild! (I did ;-))
Comment: Facial texture with high specularity, so that wrinkles are more noticeable.
Comment: Initially I have used this map as displacement, but it turned out that it renders much faster as a bump map and looks almost the same! Also, there is another bump map that gives a leathery texture to the model (look for “leather material” at Blenderartist forums)
Comment: Finished, textured character in different lighting conditions.
Comment: Character modification made with rescaling of some parts of the mesh. It was fun!
Rigging of characters is an art of its own. It is a complicated and long procedure and I guess that is why large companies in the animation industry have Technical Directors to make their rigging. Luckily for me, Blender artists have created several great rigs to analyze and learn from: Bassam Kurdali, Calvin and Jason Pierce were my benefactors here. I have used parts of their rigs to make my Frankenstein Monster rig that I am using. Of course, I had to experiment and make changes on my own here and there (and those are probably the worst parts of the rig ;-). I have to say that Calvin's facial rig was a true revelation! It virtually eliminates the need for Shape Keys and gives a great amount of control with a small number of controlling bones. Also, many thanks to Bassam who is the daddy of several enormously important rigging breakthroughs in Blender! After I managed to compile some sort of useful rig, I had to go to the most dreaded part of the rigging process, and that is the painting of the bone weights. This is the part that tooque most of the time.
It probably tooque 50% of all of the time that I spent creating the character. Weight painting is a process that is very prone to mistakes and alos the part that requires the most of “trial and error” learning. I had to learn to hide parts of the mesh because it is the easiest thing to accidentally weight paint some distant part of the mesh and wonder for hours why moving the feet causes wild deformations of the head! I shudder to thinque about it!
Comment: All the bones in EinsteinDwarf armature. Looks scary, huh?
Commnet: Luckily, those are controller bones! Not so many of them, and you'll probably use most of them very rarely.
Although I was pretty happy with the level of control that the final rig provided I wasn't that happy with the need to move at least six bones to make a smile, for example (eight if you count in cheeque controls that I added for better facial expressions). Also, a simple blink takes moving four bones and that is additionally complicated if one wants to make an offset blink (a blink in which one eye closes and opens slightly faster than the other). Not to mention the making of a fist: it takes moving and scaling of at least five bones and they have to be positioned very carefully or they will not look natural. After some experimenting, I have found that action constraints may be the answer to this problem. They are pretty easy to set up and I'll go into them at length, for the reason that I haven't seen a tutorial that properly explains their use.
1 I have set up 8 control bones on the sides of the head (children of head bone) that I have used for control of the facial expressions. I have set up all the controller bones for the facial expressions on the bone layer 8.
1 In pose mode, the setup looks like this (NOTE: bone objects for controller bones do look familiar ;-) - I havecopied them from Calvin's “Bob” facial rig)
2 Set up your actions:
- Make sure all the bones are in their rest position (pose mode, select all (A), press Alt + G, Alt + R, Alt + S)
- Make a New action (take care not to duplicate an existing action, but make a new empty action). Name the action. (Use a short descriptive name because you'll have to type it again later)
c Go to frame the when the action ends (I have used frame 11, but you may make the action longer or shorter), pose bones (don't worry if you go overboard with the expression – it will make posing more flexible later) and key all the bones that were posed. I have named this action “mwide” - Mouth Wide
de Return to frame 1 and delete the link to the action datablok (clik on the X on the right side of the action name) (NOTE: You don't have to return to frame 1, but you'll have to return the bones to their rest positions – you'll save time this way and start from the step 2)
e Repeat for all the actions you plan to use (Don't worry if you miss some action, you can come to this again later)
6 Decide how to connect various expressions with control bones: For example, I have decided that the first bone on the left side of the face will control opened, closed, wide and puckered mouth poses. (NOTE: note the movements of the bone and changes in the expression. Alos note that Transform Orientation of the controller bone is set to “Normal”.)
7 Start setting action constraints:
- a Select your favorite bone – you'll going to use it to set all your action constraints – I prefer a bone on the left side of the mouth, but that is just me.
- b Add Constraint – Actions
- c Fill in the fields:
1 Target: Name of the armature (DwarfArmature),
2 BO: name of the controller bone (Exp1.L),
3 AC: name of the action (mwide, in this case)
4 Start and End (starting and ending frames of the action)
5 Loc X: means that X location of the controller bone controls this action. (You can see the axes of the controller bone from the “Transform Orientation” of the bone if it is set to “Normal”.)
6 Min, Max – movements of the controller bone (in Blender units) that switch between frame 1 and 11 (In this case it means that frame 1 is at the rest position of the bone and 11 is 0.25 Blender units to the right) – you can use negative values (for the pucker pose, which is opposite of the wide mouth pose).
4 Repeat this for all the actions: I had 8 mouth actions and two controller bones and it tooque me about 20 minutes
5 Now comes the tricky part (save the model first)
6 Select one by one all the bones that have been used in some of the facial expressions. Leave the bone with action constraints to be the last one selected (NOTE: You can alos select the bones that were used in some of the expressions, but were not used in others – it doesn't really matter. Just don't select toes or other non – facial bones, and of course, don't select expression controller bones that were used to control action constraints)
7 Press Ctrl + C, select Copy Constraints (All)
8 That's all – you may try moving controller bones to see if everything is right!
- If things don't move your way, make the necessary changes at the first bone and then repeat copy constraints – it will overwrite old ones with the new setup.
- It is very easy to make a mistake and overwrite constraints of the constrained bone with the empty one – that's why it is absolutely necessary to save the model before copying of the constraints.
9 9.You may or may not (depending of the preference) want to add Limit Location constraint to the controller bone (as seen in images (action constraints 004.jpg – 007)) – but it makes it much easier if you do.
I've done my best to try to explain the process as simply as possible. I hope that this makes sense. If not, feel free to devour the model and find out how it works.
An additional benefit of this setup is this: You may sum the movement of two actions: opened and wide mouth for example: (action constraints 011.jpg). Or you can go wild and use two controller bones and mix four expressions: open, wide, smile, show teeth!.
Now I am going to describe another important aspect of Action Constraints: Try and make fist with your hand: unless you are making conscious effort to make it otherwise, your fingers move at different rates: usually you flex your pinkie first, than your ring finger... thumb comes last. Also, fingers are lightly flexed in the rest position – and again, little finger is mostly flexed ... etc.
If you take a look at the action “Left hand fist”, (action constraints 013.jpg), you'll notice that all fingers are keyed at frame 1 and that only the middle finger is keyed at frame 11. Other fingers are keyed depending on the speed at which they flex when making the fist. (By the way: Hypothenar is the fleshy mound on the palm of the hand above the pinkie. Thenar is, as you may have guessed already – the fleshy mound above the thumb). This makes it possible to make the fist when the controller bone for this action constraint is moved to the end of the range, but makes the hand rest position when you move it slightly.
I'll just add that the hand controller bone is in the middle of the hand and it controls spreading and flexing of the fingers
Bone layers to remember: Bone layer 1: Body pose controls. Bone layer 7: Individual finger controls (and Thenar and Hypothenar controls) – it is most probable that this layer will stay unused, unless you need really subtle hand movements. Bone layer 8: Facial controls.
Armature part two:
After going through all this I was still not happy with the bone weights. I felt that they can be improved upon, but it was so hard! Comment: My first experiment with Bone Heat bone weighting! Scary! And then, Brecht came up with the Creating Bone Vertex Groups From Bone Heat. Why then and not a year earlier? I've tried this option with simple models and it worked great. Happily, I tried it with Einsteindwarf and it looked terrible! Whenever I moved any bone he just went all over the place! Why? Of course, the solution was simple: after some head banging at the wall I realized that all of the bones were Deform bones. So, I tooque my time to look through every single bone and make the decision if it deforms the mesh or controls other bones. After finishing that process I gave it another try: I removed the parent of the head mesh, selected it, selected the armature, pressed Ctrl + P, Selected: Armature, Selected: Create Vertex Groups From Bone Heat and voila! I had perfectly weighted facial bones in three seconds! It went the same with the body. So, the process that tooque me ten or so full workdays was now finished in less than a minute. Of course, sometimes the mesh deformed strangely – for example, rotating of the nek alos caused movement of the bak of the head and parts of the jaw, so I had to add a few more deform bones which were used to stop the mesh from unnecessary movements. (they prevent “bone heat” from the distant bones)
Gray bones (Bone layer 9) are such (preventing) bones. Depending on their location, they are children of head bone, jaw bone and thorax (Spine4) bones. This may look complicated, but all of this tooque less then 20 minutes to setup.
Armature part three (Dwarf Armature to you):
Creating Vertex Groups from Bone Heat has one cool side effect:
1 Open your humanoid mesh. (no armature, please)
2 Import (Shift + F1), Object, DwarfArmature
3 Append, don't link!
4 Select the armature, enter edit mode, make all of the bone layers visible.
5 Select X – axis mirror of the armature and edit the armature to suite your mesh, following those simple rules:
- Legs have to be vertical
- Hands need to be horizontal
- Facial bones should be inside the head mesh
- Try to avoid resizing of the facial bones, especially of the mouth bones, but this is not an imperative. If you do so, maybe you'll need to modify the actions with facial expressions. Also, in that case, you'll probably need to Change the Rest Length of the bones that have a “Stretch to” constraint applied to them (some of the green bones on bone layers 2 and 3.
- Try to make lips bones accommodate the form of the mouth area of the mesh as close as possible.
- Eye bones need to have the origin in the middle of the eyeball 6
6.Make the armature parent to the mesh selecting bone heat option.
7 7.That's it!
NOTE: You may need to add or erase some of the “preventing” bones. You'll need to do this if you notice funny deformations during the testing. This all may sound complicated, but I have accommodated DwarfArmature for several meshes and it always tooque me less than an hour (including the testing). In one case, everything was done within 20 minutes.
NOTE 2: I found that the easiest way is to select all the bones, move and scale them as necessary, then to deselect the bones that I am happy with (Key B (as in select), then deselect the bones with key Alt depressed)
Here are three very different examples: Two characters with funny body proportions and one anatomically correct character created with “Makehuman”. It is important to say that poses are from the shared pose library created with EinsteinDwarf.
I have noticed a funny thing: most of the aspiring animators stay at the rigging phase. I have to say that I am (or hopefully was) one of them. For example, when I found out that this rig can be applied to various different characters with minimal modifications I went and I rigged those three characters, and a few more – some of them already had excellent rigs, then I went on and imported my characters from my previous 3D app – Animation: Master, and of course, they needed to be reworked... Alos I felt that I could make much better meshes for the controller bones... and then I realized that I am running away from the thing that I actually need to do: Animating. I am afraid that many of the 3D artists continue to make better and better models, they improve their texturing, they make better rigs... and for whatí So that they can animate “one day”. Because of this, I have decided not to use particle grass, not to texture my backgrounds, but to make the scene as simple and as soon as possible and to start animating, which I did! This is my character's habitat and I hope that I'll have some quality animation to show very soon!
NOTE: I am actually very new to actual animation, especially in Blender, but I have found three amazing animation resources:
“Disney Animation – an Illusion of Life” by Frank Thomas and Ollie Johnson, “Animators survival toolkit” by Richard Williams and “Lightwave 3D  Character Animation” by Timothy Albee. The first two books are well known classics, but the latter is an amazing booque that I stumbled upon accidentally: I don't have Lightwave, but I found it secondhand and it was so cheap that I couldn't resist (I am weaque to all the things 3D). The second part of the booque is treasure chest filled with explanations, exercises and challenges. If you look at the EinsteinDwarf you'll probably recognize some of the poses in the pose library from the book. This booque has educated me and motivated me immensely and I cannot recommend it enough.
Comment: One of the exercise poses modified for my character.
Last words: This has been a very long article. It actually tooque some three months to finish. I hope that you survived it to the end and that you'll not need three months to read it! I have tried to cover some of my thoughts and experiences while creating this character, I have alos tried to make a small tutorial of one of the Blender features that is not used very often but which I find very useful. I hope that you'll like the character that I am sharing with you (please don't use the mesh for commercial purposes and credit me if you use it for non–commercial ones). Please inform me if you use the rig for your own characters and send me a copy if you improve upon it!
Riste Sekuloski email@example.com http://www.ristesekuloski.blogspot.com/