17 Apr 2012

merfolk WIP



 Not long until deadline now. I have been working flat out on the animation for 'merfolk' recently and should have it all completed by the end of the week, leaving time for compositing and matte painting.

Here's a small example of what to expect:
Our heroes with Colin the sponge


















Cheeky bit of police brutality



















Satire ohohohoho











































7 Apr 2012

Flock The System

Programming assignment complete.

I haven't blogged for a while.  Along with the ongoing major project progress, I have been working on this:


Flocking system for maya, created as a group programming project with Jeremy Booth and Nathan Hayles. The system itself is an openGL application written in C++, using Jon Macey's NGL (NCCA Graphics Library). The maya GUI uses Maya Python API, and launches the executable from within maya to provide an efficient workflow.

My individual responsibilities were the python GUI, the curve/obstacle importers/exporters (file write in/out) allowing for real time updating, goal following (allowing sub-flocks with multiple curves), and some work on the final interface and xml exporter.

The aim was to create a flocking system to be used with maya to provide a fast efficient workflow, allowing lots of user control over the behaviour of the flock, and look of the final piece.  When the python script is run, the user will be asked to create/select a project directory where exported files will be written to and read from, allowing the exporting to work seamlessly in the background as changes are made.  Initial values for number of boids, time taken for flock to follow curves and frame-rate can be set in maya using the GUI.

The user can create curves in maya to be used as paths for the flock to follow.  The flock is split into sub-flocks depending on the number of paths to follow.  These can be edited/created/deleted and updated as the program is still running.  Spheres and cylinders can be created as proxy geometry to act as obstacles that the boids avoid.  There is also a predator mode, that can be toggled on and off, where the flock disperses to avoid a predator that is chasing them.

There are many attributes that can be modified using the GUI such as seperation, cohesion and alignment; max speed, max force, mass and scale of boids/predator; and influences of obstacle avoidance, predator avoidance and goal following.  Boids can be added and deleted on the fly, and there are animation controls to pause and reset positions of flock and goals.  When the flock is behaving as the user wishes, it can be recorded.  This writes out the position and rotation data for each boid each frame as an xml file.

The xml file is then read into maya and the flock is created as locators.  A user defined mesh can be duplicated across the locators using the 'post-flock' section of the GUI.

The video demonstrates a quick example of what it can do.  I will create a more polished example, including renders to show the full potential, but over all I am pretty happy with the outcome.