Monday, October 22, 2007

Snowballin away

Wow, I can't believe that October is nearly over. It's about time to get into full-on panic mode.

Updates since the beginning of the month:
-finalized reference structure
-redid the final ingredient bottle
-outsourced animation and modeling
-animation splining for shots 1-7
-underwater fluid effect
-tests for fire and splash effects
-moon texture
-well procedural shader

I'm feeling pretty good about where I am -- I tend to alternate between feeling like I have all the time in the world and feeling like I have no time at all, which I guess on average means I'm about on track. The piece is about 35% done at this point, which is behind since technically I should be about 50% done. Half done! We should be half done!

The bane that was last week at least allowed me to break through one major problem, the problem of referencing. I love referencing when it works, but I hate it when setting it up. I have about 35 different shots, and each shot is getting its own scene file. Each scene file is referencing the elements needed in a modeling folder I labeled FINAL_MODELS.

So I had basically two choices: assemble the reference files from scratch and import my character animation from the 3D animatic files, or re-reference within the 3D animatic files and save out new reference files. After a couple shots of searching through nearly 100 channels of animation and trying to paste them onto laddoo, I figured it would be easier to use the 3D animatic files.

This turned out to be a great decision, at least I think it was. It changed a complicated but potentially shorter process into a long tedious one, but long and tedious is better because the shorter process really was a lot more complicated (getting animation curves off old Laddoo and onto new Laddoo).

I also decided to place all the ingredients (moving objects) in one reference file, all the environment objects (non-moving, set pieces) in another reference file, and the character in a third. At this point, the only model that is still using the old 3D animatic geometry is the manual, which has fast turned back into a book for issue simplification.

So then it was a matter of going into each 3D animatic file, changing the references, as well as the namespaces for the references. It's probably something I could have scripted, since all the files are .ma files. However, the files run across a network and I'm much more used to doing this kind of scripting in Unix / Mac OSX. Didn't want to chance network problems or my lack of scripting experience screw up the animation files.

So I opened each file (a minute to load references), changed the references (another minute), plus overhead (a minute of daydreaming, waiting for things to load, cutting and pasting paths to the reference files, the new save files, and the old animatic files).

While this seems easy, it really was a pain in the ass. It took a good one and a half days to get everything transfered over, but now everything is working perfectly. The animation on Laddoo transfered over perfectly, which I'm super happy about. The bottle animation didn't transfer over, but that's because the geometry is so different, so that was to be expected.

I redid the geometry of the final ingredient to look like a small scotch bottle. Another implicit joke, that the final ingredient is alcohol. This will remain implicit, however, I will still label the final ingredient as FINAL INGREDIENT. The rig is still the same, and it looks like I will definitely be able to make use of the meniscus rig. Gavin gave another possibility of using booleans, but I don't think that works out with the number of surfaces in a dielectric interface system. Each surface has an in-ior and an out-ior, depending on the materials. For the bottle, the interfaces are glass to air, glass to water, and water to air. The outside surface gets glass to air, the inside top surface gets glass to air, the inside bottom surface gets glass to water, and the meniscus itself gets water to air. This is how Boaz taught us to do dielectric interfacing, and it seems to work so I'll stick to that. Regarding the bottle, the next thing to figure out is caustics and where to include them within my composite layers.

John Tarnoof and Rachel Tiep-Daniels from Dreamworks came to give a presentation at CADA. The one thing I got from that presentation was a reiteration of how good you really have to be to get a good full-time job in this industry. Rachel mentioned that she modeled a really nice looking noodle cart in a day, half the day for research and half the day for modeling. That thing would probably take me a month to model, two weeks if I was lucky. I got some info on what Dreamworks is looking for in an effects artist, scripting, API programming, the ability to troubleshoot coding for a renderer. Very intimidating.

In that spirit I started doing tutorials on python. Python is a really weird language. It looks like visual BASIC to me, but feels like a flat version of Perl, if that makes any sense. Whereas Perl is quirky, Python seems to be its organized but informal brother. The only thing I don't like about Python so far is its lack of braces to define blocks of code (it uses tabs/white space instead), and the lack of for(i=0,i<10,i++) syntax. But it seems pretty powerful and pretty easy to code, and I've checked the interfacing with programs like Realflow and it seems pretty straightfoward.

