Blog
Music: Kevin MacLeod.
I wish I could say I worked on this, but I just wanted to comment on how amazing it looks - I hope there's a lot of motion capture, otherwise my head may explode from the amount of awesomeness if I discover it's all key framed. Make sure you watch the 720p version and in full screen. ;)
The trailers for the previous games are also equally impressive, getting better with each year - here's the one for Brotherhood:
Assassin's Creed 2, and the original Assassin's Creed trailers. All brilliant! So easy to forget they're CG at times.
An older version of this animation can be viewed here.
Character rig - Max (from 3dluvr.com).
The most up to date version can be viewed here.
Links to individual cycles:
Dragon flying cycle
Robot running
Composited in After Effects as a bunch of layers to edit in the environment, clouds, dragon model and other effects in separately, to control the motion blur and depth of field independently.
Click here for some of the work in progress videos
The actual TV version can be seen on YouTube. You'll notice I've focussed on the first section of it, despite the second part containing car motion, which I have done a lot of in the past. This is because, well... I've done a lot of this in the past. And the first part is more interesting and better made too.
I posted this video on YouTube as well (link) where it has so far been met with praise, and quickly spread across sections of the internet, mostly via Twitter, eventually arriving at the BBC F1 homepage where it was linked to!
It has received over 5,000 views in its first week, so now I guess I'd better make part 2, which I didn't really originally intend to do, but one day I'll return to it.
This is a project that formed part of my postgraduate degree which I have continued to improve afterwards, and the videos in this post should demonstrate some of its functions. I'll also explain the methods used, although I won't go into too much detail, but feel free to ask me about any specifics in the comment section after the post.
The intention of the rig is so that you can quickly and easily animate a vehicle that has been modelled without having to worry about the physics, as the rig will handle that with scripts.

The project started off life as a reactor-based rig, which was fairly easy to set up, and can be seen in a tutorial I wrote on building it. This method works well for simple animations, particularly over bumps, but I found to be quite limiting for manipulating the steering or for swapping the vehicle for another one without having to change all the settings.
I soon decided that scripting was the way to go. I followed techniques similar to this tutorial. I didn't actually follow this tutorial, but it does contain many of the techniques I did learn how to do, and I wish I'd have found this while constructing my rig. The main difference is that that is designed for a tank with tracks, while mine needed to be to suit any four wheeled vehicle, which I later expanded to allow any (even) amount of wheels, but not tracks.
The first thing I needed to do was to allow the wheels to determine where the ground was, so they could travel up and down terrain. This allowed the vehicles to not be stuck in flat, boring car parks. To do this, as in the tutorial mentioned above, I used the Conform tool on a plane and attached the wheels to it. I then used a spline curve as the path and made the conformed plane controller move along the path.
I now had a path and height sorted, the next thing was for the wheel rotation. A scripted expression was needed for this and required knowing the radius of the wheels, the length of the path, and the percentage of the path that the vehicle is situated at any given moment on the timeline. After adding these as variables in an expression for the z-axis rotation of one of the rig's wheels, the following expression should then calculate the correct rotation at each frame:
where pathpercent is the current percentage along the path that the vehicle has travelled, distance is the total length, and rad is the radius of the wheel.

The rig was now at a point comparable to reactor, minus the bump physics, but allowing the vehicle to have direction without having to pause the simulation and create new settings. The problem with the direction change is that the wheels remained pointing forwards, rather than in the direction the car intends to travel - it needed steering. This was done in a similar way to the wheel rotation, in that it was done with expressions, although it required further objects to be placed in the scene. One such object was for a marker to follow along the spline curve path slightly ahead of the path that the main rig is about to travel. This meant there was a way of knowing which direction is coming up, and so the wheels could face this direction, taking care to ignore the axis controlling the wheel rotation.
The final major obstacle was getting the vehicle to bank realistically on corners or when traversing bumps. In the following image, you can see a couple of controller points to act as the main chassis, and these were used by adding position and orientation constraints in the motion wheel tab, then making the geometry that is following the spline curve bank on corners and using appropriate settings, and making one of the two objects in the rig mirror this position. The other object remains static. A third object is then placed and takes the average orientation of these two objects, and it is this that the main body of the model will be attached.

