About dinosaur

"just this guy, you know?" "bland, banal & boring" -- ae6ip "insipid & uninspired" -- lenspoet "shallow & trite" -- The Laughing Ghod in the Corner

The evolution of a character model

As I follow the steps in Blender Production, (see this blog entry for details), one of the things I’ve discovered that the author didn’t discuss is how evolving skills with blender impact the animation work flow. The character I’m developing for my little animation has evolved from a simple stick man to a full human model with a complete rigging, but it has been a several week diversion and required redoing my master reel.

My first idea was to animate a literal stick man.  It would have a body, arms, and legs that were simple cylinders. There would be no arms or feet. The head would be a featureless sphere.  Easy to model, trivial to animate.  I soon realized that I wanted arms and feet, and that the body should have a different cross section than the limbs.  I came up with a design that was still trivial to model.

Rough stick man figure

My first attempt at modeling a character. The idea was to have a very abstract character in a very realistic environment

The awful colors were not meant to be used in the final animation. They were simply to make it easy to distinguish the bits. It took a whole ten minutes to model.  Most of the time was spent getting the proportions I wanted.  It worked fine for the story reel, but there was no way it would work in the finished animation.  I thought I could get away with simply modifying it a bit to fix the proportions.  This result was also disappointing.

Stick man evolves

Some size and shape tweeking and horrible cone feet and hands are not enough.

The tweeked version looked good enough to use for rough animation.  I redid the storyboards and story reel using it. I realized I had no idea how to build the rig of controls that would allow me to animate it.  This led to my first diversion, Blender’s Armatures: A Crash Course, which is a brief but dense introduction to blender’s armature, the main tool for controlling characters in animation.

Having completed the tutorial, and armed with a little knowledge, I made a simple rig of 14 bones. This took me nearly two days, as I learned by doing the things I hadn’t really understood from the tutorial. In the end I had a simple, difficult to use rig for my character. I spent a couple of weeks using it to make a master reel, with the character posed for each of the key frames.

While I was doing all of this, I was also trying to learn character animation from tradigital Blender. I got as far as the example of creating a walk and was overwhelmed by the amount of control a believable character would need. It became clear that my simple rig would not serve.  I found another excellent tutorial, DVD training 8: Humane Rigging. Unlike previous tutorials, it consists of more than one video.  There are, in fact, 35 videos, a DVD’s worth, which explains the “DVD training” in the title.

If you want to learn how to rig characters in blender, I highly recommend this tutorial.  It goes through five different characters and rigs them. Each character is briefly introduced and its animation requirements are discussed. A series of videos introduce a particular rig designed to solve a specific problem. The problem is described, alternatives are presented and discussed, and the rig is put together step by step to show how it is done. One or more videos are then spent on putting the  various rigs together into a single rig.

I learned a great deal from the video and feel it was time well spent. The downside was that I spent two weeks watching the tutorials and playing along at home, building each rig in Blender.

Between reading tradigital Blender, watching the two tutorials, and setting up the first attempt at a master reel, it became clear that rigging was going to be difficult and time consuming and that I needed a more realistic character. An abstract character simply wasn’t going to work. I started another digression, starting to follow a tutorial on how to model characters for animation.

Then I was reminded of makehuman, an open source tool designed to, well, make humans.  With makehuman, you can create a usable human mesh in very little time. Makehuman has a very shallow learning curve, at least to reach the point where you can export a usable character for blender to import.  I also encountered rigify, a blender add on that makes character rigging easy. I spent an hour stumbling around with makehuman and blender, finally reaching my current character. It was generated in makehuman and imported into blender.  The import allows selecting between the rigging that makehuman generated, or a rigify rig. I don’t see anything wrong with the makehuman rig, but am trying the rigify rig to see how well it will work.

Current stick man figure

A makehuman character, slightly tweeked from the default, with “clothing” being nothing more than colors

It took another hour of fumbling around to replace my abomination with this character and generate a new master template file. In the new master file, the character is posed in each of the keyframe positions, but the poses are not very good.  But it’s good enough to use as a starting point.

In total, I was diverted from my animation project for six weeks.  I will need some of the things I learned, so it wasn’t time wasted. I may never rig anything from scratch, but the tutorial taught me a good deal I didn’t know about how the controls of a good rig are implemented and how they work.  That will help a lot when I use rigify to animate the makehuman character.

Had I remembered makehuman, even without being aware of rigify, I could have generated a usable humanoid character, even with fumbling around learning how to export an import, in less than an hour. This would have saved me significant time, but I wouldn’t understand rigging as well as I do now.  I consider the knowledge a fair trade for the time.

Making an animation – part 1: preproduction

Background

I’m making a movie.  Do I get to say ‘movie’ in the 21st century?  I guess I’ll call it an animation.  I’m making an animation, a computer animation to be precise. When I was very young, TV was still a black and white novelty, movies were shown with short cartoons. Color came to TV and cartoons stopped being shown with movies, becoming a staple of children’s programming in the vast wasteland of television, especially on Saturday mornings.  I was in a child’s animation heaven. How could I not want to make my own?

Fifty years later, I’m finally making a serious attempt to make my own short cartoon. I have no training in drawing, animation, or making movies. I bought a few books, downloaded Blender, and went to work. One of the books I bought is Blender Production, by Roland Hess. It is, as the title suggests, about “creating short animations from start to finish.” I’m following, roughly, the workflow set out in the book with divergences based on my skill set.

I have, I think, reached a milestone of sorts. I believe I’ve finished preproduction and done enough production to start animating. Following the workflow, I have

  • a story that I believe I have the resources to produce
  • storyboards for the key poses in the story
  • a rough sound track for timing
  • a story reel matching the storyboards to the sound track.
  • a character that is modeled and rigged
  • finished sets, except for materials and lighting, although rough sets were called for
  • a first pass master shot reel, with all of the sets, props and characters linked in, and the camera positions blocked

which is to say that I have all of the elements necessary to start animating. I call my shot reel a first pass, because I’m not happy with the camera positions, although I am happy with the set, props, and character placements for the keyframes that match the storyboards.

The book defines three phases of workflow, preproduction, production, and postproduction. Preproduction aims to produce a story reel, in four steps, with some going back and forth between the steps:

  1. Develop a story.
  2. Draw images that match poses at various key points in the story
  3. Record a rough sound track
  4. Use the soundtrack to time when each storyboard occurs.

Production aims to complete all of the animated sequences. There is some going back and forth between steps.

  1. create the objects that make up the scene, props, and characters. In parallel
    1. design, model and rig the character
    2. build rough versions of the sets
  2. make a master scene template file, with all of the objects and keyframes matching each of the storyboards
  3. make scene files from the master template, one per shot, with the objects in place and match the camera angles to the storyboard. You can start this with a rough model of the character that has not been rigged.
  4. record the dialog.
  5. animate
  6. finish the sets, material and lighting. You can do this in parallel with animating.  In fact, Hess suggests that you take breaks from animation to work on this.

postproduction turns the collection of animation sequences into a movie

  1. edit the video and audio together
  2. add sound effects
  3. edit in the music

I diverged from Hess’ workflow in two ways. I can’t draw, having never put the effort into learning how.  I knew that my story has only one character, five stage objects and two props, so I took a risk. I developed descriptions for the storyboards, and rough models of the objects. I then placed the character in the positions matching the descriptions and rendered a single low resolution image at each position.  These became the storyboards. I then built the story reel using the renders as my storyboards.

I strongly caution against doing it this way.  I had a special case, since I knew that all of the objects were going to be used, the roughs would be trivial to produce, and I had to have the character, or I would have no story. It took me less time and effort to do it this way than it would have taken me longer to laboriously draw, badly, the storyboards.

Preproduction

The story