Vanessa Weller is doing my foley sound effects, and Germono Bryant is doing my score. Germono got the first version of my score to me, and it was really nice. Whereas I expected just a sequence of notes, it was a full-on operatic piece. Did not fit completely, but he's really talented -- I was impressed.

Cidalia Costa is on board for textures for my manual, and I'll discuss those with her some time this week. Some of the animation 2 people have expressed interest in helping me animate.

I've started doing some splining and second pass animation for the beginning shots, and rendered out tests in mental ray. The stars are too bright and the well water waves are moving too fast. Everything looks pretty good, though. I showed it to Michael Hosenfeld, another professor, and he said the colors were too saturated for a night shot. The moon is also a strange color, it doesn't fit the palate. I think I'll make it a little more yellow, less orange.





And then, the effects tests. Effects are my focus so I have to start getting all this stuff planned out. Here are some of the tests I've been working on. They look better in motion, I swear.



This is a particle explosion I may use to simulate pieces of burning pages coming off the manual after the dragon burns it. It mixes the result of an rgbPP ramp with a rotating crater-based volume texture.



The fire is also a partile effect that uses a shader similar to the one above. The speed is controlled with scripting and a turbulence field creates the spreading out effect at the end.



This potion blur is actually a 2D fluid oriented to the camera angle. The fluid emitter is animated to camera. This is after I tried to do it with a 3D fluid and the computer failed. Adam Burr said the 2D fluid was a perfectly legitimate solution, and suggested the use of animated bounding planes to serve as collisions in the fluid system to represent the sides of the glass bottle.



This splash is controlled with forces. The shader is a facing ratio glow with geometry hidden on blobby surfaces.

Next to come: better animation, finalized textures, paint effects, finalized book

Tuesday, October 9, 2007

It's Comin Together!

Just a few updates to report. Most significantly, we had our first thesis critique from CADA faculty, and mine was surprisingly a great success! More on that later, but first:

I added more to the environment, including throwing a (bad) texture onto the road. That will have to be changed. I still like my ground shader, though, and it is really easy to render. Trees still need to be tweaked. I want to have a nice cartoony moon in the sky, but I've been playing with filters and trying to get a nice look but haven't had much success. I watched some old tv episodes of Aladdin, and there are some great shots of gigantic, stylized moons against a bright blue Arabian night sky. The secret seems to be mixing the bluish light of the sky and the yellowish glow of the moon without ending up with an unsightly shade of green. I'll play with that a bit more this week.

I fixed the dragon model up a bit, smoothing out the patches and converting to polygons, but I have since deferred to Adrian de la Mora for the modeling details. One of the major comments I got at the thesis critique was how and when to pass off work. Also, I'm having Cidalia Costa do the textures for the book. She wants to do oil paintings, which will end up looking fantastic. As soon as I nail my style of the book, I know it will look great.

I spent a couple days playing with the Laddoo rig, understanding how it works and how the nodes are connected. Just for reference, this is the rig itself in the hypergraph, which was what I was trying to understand:



There are several blendshape nodes that feed into one master blendshape called parallelBlender. This node controls the face and eyebrows. The parallelBlender then feeds into the joint clusters, which makes sense since the face deformation should occur before joint deformation. All this is piped through a smooth node, and then outputted to the actual geometry. Of course, I didn't notice that this smooth node had it's attributes connected to a control, and tried to create my own smooth attribute. I smoothed all the geo, then attempted to write an expression to control the number of divisions in those smooths. As it turns out, just being able to select all those new smooths was a pain. It took an unfortunate amount of time to come up with the following script:

int $i;
for ($i = 35; $i < 45; $i++) {
$pick = "polySmoothFace" + $i;
select -tgl $pick;
}

I then used a driven key to connect a smooth attribute on the master control to the division levels of the selected smooth nodes. Only after I did this did I realize there is a big S control curve behind laddoo that does this very same thing:



Luckily, this practice of adding a smooth control was not in vain, because using the rig's built in smooth control destroyed the UV transfer map I created to prevent the UVs from swimming. This was because the rigged geometry takes its UVs from the texture reference, and doesn't know how to interpret the UVs when it is smoothed and the texture reference isn't. So the solution, of course, was to smooth the texture reference simultaneously. I used the driven key to drive the smooth of the texture reference, and, lo and behold, it smoothed the UVs. I was really happy because I had no idea whether that would actually work, Maya can be very picky when it comes to UVs.

