The caterpillar shot in the teaser was certainly one of the most time consuming shots we have done at Pataz, specially considering it’s only an 87 frames shot featuring a glorified worm in a stick :)
No matter how good a 3D software is it will never be prepared for every possible situation a shot might ask for. As a technical artist I’m in charge of figuring out all those little solutions needed to “resolve” a shot. Since an open movie is all about sharing the experience of creating it on this first post I’ll be writing about how the pupils where animated! (you might want to watch that clip again if you missed it).
Sarah wanted the eyes to look similar to an insect’s eyes. Notice how the light over the micro “prisms” creates a kind of black hole in front?
The idea was to exploit this characteristic and turn it into the pupils of the character. The common approach for animating pupils is to model them with geometry and we actually tried this way by creating a 2 layers model of the eye, the first was a glassy transparent mesh an a few millimeters inside was another mesh with a hole in it. This kind of worked but it didn’t give us the exact textured look we where looking for. We ended up using a simple single surface mesh with textures.
The problem with textures is animating them.. Blender has a million ways to animate vertices but zero native ways to animate a texture! Sure we could animate an offset in the mapping parameters but that’s not enough to deform and manipulate the shape of the pupils. The obvious answer here was animating the UVs and if you’re thinking about the AnimAll addon then kudos to you, you’re very well informed ;) This addon exposes hidden powers of Blender and lets you directly animate things like meshes, curves and yes, UVs!
Since the days of Big Buck Bunny we have a way to reuse a character in multiple scenes by linking it from a single character blend file. After the link is made we make a local copy of the control armature(s) and animate on it, this local copy is called a proxy. This feature is pretty much essential in any production and a rigger must ensure everything in the character that is animatable is accessible from the proxy.
Sadly the proxy system is limited to object and bone level transform and does not provide access to mesh data! Gah, so close!
Luckily since the Blender 2.5 re-factor you can be
almost sure of one thing: if something is animatable it is also drivable! This means that in theory we could assign drivers to each of the UV points and control them with bones, which are totally proxy-friendly. Of course this is easier said that done since each vertex of a mesh would require 8 drivers in the UVs to work… wait WHAT?? Here’s the proof:
In a typical case a vertex is shared by 4 adjacent faces, this means the UVs will store 1 point for each of those faces. Multiply that by 2 (U+V) and you get 8 drivers! This is certainly not something you’d like to do manually so at about midnight I started hacking a python script to automate this ^_^’
At about 3:00am it actually worked! For each of the pinned vertices in the UV, the script creates a bone and assigns drivers pointing to that bone. This solution turned out to be even nicer to animate than direct UV manipulation since normally the effect in the texture when moving UV points would be “reversed”. For example: if you would like to create an arc pointing upwards in the pupils you would need to move the UVs in the opposite direction. By creating the drivers with inverted values (1 = -1) we can make the texture deformation match the bone transformation perfectly!
Here’s the full script in case you need it too. Beware it’s a production script and as such it doesn’t have a nice UI or anything and you might need to change a couple of names in the first few lines :)
As a final note I’d like to mention that improving the Blender’s proxy system is one of the big tasks targeted for Gooseberry development and one of the reasons we need to support this project! There is no better way to push Blender into the future than passing it through the fire of an open movie.
keep blending in,
Daniel Salazar - patazstudio.com