Software Development and Animation?

If you have been keeping up with the blog, you know that I’ve been out of the software development loop for a bit. The interesting thing about being out of the loop is that it can give you a bit more of an objective perspective when looking at the ‘new’ things. It seems not much has changed – at least not dramatically. The one thing that does seem to stand out a bit has to do with object oriented analysis and design. Object oriented analysis and design is a method or process that is used for software development (often using an object oriented language, like C++ or SmallTalk or… fill in this space with your favorite object oriented language here).

Back when I did this professionally, there were a couple of different ways to go about doing ‘object oriented’ analysis and design (OOA/D). After 10 years or so, it looks like there are still a number of ways, but one of the more popular and effective methods is called UP (Unified Process). A couple of the ‘old boys’ put together their thinking caps and agreed to agree on a process for object oriented analysis and design.

I know, you are asking,”‘What on earth does this have to do with animation?” Please bear with me just for a little bit longer. Two things you need to understand to make the link.

1) The first thing to understand is the old way that software development used to be done (in the software development world 10 to 20 years is equivalent to eons of regular time). At the risk of oversimplification, in the past, the common method used to figure out what the system was supposed to do, was to do a requirement analysis, then design the system and then implement it. Each was a separate step and the steps had to be completed before you could go on to the next step (this is also commonly called the ‘waterfall’ method). Analyze, design and then build. Research now says this is bad. Research says that at the end of the project about 1/2 of the requirements originally defined are not what the client actually wanted. That means a pretty useless system. That doesn’t mean that thinking, analyzing and design are bad. What is bad is how much of each is done at what stage… which leads to…

2) The second thing to understand is that this has been replaced by a more iterative method. The method goes like this: Figure out a few of the ‘core’ requirements, analyze a few of those in detail (a subset of a subset), then design and immediately implement those few core requirements. The next step is to take what you implemented, go back to the client, and take their feedback to modify or add any requirements and repeat the loop. Progressively defining more requirements and ‘building up’ the system (i.e. program) incrementally. This way the client gets what they asked for, give feedback on what they are seeing developed, they see something right away, and the developer has the satisfaction of seeing something working (instead of being bogged down in requirements analysis for a year). Over time the requirements get massaged and they eventually stabilize, over time you get the completed software package built up in iterative steps. Get the picture?

Ok, so now for the setup to the link to animation. There are fundamentally three ways of making animation. 1) Pose to Pose, 2) Straight Ahead and 3) a combination of 1 and 2. Richard Williams (of Roger Rabbit fame and whose Animation Master Class I had the privilige of attending!) advocates #3. Rightly so. You nail down your poses to see where you are heading with the animation, then you go ’straight ahead’ between the poses. Getting the best of both worlds – structure and direction from method #1 and the freedom and looseness of method #2. Most of us have used this method with varying degrees of success.

The specifics of a general animation workflow go something like this: 1) First we analyze the shot: what is the character doing, thinking, feeling? Get some reference footage. 2) Then we plan the animation: Act it out. Draw some thumbnails. Do some initial blocking by setting up our key story telling poses to see how it’s all working out. 3) Finish the shot: add breakdowns, tweak overlapping motion, add secondary motion etc. It’s a pretty good process.

Now work with me here… think about the software devlopment process and its similarity to the animation process. Software development: 1) Analysis, 2) Design and 3) Implementation. Now think about the animation process 1) Analysis, 2) Planning and 3) Implementation. It’s essentially the same process. Analyze, design, and implement. Interesting, huh? Well, it is for me!!

Anyway, up to this point I’ve been thinking about the animation process in the same way as the ‘old’ method of software development. The waterfall method. Figure out your shot from the very beginning. Analyze it till you are blue in the face. Then block the shot making sure you have your story telling poses. Then finally finish off the shot after it has been approved by the director.

Now, I wonder, can we as animators learn from the software development world? They discovered that the waterfall method ended up with something the client didn’t really like. Can we help satisfy our director’s vision by using a more ‘iterative’ approach? I think we already do – but maybe we need to be more aware of it.

Why is there a method or process called ‘layout’ in animation? This is where camera positions, general character positions and character movement (i.e. positions of the body of the character, not articulation) are defined based on the storyboard. It’s also called an ‘animatic’. That is the equivalent to a subset of the ‘core’ requirements being implemented right away. It’s the result of a partial requirements analysis, design and implementation. We see the ‘animation’ taking place already at the ‘layout’ stage. That’s just like the Unified Process!

Why is there a process called ‘blocking’ in animation? This is where we put our story telling poses. We block the ‘rough’ animation with these poses to show the director where we are heading. Again, more requirements are being defined and analyzed, more is designed and then implemented – right away. How many times have you gone back to fix the blocking, because after showing it to the director they said it’s not what they wanted? That’s the Unified Process in action.