Other laddoo rig issues: there were a lot of blendshapes that looked like they were part of the modeling history and not really built into the rig. Most of them were duplicates, so I ended up deleting a bunch of head models. This ended up removing almost a third of the entire file size, cutting it down from 30 MB to about 22 MB. I learned how the eyebrows work: getting deformations both from the blendshape nodes as well as extra cluster nodes used to deform the eyebrows independently. It's quite weird. There's also some different geo for the hair, but I don't know how to change the hair to use those pieces of geometry. My guess is they haven't actually been built into the rig. The hair dynamics is cute but slightly overkill, in my opinion, not sure if I'll use it.

In summary, laddoo has a lot of extra weight in the form of extraneous blendshapes, a weird eyebrow setup, and ONLY THREE FRICKIN FINGERS, and some of the attributes are unnecessarily clamped (though the keys can be pushed in the graph editor), but is otherwise quite a versatile rig that can achieve a decent range of poses and expressions. I'm probably going to add only a single blendshape to the mix, a squint blendshape to allow laddoo to make a "what-the-hell-is-going-on" face. As you can see, it's not exactly wtf-ish, as of yet:



Up next is nCloth. Ah, what can I say. nCloth is totally cool. It's really easy to learn, too. After going through Duncan Brinsmead's tutorial a couple times I got the hang if it: http://area.autodesk.com/index.php/blogs_duncan/blog_detail/animating_a_book_with_ncloth/

Right now, I'm using a lot of transform constraints to open the cover and turn a page. I'm getting some nice animation, except in the binding area of the book. There's also dmap shadow problems, I assume its a self-shadowing issue because my bias is too low. But it's exciting to see the pages turn and the binding of the book actually follow where the page goes.



The nCloth cache is also really easy to use, just like fluids. Now if only I could remember how to do it for particles -- I remember there is an extra step somewhere. Oh well, I'll get to particles soon enough.

I've been showing the animatic to more and more people, and getting better and better reactions. I showed it to my parents, who represent to me the target audience: non-industry folk seeing the piece for the first time. Everything really has to be spoonfed, the story may seem clear to me but be confusing for someone watching for the first time. And most of the people who see it will only see it once.

Most importantly, I showed it to Patricia Heard-Greene, the other thesis advisor, and she had some good suggestions on cutting it down. She had a lot of lighting tips, and a lot of comments on the animation which was funny because I really haven't spent much more than a couple weeks animating.

So that brings me to the thesis panel, I'll document everything they said because I feel it's pretty important: it's like reading through the comments you get on your first exam in a class. My panel included Boaz Livny, my lighting instructor (and all-around super genius), Adam Meyers (genius), Myles Tanaka (genius), and Patricia (genius). A great panel, all with very worthwhile comments:

-Adam says less is more, and clarity is much more significant than razzle dazzle. Subtle effects are much more impressive than big, over the top effects.
-Pan and scan is a definite possbility for background matte paintings
-Boaz stressed screen gamma, especially from the projector, which tends to make everything dark and flat, and clips the brightest whites and darkest blacks. The projector render thus needs to be super hi res, super-saturated, slightly brighter, within a range of 15% gray to 85% gray. UGH!
-Oh, and also another gentle reminder from Boaz, regular renders from Maya are physically wrong because they output texture colors in linear space. DOUBLE UGH!
-Adam mentioned that viewers are stupid, and if you bet on your audience to cleverly get the idea of your piece you're probably gonna lose.
-Patricia did not outright say it but implicitly suggested that I need a much better thesis statement and synopsis, one that I can read off a piece of paper to the panel.
-Boaz told me to get help with animation, since it isn't my focus and without good animation the piece will fall flat, regardless of how good the effects are.
-Myles mentioned something that I have written down as "ad cuts" little graphic blurbs used to sell services, like ACME company from looney toons. Something to look up, I guess.
-Boaz strongly suggested DragonHeart as reference for some of the dragon and water interaction.
-Patricia reminded me to strongly prioritize my time. Spend the majority of it making the visual effects look really spot on.