For acceleration and braking banking, the current speed was calculated using an expression, and set to a slider manipulator in the interface, and this speed controls two objects in the world space, one of which moves in the vertical axis depending on the speed. The difference between the two objects (one of which remains static) is then used to determine how much the car should rock forwards or backwards - ie, it calculates how much the speed has changed from one frame to the next. This is then multiplied by a multiplier variable set by the user using a slider manipulator to control how much the car should move - so how stiff the suspension should be. An F1 car for example would have stiffer suspension than a road car and thus be less visually active on weight shift.
The rig is controlled by the user using sliders (create > helpers > manipulators > sliders), which are tied to various elements of the rig. Things like the wheel size and heights of the front vs the rear wheels, ride heights and wheel base and widths can all be controlled, allowing easy addition of any wheel-based vehicle. Other elements such as the steering look-ahead, steering override (to allow for oversteer - see below), speed and weight shifts are also controlled in this section to cater for different vehicles - a truck will clearly behave differently to a Mini Cooper, but they can both be used on the same rig without needing to change any of the scripts.

The sequence below will demonstrate how to add a custom model to the rig, and give a further insight into how the rig is put together.

And that's the basic story of the rig. I went on to add further controls such as oversteer and the ability to add a driver, and these can be seen in the Motorway F1 video. The oversteer, which is a slider attached to the y-rotation of the main rig, ties in with the steering override, and is to be done manually, as it is difficult to predict how much oversteer is required. Wheelspin is a further addition and behaves in a similar way, allowing the front and rear wheels to rotate independently and at varying speeds, or to behave normally - this is a choice left to the animator.
I hope this helps someone, and that I have the balance between detail and being boring right.
Links to other videos containing the car rig on my site:
Motorway F1
Bugatti Veyron vs Eurofighter Typhoon
Reactor Physics
Car Rig Tutorial - 3dsmax
Car Rig - WRC
Car Rig - F1
Also an expansion of mental ray rendering, with glow effects and lighting systems. I also developed some After Effects skills, adding lens and video effects and manipulating time, as well as creating some extra special effects to composite over the top of 3dsmax effects.
The motorway is also scripted, looping and independent from the main animation - it's just a shame that it isn't really used all that much in this section, but work in progress videos of the motorway construction can be found elsewhere on the site (search for 'motorway').
It's intended to go on the home page as an introduction, and hopefully demonstrates some character emotion and interaction, as well as some cinematic effects.
Anyway, here's a draft render of the animation so far to check the lighting, textures and glass breakage effects.
The main thing left is the building explosion so the whole thing actually makes sense. And he needs a gun as well to shoot at the glass so the glass doesn't spontaneously explode as it does at the moment.
Still very much work in progress - textures, animation and obviously special effects still need working on, but you can see roughly how the animation should end up.
The idea is he's running from a bomb that he planted in order to kill something evil, although I've not yet decided what this evil thing is, or even if we'll see it. But in my head at the moment, it's something like a tank (not my upload) from Left 4 Dead... but I'm not sure if I'll go as far as doing a section prior to this, and may decide to just go onto learning Maya, which I've been putting off for a while.
Tags
- balls css animation lip sync climb canada web development reel unnecessarily extravagant web jump php trailer motorsports 2011 mysql wtf !animation run soldier javascript head explode jquery stuff work in progress character site website matrix game jQuery !webapps rss portfolio mask xml fall development fota superhero the box dragon update silverstone june 2011 feedreader calendar 3D sentinel !animation dance chat robot PHP mental case looks like the guy from the crystal maze webapps cycle demo physics orange 11 second club XML evil design f1 !character fight assassins creed highlights MySQL ott webapp amazing Mobile development july 2011 tasks bounce mclaren Interface maps idiot
Archive
- April 2012 [1]
- March 2012 [2]
- September 2011 [6]
- July 2011 [6]
- June 2011 [5]
- May 2011 [4]
- April 2011 [7]
- March 2011 [1]
- January 2011 [7]
- December 2010 [2]
- November 2010 [4]
- October 2010 [12]
- September 2010 [7]
- August 2010 [1]
- July 2010 [5]
- June 2010 [4]
- May 2010 [3]
- April 2010 [6]
- March 2010 [6]
- February 2010 [5]
- January 2010 [1]
- October 2009 [2]
- September 2009 [5]
- August 2009 [4]
- July 2009 [6]
- June 2009 [4]
- May 2009 [2]
- April 2009 [6]
- March 2009 [3]
- February 2009 [4]
- January 2009 [4]
- December 2008 [4]
- November 2008 [1]
- October 2008 [5]
- September 2008 [2]
- July 2008 [1]

A quick video to show progress on the project I'm currently working on, along with a model of the real life car I created a while back for comparison.