We actually follow the iterative process more than we may be aware of… What would happen to our animations if we followed the software development methodology more closely? Maybe a change in mindset is enough to make an improvement.

I used to think that if I figured out exactly what I wanted at the beginning of my shot then I should stick to it and never deviate. After all, I put all that time into the research. What about all the blocking? I spent so long setting up each pose so that it would read correctly. Why would I throw that perfectly good pose away? Maybe that’s a bad way of thinking about it. We should be flexible to see that some things are not as good as we originally thought and planned, that a certain pose really doesn’t fit, that that part of the shot is not what the director really wanted. So we iterate. Go back, refine, and move ahead implementing the changes. If nothing else, this mindset will help us to be a little more flexible and less prone to freaking out when changes come our way. Maybe.

Is there something else we can learn from the software development process? What else can we learn from other disciplines that would help to make our work excel? Ah well, back to animating!

Mirror Mask

Ok, in the spirit of catching up here is another post for today.

So there I was the other night, cruising the movie aisles and there, sitting all by itself, was this little DVD case with an interesting image on the front – a girl sitting looking off into the distance with, well, with fish flying past her head. Catchy image, wouldn’t you say? So I picked up this little loner and checked the back. Hmm… Jim Henson, this may be interesting – but am I in the mood for stuffed critters? I often am, you see as an animator watching how the puppeteers do so much with so little, well suffice to say it’s a great learning experience. But this one said it had lots of CG. Jim Henson and CG? Interesting. Plus CG is cool, right? Well, sometimes…

Anyway, without giving the story away, here is what the Internet Movie Database says about the film: In a fantasyland of opposing kingdoms, a 15-year old girl must find the fabled MIRRORMASK in order to save the kingdom and get home. It was released in 2005, but I never really heard anything about it… so off I went, back home for some movie watching.

After watching this movie I wasn’t sure what to think. Here are some words that came to mind: weird, fantastical, strange, cool, huh?, neato, and did I say ‘weird’? Usually after watching a movie I can tell whether or not I liked it, but this was one of those few movies which I had to think about and I still don’t know if I liked it. Weird huh? I think I liked it… but it sure was weird (but a good kind of weird – is there such a thing?).

Lunar Eclipse

It’s been a week and I haven’t posted anything… it’s really been a week? Wow. I’ve been knee deep in projects and that is good. Some pretty cool stuff I get to work on, but unfortunately I can’t talk about – at least not yet.

So you have to endure my talking about what I’m doing in my spare time (yes, I do have a few minutes here and there). I’ve been trying to wrap my head around what I’ve missed in the software development world in the last 10 years. Mainly because I’m considering writing a game and that involves art and programing. Not a whole lot has changed – but now I remember why I took the artistic detour 10 years ago. Anyway, it’s to the point that it is like a battle between the Arts and the Sciences in my head. I’m trying to decide which I prefer to participate in more… I feel like a yo-yo. One minute I love one, and hate the other. The next minute I flip flop. The side that wins will probably determine what I will do with the rest of my spare time for a number of years. Decisions, decisions… You may not think that a minute or two here and there make a difference, but consider this: say you have 1 hour a day to spend on something, 1 hour times 365 days a year equals about two weeks of time in a year. Take that number and multiply it by, say, 20 years. That’s 40 weeks, almost a year! Now imagine you had that year to spend on something – what will it be? (edit: that’s full 24 hour days… if you change that to 8 hour days, well… now you have two years worth (120 weeks) – that’s a lot of weeks!)

Anyway, on a side note… here is a composite image I created last year when the earth cast a shadow on our moon. Boy I miss going out with my camera and telescope (it’s been too busy, cold and cloudy)…. too many interests and so little time. I think I’m starting to envy Methuselah’s life span!

It’s Here!

Last year I ordered a book called ‘Creating Characters with Personality’ by Tom Bancroft. It was one of those pre-publication orders so I had no idea when it would arrive. Well, lo and behold, here it is! I just cracked it open and it looks to be full of little goodies. It even has an introduction by Glen Keane! I’ll have to sneak a peek between working on projects.

And Another…

It’s been rather crazy around here… not a wonder my hair has disappeared. But hey! It’s been gone for over 20 years! For some reason my kids keep telling me that they won’t know when I go senile. I wonder what they mean by that? Hmm… Anyway, here is NPC#3. I think he will be tricky to get into the game, but maybe not. I might have to fight with the technical director (that would be me) or the software team (that would also be me) to get him in there, but gosh durn it, the artists (that would be me) have to win this time! Who are those men in white at my front door?

Related Links