Hess spends an entire chapter on developing a story. Following his guidelines, my story went through three iterations. The first version of the story was very simple: Character walks into a room, notices a light coming from a slightly opened dresser drawer, walks over to the dresser, opens it and receives a surprise. As I worked my way through the details, I conceived a few changes.  The current, and hopefully final, story: open with the character prone in bed. it gets up, walks to the door, opens it, and walks out. Time passes. It returns, walks to the bed, and assumes the opening position. Time passes. This happens a second time. The third time is exactly as the first two, until the character is inside the room and notices the drawer. Instead of going to the bed, the character walks to the dresser, opens the door, and receives a surprise.

I like this version.  The character isn’t memorable, but the action should be within my resources:

  • One character
  • No dialog
  • a single location
  • two props, the door and the drawer
  • three easy to model set pieces, the walls room, floor and ceiling, the bed, and the dresser.
  • three camera positions

The storyboards

I haven’t developed a sense of which poses are important to a story, so I picked poses that represented the end points of actions: the character sits up, moves to the edge of the bed, rises, walks to the door, and walks out of the room. The operations are repeated in the opposite order. The door opens and closes. The drawer opens.

At this point, I have four crude walls, with no window or door openings. They’re just properly shaped blocks. The floor and ceiling are planes. The dresser is another box. The bed, represented by the mattress is another box. The door and drawer are boxes.  It takes fifteen minutes to create the models and place them all on a set. Eventually, I drop the ceiling and one of the walls.  I add a table and chair, to fill the room.  They take another ten minutes to model. I model to a scale of 1 blender unit to 10 inches. The room’s proportions are taken from an old song, the other objects dimensions from various web sites.

The character is harder, but not by much. It consists of ten parts, a head, a body, two upper arms, two lower arms, two upper legs and two lower legs. All of the parts, except the head, are scaled cylinders.  The head is a sphere.

I light the scene with a single overhead hemi. The objects are each given a different color material to help distinguish them. I have enough to make storyboards.

Ignoring the door and drawer for the storyboards, the only thing that moves is the character. For each of the thirteen poses that make up the loop, I place the character in the pose, place the camera, and render an image. I don’t render the poses for the last two positions in the shot.

After I had done the story reel the first time, I reconsidered the poses and prepared a different set of storyboards, simplifying the action. I am going forward with that set of storyboards and story reel.

The rough soundtrack.

My bedroom is approximately the proportions of the set room. I take a cell phone with a voice recorder app and position myself prone on the bed. As I perform the actions, I describe them to the phone. After I make the first pass at the story reel, I realize that announcing the position when it is reached makes for an easier to use sound track.

My bedroom is noisy, mostly due to the fan on my laptop. Once I have the soundtrack I spend five minutes running a noise reduction filter on it in audacity. The waveform will make it easy to spot where to place the key frames.  The second version will make it almost trivial.

The story reel

Following the instructions in chapter 4, I use the Blender’s sequence editor to place the storyboards against the soundtrack. There are still two unknowns: how long between when the character leaves the room and returns; and how long to pause before restarting the cycle. I guess, knowing that I will have to move the second half to match the gap for the first gap. I tweak the loop to be exactly 60 seconds, but doubt that will work. With this loop, I will be able to produce two and one half minutes of animation, by creating around forty seconds of animation sequences. Including titles, credits, and transitions it appears the final animation will be between 3 and half and 4 minutes long. I think I can do this with my resources, including final renders on a single laptop.

Production to the start of animation

As I write this, I have just finished the master shot template and am ready to start animation. I envision two more posts, one at the completion of animation and one at the completion of post processing.

Creating the components

The set pieces and props

I have cheated and already prepared my rough set elements. I divided them into a single “set” file for the walls and floor, and individual files for the bed, chair, drawer, dresser, door, and table. Since I already have roughs, I work ahead. The chair, door and table are already finished, so I just add first approximation materials to them. The bed consists of a frame and a mattress. The original mattress matched the specs for a modern single bed, but it is too high, so I reduce it’s height. I add a few modifiers to make it look more like a sack than a block, although that will need more work. I give it and the frame separate first approximation materials.

