3D Animation : Transformers Fanaticon Contest Project Summary Report

|
Work flow:
Spend time designing flow chart
The first thing I should have done is
spent more time designing a flow chart for each step of this
project. I overlooked the usefulness and the speed increase, I would
have been more organized and been able to follow the “road
map” to getting my piece completed, not only on time, but
further along and possibly done completely.
Create time line
This kind of goes with point 1. I
should have spent some time deciding how much time I was going to
spend on each step of this project. In this case it would've been a
little difficult because of my limited knowledge of Blender, next
time I should be able to be more prepared.
Software:
Know your software
This is what I was talking about under
Create Time Line. I didn't know the software so well, if I had known
it better I wouldn't have spent so much time trying to figure out
what to do at each problem that arose. I also wouldn't have had so
many problems because I could have built my flow chart and time line
around the tools I knew I had in Blender.
Blender is more advanced than I thought it was
One of my goals
was to learn Blender and what it was capable of. I have done this in
part, I still have much to learn. I was able to find work arounds for
every problem I ran into, which means it is not a bad program. It is
much better than a base program, it has a great compositor, which I
have heard will be getting better in the next couple of updates (2.44
and 2.5). It seems to be quite functional in modeling, I did not run
into any major problems at this point. As far as texturing and
materials go, I did not get the chance to learn the nodes editor,
this will be next on the list. And finally, the animator is pretty
good, this also was not an area of concern. Rigging took a bit of
work, I think this is part of learning Blender and what it is capable
of and how to do it, we'll see what happens in the future.
Blender could use an interface for local transformation changes to child objects, I should be able to wright this
One of the things I found with Blender
that I could have used is a way to edit and copy the transformations
of a child object of one parent to the child object of another
parent object and see the local values of the child object relative
to the parent. This is something Maya has and has been useful to me
in the past. I'll have to do web research to see if Blender can do
it, if not, I'll write one my-self, probably a Python script.
Blender should have some way to change the transformation axis
Something else Blender could use is
the ability to change the transformation axis, in other words, the
point in space that the object rotates, translates and scales from.
This is something I found in 3D Studio Max and I'm sure Maya has it,
I just can't remember how. It would be useful to be able to change
this in the middle of the animation. One work around is the ability
to parent an object to an empty. An empty has all of the
characteristics of an object but no mesh, just a simple and
non-renderable dot in space. As long as you know where you are going
to want it, you can create it, place it in space then parent the
object to it; but this only works if you know where you want to put
it. Once you've parented, you are stuck with that “axis”
there for the rest of the animation.
Hardware:
Hardware worked but barely
I could have used a couple of things
here, more ram and a better video card. I ran into some problems
with Blender running my hard drive ragged, it would crunch then
crash. I currently have 1 gig of ram and will be upgrading to 2
gig's of ram for the next big project. The other thing I could have
used is a better video card, currently I have a 128 mb NVidia card,
not a bad card by any means but not good enough for what I'm wanting
to do. This scene probably had a few hundred thousand poly's,
nothing to really write home about, but when I get done rebuilding
it I will have much more, maybe in the millions. I am hoping to
completely redo this whole animation, re-film the background plates,
rebuild the train and re-composite the animation into the film. I'll
also reconstruct and animate all of the text animation in Blender,
my goal is to completely reconstruct this whole commercial in
Blender. We'll have to see if Blender is up to the task.
Will upgrade if I continue in contests and challenges
At this point I am
not sure what I want to do, I am still researching the problem. If I
find out that the machine is slow during construction of a scene, in
other words when I rotate or move objects in the scene, the refresh
rate is slow, then I will need to get a better video card. If the
rendering speed is the problem, I might try to set-up a beowulf
cluster, that's a cluster of computers on a network that act like one
giant machine with as many processors as computers. By doing this, I
will have the ability to render a single frame or many frames using
all of the processors. If I just had a regular render farm, I
wouldn't be able to render a single frame on all of the processors,
just animations with each frame going to one processor. This is
something I will have to see in the future.
Goals:
Learn Blender better
One of my goals with this project was
to learn Blender better and see what it could and could not do. What
I found was that it's a pretty powerful program...
As for
modeling, I like sub-D objects. I used this method for the first
time in Maya and fell in love with it. It is easy to use and
flexible with the use of creases and using face extrude on the
original poly mesh. One thing I have found that I don't like about
sub-D is you have to know exactly what you are doing and how it will
effect future elements in the model. What I mean is, you can't just
cut and extrude anywhere you want just because it works for the
current modeling situation; you have to be able to look into the
future and see how the next step will effect each future step. It's
sort of like playing pool. Expert pool players are always thinking
about where they want the ball to end up at the end of a hit of the
cue ball and how that will effect the next few steps of the game,
they are always trying to find the best sequence of moves to get all
of the balls in the pockets. This is what you have to do when you
use sub-D. This is mostly an experience thing, you just have to have
enough experience to do it right. One thing I don't like about sub-D
in Blender is you don't end up rendering a smooth surface, it's
almost smooth at the highest tessellation level, but it's not as
smooth as NURBS patches, which Blender doesn't have...yet. I am
hoping in the future Blender will allow you to set the tessellations
of the rendered object to infinite or setting each poly to the size
of a pixel.
As for texturing, mine was simple. I built the
texture in Photoshop and projected it onto the mesh with the UV
Projection modifier. For the next project and for the continuation
of this project I would like to see what the material nodes can
really do by using them to texture the train and each element. In
the final render I did forget to apply the UV Project modifier to
each object in the body of the train; this means, that as the object
moves, it moves through the texture, the texture is not locked down
on the object. Overall, it was very easy.
Lighting was simple
as well. I used 4 sun lights to light the train, this gave me the
ability to light it effectively from all angles that the camera
could see. In the past, I have used a sphere of area lights, the
results are incredible, but the time per frame was less than great
with each light having ray-traced soft shadows and the difference in
processing time of a sun light and an area light. I set each light
to a color that corresponded to where the light was coming from. If
the light was from the sky, then it was slightly bluish; if it was
reflected from the ground then it was a yellow-green color tint,
this was from the color of the grass around the train. By doing this
it helps during the final composite to get the color right compared
to the background plate.
Animating was more of a challenge. I
had to learn a few things about Blender and it's animation system.
One thing I learned is when you duplicate an object, if that object
has an IPO curve or has been animated, if you want to change that
duplicates animation you have to give it another IPO curve. This is
because when Blender duplicates an object that has been animated it
does not duplicate the IPO curve to another curve, it links the new
object to the duplicated objects animation curve. I found that when
I went to make changes to the duplicates the original objects would
change their animation path as well; so the first thing you do is
add a new IPO curve. The nice thing is when you tell Blender to add
a new IPO curve, Blender automatically copies all of the IPO's
curves to the new IPO; in other words, you get a copy of the objects
animation to put onto another object. This is one area where local
transform values, local being compared to the parent object, should
be accessible to the user to change; Blender only gives users access
to global values, this is something I stated above. I also learned
that when you want to change the center of an object transformation
you have to add an empty, position it in the area you want the new
center to be then parent the object to the new empty, you can then
animate the empty. This seems somewhat cumbersome to me, both Maya
and 3D Studio Max give the user the ability to change the center to
anywhere you want on the fly, I think you can even animate it. This
would be a nice addition to Blender in the 2.5 or even 2.44 version,
if it can't do it, I'll have to find out. If it can't, I can write a
script for it.
Associated with animation, but not animation
at all is rigging. OIY! This was a real challenge. I have only
rigged one other character, that was in Maya, so this tells me that
I either need more experience in rigging or I am not a rigger, so
that technical field could be out. To really comment on this would
be somewhat foolish, like I said, I have only rigged 2 characters in
my entire life. I know you need to have some quit time and probably
plenty of it to really think about how to rig a character properly.
You need to know what the character will be doing, how it will be
moving and what extras you will need to add to the rig like muscle
or breathing apparatuses. There is a lot of planning and trial and
error that is needed to rig it properly, in most cases you will have
to rig the character multiple times to get the effect you are
wanting. In any case I would not start even working in a 3D app
until I had looked through the movie script and done a few
drawings.
Compositing is the final step in any visual effect
that is being added to a live action plate. I have done a little
work in this area, mostly in image manipulation, erasing things out
of a shot or re-coloring a shot to look better than what the
photographer gave me and a couple of times with a 3D element in the
shot. You can see those in my portfolio page under Compositing &
Image Manipulation and one under 3D Animation. This is the first
real shot I have done for a major project and with Blender.
Blender's compositor is a pretty good system, and once again, I hear
it will be getting better with the 2.5 release, its not perfect but
it's a great start. I did some color correction on the background
plate, both the photo and video footage; as well as, the animated
train itself, you can see an image of the compositing nodes I used
if you go to my Daily Updates page. A couple of nodes I could use
are levels or histogram, brightness/contrast and an animated noise
pattern. You use the noise pattern to match the noise in the
background plate and you use the brightness/contrast with the levels
to color correct the 3D element to get it to look like it's part of
the original footage. One thing I remember from 3D animation class
is video and film footage is very desaturated and blurry so you need
to do both to your 3D element to get it to match. One other tool I
would like to have is a masking node, I think they will be adding
this in the next version, or at least give people the ability to
write their own. This would allow me to color correct just part of
the image, like the sky or just the trees in the background. I know
one exists because I have seen a screen shot of how it works, but it
is not in the current version of Blender. This is a fairly simple
compositing project, I could have taken it to a greater extreme if I
had more time, but time ran out. On the next version I want to take
the time to do it right and make it look like it's in the shot just
like the big boys do at ILM, Digital Domain, Weta Digital, etc.,
etc., etc.
Get involved in the contests and communities on-line for self promotion
This is an area I have not been very
involved with at all. I have done a very poor job in the past of
promoting myself, this is where the contests and challenges will
help me, it can show the world what I can do and will hopefully give
me a great job in the end where I can grow and become an extremely
valuable part of the company.
I can also see where I need
work. What I mean is, if I am always coming in 50th in a
contest that has 100 contestants then I need to do some research to
find out what made the winner's so much better and mine so much
worse. If it's in 3D animation, maybe I need to add more detail,
make the animation better or make the texture look better. If it is
compositing, maybe I need to get some education on how to composite
and what tools people use to do the compositing, then see if I can
do it.
I also get the experience with the 3D animation and
compositing programs. One thing I have learned with this project is
if I had more experience with Blender I would have had an easier
time with the project. It goes back to knowing your tools. A
construction worker doesn't go onto a site and learn how to use the
tools to build a house, this would take him twice as long and the
house would have plenty of mistakes, it would be a wreck, so we as
animators and compositors need to know our tools as well. This would
have allowed me to create an accurate flow chart and time line,
which would have allowed me to get the job done faster because I
know what I'm doing each day when I start and what I need to have
ready for the next day.
This also gives me more examples for
my website. My website shows my experience level by showing the work
I have done. It also shows how fast I am growing and how much I am
learning or if I am not growing and not learning. Recruiters look at
this and can tell if you have the qualities they are looking for. I
my case I need some work on all fronts of 3D animation and
compositing and hopefully my website will show my growth in the near
future as I work on different projects.
Project Extension:
Reasons for the extension
First of all, it is not a competed
project. There are a number of things I need to fix and add, these
will be discussed in detail in the next section. This project was
also completed in a very short period of time. Now I know what you
are thinking, visual effect houses can finalize as many as 75 shots
per day. A couple of things about that... I am only one person, they
have many, that puts me at a disadvantage. I also, as I have stated
before, did not know my program as well as I should have. I also
don't have the same tools they do. They have custom built tools, by
an internal programming department, that allow them to work with the
footage at each step in the process, or rendering pipeline, much
easier than I can. This is the whole reason for the internal
programming department. They write programs that make each persons
job easier and allows them to do there job faster. Another good
reason, is to have a completed project. I don't think there is
anyone who wants to have a partially done project, we want to have
it done and out of the way. Sometimes that means redoing a section
and sometimes it means completely scraping the whole thing and
re-building everything. In this case I am going to do the latter,
scrap everything and re-build it; once again you will have a list of
changes below.
Goals of the extension
This is a section I am probably going
to be adding to every so often because I don't know what I'm going
to do yet. I have some things already lined out, but I'll probably
run into others I didn't think of, so consider the list below a
partial one...
|
|
|
Re-film the footage with a better
camera. The camera I had was a real gem, of course I 'm joking. It
was an older camera that was well used and abused, which is why it
didn't work so well. Once the organization I borrowed it from gets
the new cameras, which I was told they are looking into as I am
writing this, I'll be in there borrowing again.
Rebuild the entire train. Every
part of it needs rebuilding and detailing, like adding screws,
bolts, edges and separating panels like doors and windows. The big
thing is building each car separately. When I started this project I
built the whole train as one object, this was a really bad mistake.
As I stated earlier, I used sub-D to model the train, which creates
a lot of poly's. When I started using boolean to chop up the
separate cars, Blender didn't like this, it crashed. Another reason
for building separate cars is adding internal rooms and
compartments. I didn't add any of these for a couple of reasons. One
and most importantly, time constraints, there just wasn't the time I
needed to build everything. Another reason is animation, every
object has to go somewhere when the train transforms, less objects
means less time to animate the transformation. For the next version,
I will also be chopping the train up into smaller pieces. The pieces
I had for the original transformer were too big and bulky, they
should have been much smaller allowing for greater detail during the
transformation and giving me the opportunity to make a much slicker
looking transformation. Each piece also needs more random looking
sides. If you look at the current train, all of the pieces are
blocks, just plain ol' blocks, boring as they come. What I want to
do is make the outline of each piece much more random, this will add
visual interest to the transformation and to the robot itself.
Re-texturing the entire train.
When I built the first texture, I built it just like I built the
train, as one big image, this won't work when I separate it. Also
this kind of goes with rebuilding the train because when I rebuild
it with all of the details, I'll have to build new textures for all
those new details.
Re-animating the transformer. The
transformation was not bad in this version, but it lacked a few
things mainly because of time constraints. On the extended version I
want more pieces to work with. When you only have big blocks, making
curves and delicate shapes is impossible. You also need a lot of
little edges to make the character interesting to look at when it
transforms and when it has completed it's transformation. This will
also give me more options for the transformation, I could have it
turn over, turn inside out or any number of other solutions that I
could not have done on the current piece.
Re-compositing. This should be
similar to what I had before, with the hope that I have a couple
more nodes to work with, like brightness/contrast and levels. The
composite needed some help in the areas of color and blurring. At
this point, I am not sure how to modify the color in order to get it
to look more composited, this is an area that I need to get some
education on. As for blurring, I need to take a look at some real
footage of a train moving down a track from a point in the distance
to totally past the camera, this would be a perfect reference
considering this is what I want to do, to see just how much blurring
I need to do. This is an area I also have been confused in, I never
know how much to add or not add. Apparently, my eye is not tuned to
this part of compositing yet...something to work on.
|
Work flow and Time line changes:
For starters, I'll have one. In this
project I had no work flow and no time line, mainly because I didn't
know Blender the way I do now, on the next project I should have a
better idea of how long it will take to do each step. That doesn't
mean the project will move along perfectly, each project is
different and therefore different problems could arise. The main
thing is I will have a plan to help keep me on track and organized.
What I've learned:
Model first then texture then animate
Once again this goes back to having
some sort of work flow and time line. I was all over the place on
this project, I modeled, I textured, I rendered, I animated. I have
to get back to my teachings...model, texture, animate, light,
composite, in that order. I know, for example, I may have to hit
modeling after I have animated a piece; but again, its all about
organization and having a work flow to work from.
Decide with drawings how to cut up the model
One thing I've never done is drawn my
ideas out to work from. I was never very good at drawing, all my
straight lines were curvy or just plain not straight in some sort of
way. My dark lines were too light and my light lines were to dark;
when it comes to drawing, I'm a mess. This gives me great respect
for those who can draw. I remember when I was a kid in church and at
home, I would spend time drawing on pieces of paper; coming up with
ideas for cars, engines, snare drum head tighteners, etc., etc. I
always had a great imagination for technical concepts, but not as
much for art. I have always loved art, but not been very good at it,
until the greatest give of mankind came along...3D animation (maybe
that's exaggerating a little...or a lot). I can do just about
anything in 3D, hence that is where I start my projects at, not at
paper. This is something I really need to work on; so for my next
project I will be starting with drawings, they won't look like Mono
Lisa's or even a Dali, but they're a start for the project. One more
note, this is where 3D animation differs from other forms of art;
you don't have to know how to draw to become a great 3D artist, just
have a passion and desire to do it, everything else is technical. So
in this case, I will find some side shots of the train, print them
out and start drawing my subdivisions. Once I have that, I have a
plan.
Needed more layers of texturing to make it look more convincing
In the compositing process, you create
many layers. Some films have had as many as 100+ layers for single
shot, that is a lot of layers. Each material on the object has many
different facets to it, specularity & diffuse lighting,
reflectivity and refractiveness, this is just a small list, there
are many others. Each of these, depending upon the layers in the
surface, can be subdivided into layers themselves. When you start
adding this up, it gets to be a lot of layers, and that is just the
3D objects in the scene. You'll also have layers for the background
plate. It will need to be recolored depending upon how it was filmed
and the mood the director is trying to achieve, now 100 doesn't seem
so many. As an example of my own, if you look at my homepage you're
seeing about 60 – 70 layers. Each layer adds something to the
overall effect of the finished piece. Some of the layers are just
dirt, some are scratches, some are recoloring the materials like the
rock or the steel plate. These are the same additional layers I
needed to add to the train, I wouldn't have added as much dirt or
scratches; but nun the less, I needed some of these things to make
it more convincing. Something else I'll add is the offset and
imperfection of each panel. On most equipment, each panel is
somewhat bowed or twisted, it's not completely perfect, this would
have helped out a lot; but this does go back to what I was talking
about before about time constraints, if I would have had more time,
I could have added more detail.
|
|