The rest of the comments were directed specifically at the work I had done in my piece, which I've organized by person:

Patricia:
-first few shots could be cut in favor of foley sounds that occur during the title shot.
-Light the well during the book shots darker on the left side if you don't want the audience to read through the whole text
-Make the book a brighter, more obvious color than the well so the audience is focused on the book
-The overhead street light is fine
-Add a moon to get nice rim lighting on the dragon, glint of moonlight on the book cover from bump
-Watch out for the beginning with action starting and stopping -- try to cut on action a little better
-Step 3, add fennel, start with the page already half turned, and hold on the Step 2 image a little longer
-Need 3 ingredients for the montage sequence: steps 3, 6, 10?
-The warning page is really boring
-Patricia likes the 3D animatic bottles!
-The explosion out of well shot needs to be much more dramatic -- consider having the dragon fly toward the camera a little bit
-Play with the zdepth of the dragon, it's a little too static during the upward motion
-Drag on the wings and tail, possibly nCloth for the wings
-Maybe the shadow of the dragon falls over Billy's face when it cuts to Billy surprised
-For light come back on shot, again play with dragon's zdepth
-For the great dragon is tiny shot, Billy should be leaning back or stepping back or doing something, not just standing
-Tree leaves need to be rustling. As a visual effects artist this will be pointed out if it is overlooked.

Myles:
-Give the dragon some teeth and angry eyes, exaggerate it for the big shot where he comes out of the well
-Angle the camera to see the dragon higher more quickly. Have the dragon come out toward the camera, filling up more than the frame: tips of wings, some of head, and legs and tail out of frame (saves on animation, yay!)
-Possibly during that shot switch to an aerial view above with the dragon surging toward the frame. You want its head to look big, mean, and scary
-Play up the warning in the shot where Billy reads about the final ingredient, maybe slightly zoom toward the warning. A subtle camera move.

Adam:
-Treat the title better, do something with it. Integrate it into the piece instead of just title and fade up from black.
-Be more aggressive with the title font.
-A lot is going to depend on how the book is stylized. Textures need to be spot on.
-You can use Billy's finger to animate and show how fast and where he is reading on the book.
-The background is a bit flat and could use some depth of field blur and fog effects
-Texture the lightfog to give the whole scene a really eerie look.

Boaz:
-watch the smoothness of Laddoo's hair. That's easy to fix because Laddoo was unsmoothed at the time I rendered him for the animatic.
-For the bubble effect you can use the bubble texture not only as displacement but also as a mask for the glow
-You can use a lens shader to distort shot 23 when the dragon comes out of the well. You can also use a 2D filter.
-The dragon texture is non-existent. (So is the final model, I wanted to say, but didn't).
-The dragon should be reflected in Laddoo's eyes. You can fake this with a reflection map, if necessary.
-Motion blur is super necessary, but don't be a fool and try to get mental ray to render motion blur and depth of field at the same time, it will kill your render times. Instead, render out a separate z depth pass and composite in z depth fog -- an effect I am quite familiar with, having done it twice for his assignments. It's a great effect!
-Read Boaz's book chapter on paint effects for the trees. Yay, Boaz wrote a whole Maya book chapter on paint effects. Guess what's just moved to the front of my reading list.
-Use the rasterizer to render motion blur. I'm a little bit hesitant on this one because I do want raytraced reflections in the well water. And the rasterizer scrunches up its face and gets constipated whenever it tries to render a raytraced scene. Plus I've never really gotten a good render out of the rasterizer, even without raytracing. It's just my incompetence, I'm sure, but it's another thing I have to learn if I use it.

Whew!

Onward to the next task: somehow figuring out how to transfer the animation from my 3D animatic over to the final shot scenes.

Yay, I'm starting to animate! Yay, I'm on schedule! Mostly, probably, sort of, hopefully ... ?

Monday, October 1, 2007

New 3D animatic, dragon progress

I've got a near-complete 3D animatic. Well, at least it's in a place where I'm pretty happy with it. Check it out, it's just under two minutes: 3D animatic

I've also been working on patch modeling my dragon model. I've done everything except the hand. I think now is about the time when I start to ask for modeling help.