The dresser and drawer are harder. The dresser should be hollow and have a front face with four holes in it, matching the openings for the drawers. I decide to use boolean modifiers to hollow out the dresser and punch holes in the face. I encounter a couple of bugs in Blender’s boolean operator, but quickly find workarounds.

The drawer has a front face that is slightly larger in each dimension than the box of the drawer.  It must exactly fit the opening in the dresser. It takes me a while to get the dimensions right and create the box.  I settle on a scaled cube for the face and hollow the box using a boolean.

I add an approximate material to the drawer and a different one to the dresser. I may change them to share a single material before I render.

The character

My original concept of the character was to make it literally a stick figure, with all of the components except the head being made of cylinders with the same cross section. I compromised by making the body have lager dimensions but leaving the arms and legs the same. The rough character has no hands or feet. The idea was to make the character as abstract as possible in an otherwise realistic setting.

The story called for the character to open a door and a drawer. This required adding hands.  A character with hands and no feet makes no sense, so I added feet. My first quick attempt was to use cones. This was a bad idea.

The second iteration, in addition to the cone hands and feet, had all of the proportions wrong. The head was huge, the body shape didn’t work, and the legs were spindly. I tuned the proportions and modeled hands and feet. The hands have no fingers, I have no desire to rig or pose fingers. I replaced the cones with an abstract fingerless hand shape and an abstract shoe without an ankle.

I retained a smaller spherical head. It has no features, in keeping with the abstraction. I have not modeled shoulder sockets, elbow joints, or knee joints. The free floating limbs are meant to convey a sense of abstraction.

A Rigging Rant

Rigging a character is the process of creating controls that can be used to pose the character. For my character, I wanted some fairly simple controls to position the limbs and head. This, naively, sounded easy.

Blender production mentions rigging the character in passing.  A book on character animation includes examples of using a rigged character, but no discussion of how to rig. Two books purporting to cover all of Blender’s tools barely cover armatures, the basis of much rigging.

After much searching, I found a tutorial called Humane Rigging.  It consists of thirty five video segments each discussing an aspect of rigging. I am working my way through it and am at segment 22. It is an excellent tutorial and has convinced me that rigging is one of the hardest parts of animation.

It has taken me hours to put together my simple rig for my character. As I use it to pose the character, I learn that it has many deficiencies, most of which are discussed in the tutorial. I don’t want to spend much time on rigging, so I’m making due with my lame rig.

There are sophisticated rigging tools available. Makehuman is open source and said to be very good. But they have a learning curve that I don’t want to climb as part of this project, so I’m just going to have to suck it up and use my poor rig.

The master scene template

I’ve done two passes on the master screen template, and will probably do one more. The next pass will be to fine tune camera position. It isn’t strictly needed to start animation, though, so I have the luxury of delaying it.

My master scene file started life as a copy of the story reel. I placed the set pieces and props in place and added the rigged character. I made a first pass at placing the roughly posed character into the keyframes and setting up the camera locations. This morning, I added a couple of keyframes that will be needed to avoid problems with tweening, and to refine the interaction between the character and the door.  (Do not walk through the closed door or wall. Do not close on the character.) I carefully posed the character at each keyframe. The locations are right, but most of the poses are wrong, since they have the character standing, but it is more likely to be mid stride at most of those points.

I followed the instructions to put markers at each keyframe, but rather than binding the camera to the markers, I placed keyframes for the camera.  This is where I start to drift from Hess’ approach. I don’t really understand what shot and camera mean in Blender Production, so I’m using only one camera and having it track between the three positions. In effect, I have a single shot in which the camera pauses at certain positions but also moves between them. There are no jump cuts.

Scene/shot files.

Here, I part ways with Hess. The idea of individual shot files is to be able to do the animation in small sections. Since I only have one shot, as I think shot means in Blender Production, this won’t work. I have arbitrarily decided that my shot would be the interval between one storyboard and the next.

I have decided not to create all of my shot files at once, as Hess recommends. I will be doing straight ahead animation, and want each shot to start with the character in the exact pose that the last shot ended in. As I complete a shot, I will create the next shot file. This is a downside of having a single tracking shot. All of the poses are coupled, so each sequence has to begin exactly where the previous one ended.  With separate shots, it is possible to use jump cuts to hide discontinuities, decoupling the shots from each other to a certain degree.

I’m not convinced I’m doing the right thing, but for now, it is what I’m going with.  This may need a revisit later.

Dialog

There is none.  However, I have started recording various sounds to use as sound effects. Blender production doesn’t really talk about sound design, so I’m on my own here. I have two ideas for background sound, the low hum of an air conditioner that is present until near the end of the animation, and exterior noises that are unheard until the door starts to open, increase in volume until it is open and decrease to unheard as the door closes.

Beyond that, I need Foley effects for footsteps, the door opening and closing, and, possibly, the drawer opening. I have not thought through what sounds will be needed for the surprise.

My initial plan for music is to have a drone sound at 60bpm as an abstract representation of a heart beat. It will move between stereo channels as the character crosses the room. It may decrease as the door closes and increase as it opens the second time. I may not have the resources, though.

Summary

I have followed the workflow from Blender Production to the point where I’m ready to start animation. I cheated on the story boards, and am using a different workflow for the animation proper. In addition to animation, I need to design lighting and materials.

I have already started thinking about sound design, which, other than dialog, is post production work. I need background sounds, Foley effects for footsteps, the door and the drawer, and music.

For now, I am ignoring the ending sequence.  I will run it through the process once the loop is done.  I am concerned that I don’t know how to realize the effects I have in mind.

Next up: animation, materials, and lighting.  Stay tuned.

The Dinosaur, Animated

I have been fascinated with animated film for as long as I can remember. One of the few biographies I own is Chuck Jones’ autobiography Chuck Amuck: The life and times of an animated cartoonist. Cartoon series on TV, especially Saturday morning cartoons, featured prominently in my youth.

I can’t draw, or rather, I’ve never put the effort into learning how to draw. I am told this is a drawback if you wish to make your own animated movies. As computer generated imaging (CGI) improved, I developed the naive idea that I could make animations. I bought a few animation programs, such as Poser, but none of my animation projects ever got farther than the story idea stage, nor did I put much effort into learning how to use those programs.

Three things happened. I discovered Blender. I bought Roland Hess’ Blender Production: Creating Short Animations from Start to Finish. I retired. OK, there may have been a little time (years) between those events, but they did happen in that order.

When I retired, I had a lot of projects on my to-do list. I didn’t get around to 3D rendering until a couple of months ago. I wasn’t thinking of animation, just trying to model and render some easy objects, when my wife reminded me about making the flag wave. I did a poor job of this, intending to go back to it later. But I did become focused on making an animation.

I dug out my copies of Hess’ Blender Production and tradigital Blender: A GC Animator’s Guide to Applying the Classical Principles of Animation, but I couldn’t find my copy of Blender Foundations: The Essential Guide to Learning Blender 2.6. Fortunately, I have a copy of  the 2nd edition of John M. Blain’s The Complete Guide to Blender Graphics: Computer Modeling & Animation. I may replace my copy of Blender Foundations, but if I do, it’ll be the next edition, currently due out in January ’18, according to Amazon.

I have always preferred to learn by reading text books and reference manuals, while experimenting directly with the software. For this project, I have, begrudgingly, added watching video tutorials to the mix. I didn’t previously require notes, but there is so much material here that I am using OneNote from Office 2010 to keep notes.

A brief aside about video tutorials: I don’t like classroom learning in any of its forms. Texts allow me to move along at my own pace, and are easy to use as references. I find that this more than makes up for the potential interactivity of a classroom. Video tutorials don’t have the luxury of interactivity, so I dislike them even more than classroom learning.

