I joined a project to create a short animation for children to learn colours.
This project involved several people and i was to work along side and co-ordinating with the client, several 2d animnators and the project lead.
My job was to create 3D assets,procedural textures and basic materials, dynamic effects, sprites, camera animation and lighting.
The first job was to look at the enviroment in the storyboard and recreate it.Some changes were made from the storyboard to better acomodate the script.
I created a set of modular pipes with t junctions and curves ect which i then used to build structures or partialy build structures in the pool. i used a script to randomise a set of materials i created across the different parts of construction.
These were all given meaningfull names and groups and sorted in the outliner for efficient management.
The water is created with Ndynamics. Ncloth was used with a volume axis solver to create waves. Once the desired effect was achieved a Ncache was created and edited in the trax editor to cut off the instability of the ncloth at the start of the simulation.
Later on when it was established some of the scenes would be longer than the cache created, a endless loop was created by halving the ncache ovelapping and altering the influence to create a cashe that could be as long as was needed.
For the last scene which had a static camera and was very long a seemless loop was created instead to cut down on render time and cost.(instead of 1500+ frames this was reduced to 580 frames with the loop starting/ending at 1/580 so there would be no jumps in the waves.
Of course this meant the water texture also had to loop this was acomplished by duplicateing the water material and then blending it together with its duplicate and offsetting one material for anouther then blending them together at the correct point.
Many tests were created to form the texture for the water, it was decided to use procedural textures to efficently create an animated cartoon style water effect.
Eventualy the final version was settled on utiliseing the Pluss Minus Average node to bring two noise effects together to create a layerd animated texture.
Fake specular highlights were then added to add a "glistning" type of effect to the water, this was also created with an animated noise, and then added in to the existing texture.
The noise animation is driven by 1 node and then time is passed to the outher noise nodes.
Copies of this material were made to facilitate the use of Render elements.These were identical materials weth different material ID's. This was to help the 2d animators who had to animate pandas half submerged. So this created a mask to make it much esier to acheve this. Materials were used in this instance because the water is made out of a singuular plane. to create mattes for objects such as the slide, object ID's were used in anouther render element.
Then cameras were created for the 5 scenes and these were animated baised on a best guess of how long animations would take on each scene.Playblasts were then created for the animators to work on.Changes were then made with feedback from the 2d animators when nessary.
Then special effects were created several splashes were needed as well as some water jet and pouring effects. For this i decided to use Nparticles utiliseing a blobby surface with liquid simulation to create sprites the animators could use, for the pouring effect i had to export part of the scene and make sure animations were in time with eachouther. (as we were useing VRAY as a render we had to use maya software to render the particles as blobby surface and maya ocean shaders do not work with VRAY. The particles were controled with various forces, and kill fields were utilised.
These were given to the animators as 2048x2048 png sequences.
There were many splashes made and edeted on the way to these final versions utliseing many different force volumes to create the desired effects.
There was one Scene with a speedboat where the speed that wanted to be portrayed meant the pool was to small. Instead of creating a gargantuan pool which would have been intensive to render with the large ammount of dynamic water that would be needed a infinate pool was constreucted.
This had a small piece of water and two sections of pool "edge" the trick was to use driven keys to move the water deformation at the same rate as the pool edges to create the illusion of an infinate pool which was then enimated to the speeds nessary while the camera remained still.(In this case a nurbs circle's rotation was used to drive the translation of the pool edge)
a lattice was bound to each of the pool edges so as to deform the water as it went by to make sure no water could be seen on the outher side of the pool edges and to also give a squashed effect neer the pool edge.
I also acomplished the same thing utiliseing only MEL with an equation useing the following lines:
$var1 = time2; pCube1.translateX = (atan(tan($var1)))2;
$var2 = time2; pCube2.translateX = (atan(tan($var2)) - 3.14)2;
Plotted on a graph this shows the movement that is desired:
In the center of the pool there is a tower. Oner of the sceens called for a poanda to use a hose to spray anouther panda.Allthough eventualy it was decided that because of the high interaction with the panda a 2d animator should do it i created several tests for it useing the sculpt deformer and inverse kinematics.
The final product: