portfolio descriptions



Music in Maya

This was my 3rd year major project in university. I wanted to allow users to use music in Maya to drive animations in conjunction with keyframed animation. I achieved this by creating a custom plugin for Maya which used Fmod to play back the music files. The plugin introduced 3 custom dependency graph nodes:

Music Node: Allows the user to playback music files in Maya (.mp3 .wav etc). Allow access to left and right amplitude values as well as the frequency spectrum (Fourier analysis)

Beat Node: Performs beat detection on the data from the music node, and outputs frequency specific beat detection

BPM: Calculates the overall beats per minute based on the current 5 seconds of beat detection data

As well as creating the tool i wanted to create an animation using it as a demonstration of it's capabilities. Except for the background which is keyed, the animation was generated by connecting various attributes in Maya to the custom nodes. The project was completed over a period of 6 months (this includes time spent on other projects)

The code was commented in Doxygen , the Doxygen generated html files can be viewed here

contact me to find out more...

back to portfolio




Maya based FSM

This was one of my minor 3rd year projects, I was very anxious to use breakdancing in one of my peices and this gave me the opportunity to do so. The breakdancing animation was captured in a motion capture suite at Bournemouth university, I then cleaned the animation up so that each move could be cycled indefinitely. After that the task was stringing the individual moves together to for seamless combos. To tackle this i employed the idea of a finite state machine (something which is commonly used in games) The blends between moves were keyframed. In the Maya scene you are able to key an attribute which dictates which move should be exectuted next. When the mel based fsm realises a change, the necessary blending moves are pushed onto an animation stack until the desired move can be executed.

The reader might notice that since the change is not instant this would not really be appropriate in a game environment, whilst this is true it allowed me to keep absolute control over the motion of the character (no slipping etc) the cadence of the movement was paramount if i wanted to achieve a realistic feel. Also the moves are very fast so the delay is normally negligible. If the animation needed to be instant, one could employ a los of balance feature so if the user executed a move at the wrong time, the character would fall over.

There were alot of aspects to this piece that I wanted to continue including adding some more moves, however as this was only a minor project I had to draw the line somewhere. Project completed in 3 months.

contact me to find out more...

back to portfolio




Script Controlled Game Engine

This was the second of my 3rd year minor projects, the brief was specified by the R&D team at MPC, that was to create a simple game that could be changed by the use of scripting after it had be compiled.

The first task was to create a simple 2d platform game, rather than focusing on a walking character or complex backgrounds, i decided to focus more on the game play, namely the physics, collision detection and also some ai.

Once the fundamental components had been assembled i needed to bind certain aspects of the game to a scripting language. The scripting language chosen was Lua , this was recommended by the MPC team and turned out to be a powerful tool.

The majority of the game can be changed through the Lua scripts, including the style of the game (2d or psuedo 3d), the amount of enemies and the level of intelligence. I also included functions to build levels from scratch in lua or edit existing levels. Project completed in 3 months.

The code was commented in Doxygen , the Doxygen generated html files can be viewed here

contact me to find out more...

back to portfolio




QT Media Player

This was another part of my 3rd year major project. After i had completed the Maya plugin, i decided to use the code in a stand alone program to demonstrate its portability. This was also a chance to use the multi-platform GUI creator QT. The media player allows the user to play back audio files and watch 3d openGL visuals created in real time. There are 2 visuals in this version, both based on a simple particle system, the user is also able to control the start/end colour of the animations as well as the blend tolerance to provide a little interactivity.

contact me to find out more...

back to portfolio



back to portfolio