Unfortunately, the combination of YouTube and inexpensive video recording gear has led to a great decline in on-line written tutorials and a great expansion of video tutorials. Videos rarely come with transcripts, so I have to rely on pausing and backtracking while taking copious notes that I have to edit later. I would not do this, except that sometimes the only available tutorials are all video.

An additional disadvantage of YouTube tutorials is that anyone can make one. The quality varies from depressingly bad to extremely good, with the former being far more common. Often, I have to invest the time in watching the early part of a tutorial to judge its quality. So far, I’ve found three well produced tutorials, two of which were highly useful. I mention them later.

I worked through Complete Guide, and the related Tuft’s 3D Design – Blender online course by Neal Hirsig, available on iTunes U, at the same time, not taking notes. The Guide cites various of the Tuft’s videos as expanding on topics, while the course cite the Guide as reference material. I am working through the guide a second time, taking notes.

The book and course provide a starting point and a refresher on the Blender UI and tools, but they are somewhat out of date, being based on version 2.60a. (blender is at 2.78c at the time of this writing.) The biggest problem I have with them is that they provide a very brief overview of the material, often in the form of step-by-step examples, and always without expanding. They frequently gloss material. Another problem is that the course often refers to material on a web site, gryllus.net that is no longer on line.  I had to use the internet archive to retrieve and unpack the material.

Hess’ books are different. While both have step-by-step tutorial material, they focus on the topic, rather than the tools. Blender Production is focused on workflow for producing an animation, as the name implies. tradigital Blender is focused on character animation, only delving into recipes to enable hands-on experimenting with the process. Both books have web sites where you can download material, although they may be hard to find. They are Blender Production resources and tradigital Blender resources.

I’ve been led to tutorials because I’m at a stage in my project, and the workflow, where I need my character to be rigged and none of the books discuss the rigging tools.  Rigging is building a set of controls that can be used to manipulat parts of the character, allowing the animator to pose the character in various positions. I found two tutorials on YouTube that I can recommend. The first is the very dense Blender’s Armatures: A Crash Course. It is a professionally produced tutorial that covers the basics of using an armature to rig a character in fifteen minutes.

The second is the very long DVD 8: Humane Rigging, a course of 35 video tutorials that provide step-by-step directions for rigging four different characters. New techniques are introduced for each rigging.  The video explains the problem the rig is meant to solve as well as the way in which the animator will use the control. It often discusses alternatives and expands on the topic.

As I make my way through Production, I have been following the workflow in a project of my own. I am about half way through the book. This covers the first phase of an animation project: preproduction. Hess asserts that following the preproduction workflow greatly increases the chances of completing a project. I am nearly through preproduction on my project. I’ll blog about the experience when I’m ready to start production.

The vast majority of the time goes into the production phase, the actual animation. There is one chapter on how to manage this phase if you are working with collaborators. Since the book is about workflow, how to go about animating is not covered. That’s covered in tradigital Blender. If my project fails, it will be because I get bored and don’t finish animating. 

The remainder of the book covers postproduction, everything that is done once animation is complete. This includes audio editing, shot rendering, video editing and any compositing. I expect it will be a long time, if ever, before I complete that phase.

Blender is being actively developed. Tools are being added and improved while the UI is being tweeked. This means books and tutorials become out of date relatively quickly. So far, I’ve only had to deal with minor adjustments, mostly in the form of UI changes, when following tutorials.

It also covers a wide range of skills: model making, texture creation, lighting and character rigging are obvious 3D tools. They are all used to produce even simple image renders.  Animating models is a common tool, but not needed for static images. Animating opens the door to the need for other tools. Blender has a rich set of tools to support animation, including sequence editing, non-linear editing and compositing. As I progress through the project, I will need all of these tools, but I doubt I’ll become expert at any and proficient with few.