The DRIVE plugin was released on 4 January 2007 by Plugin Developer http://www.c4dplugin.com which is run by Klaus Heyne. c4dplugin.com makes a number of plugins. One being the Spline Patch commercial plugin and number of free plugins like Axis Center that most people are familiar with.
When I first became aware of this plugin and saw the awesome animations that it was capable of producing I just had to get my hands on it and knew that many Cafe members would be interested in it as well since quite a few like to model cars. This plugin takes your cars or even imported models and animates them realistically by running a simulation. We'll go through the process of setting up your vehicle throughout the review.
The plugin comes as a 2mb download and it is easy to install. You unzip and place the plugin within the plugins directory of your C4D installation. There's a executable file to be run as well that loads some further things. I suspect what this does is add in the DRIVE Plugin's tags to the Object Manager's right click menu. The DRIVE object itself is available from the plugin drop down menu. It's absolutely vital that you download the 727kb manual as although this plugin is quite straight forward to use, you do need to follow the manual to be able to figure out how to do things.
The Plugin Developer's web site has a video tutorial in both German and English. The English version is computer generated speech which is quite funky to listen to. Also available to download are the tutorial scene files (3.2mb) which include the Buick car from video tutorial which started life as an imported 3ds model.
Preparing the Car
Before you can drive and start doing burnouts and other cool things you have to prepare your car model. This can be a 5 minute job if you've got everything set up correctly or a longer job particularly if you're using an imported model. The way the plugin works is that you place objects like your wheels as child objects of the wheel null on the Drive simulation object. This means that your wheel has to have its axis precisely in the centre. If it's not then you need to use the axis centre plugin to fix things up. Often with imported models you'll find the front tyres for example are all part of one mesh. You've got to go through the process of splitting the meshes and using the axis centre plugin to centre up the axis. If you've built your model in C4D then this is less likely to be a problem. For my first go with DRIVE I loaded up the Corvette model that came with Release 9.
Click on the image for a larger version
In the image you can see that the tyre is a child of a symmetry object. I had to make the symmetry object editable and then split the mesh. Then centre the axes for both tyres. I had to do this for all of the wheel parts. When I had do that and grouped everything that made up that particular wheel and grouped it under a null object.
The next step is to create the DRIVE object and expand its hierarchy. Here's what the DRIVE object looks like on its own. You can see proxy objects that represent the wheels, the body and the engine.
You then drop all of your wheels under the DRIVE wheel objects. The DRIVE plugin can now take control of the wheels. You do a similar thing with the body. It's then a matter of lining things up. You do this by dragging on the DRIVE object's components in the viewport. You then have to resize the DRIVE object's wheels to match the radius and width of your models wheels. Here's before and after shots of the Corvette.
Click on the images for larger versions
The reason the body is raised is that as soon as the simulation starts it will fall under the weight of gravity and bounce a little. This is the shock absorbers working. In this example my car doesn't have shocker absorbers modelled but you can have them and the plugin can be made to compress and expand them as the car goes over bumps. Cool eh!!
At this point we could start simulating but since this is a real world simulation we can define all sorts of parameters for the vehicle e.g. weight, engine power, gear ratios and much more. What this means is you can get the specifications of the real car and load them into the parameters. Obviously this will make a big difference to how your car performs. The plugin comes setup with defaults for a sports car so you don't have to define every parameter if you don't want to. You can have a lot of fun just by using the defaults. Naturally I upped the power for my Corvette since it has a V8 engine. I also increased the weight as well. Below is an image of one of the many parameter tabs. You can adjust the power curve to match the output of a real engine. You're allowed up to 7 gears. Here I've got 5 gears which isn't probably correct.
Let's Get Moving
You can simulate driving your car over rough terrains. It doesn't need to be flat surfaces!! The plugin supports polygon grids, landscape and relief objects. Various grip values can be allocated to these - inside of polygon grids you can even allocate values for partial areas that you can define using vertex maps.
The way the plugin works is that you define a spline path of where you would like the vehicle to go. Further to that you provide hidden markers along the way that instruct the vehicle to speed up or slow down. Get this. You can have the plugin make the brake lights come on when the brakes are applied. I should have mentioned that naturally the steering can be made to turn realistically. The car won't follow the spline exactly especially if you tell it to be moving at say 100 km/h and come to a sharp bend. It will slide off the road and then eventually come back on to it if it didn't roll. Have too much acceleration and you'll fish tail all over the place. I have to admit that this plugin has probably provided the most fun I've had animating in quite some time.
The amazing thing is the simulation is generated and played back in close to real time. I measured this running my Corvette simulation using a COFFEE script and I was getting around 20 fps (frames per second) almost all of the time (Project settings 30 fps). Perhaps I should mention that I'm running a new PC with a Core 2 Duo 2.4 Ghz CPU and nVidia 7900GS graphics card. You can speed things up by lowering the LOD (Level of detail) settings or disabling hypernurbs objects. Interesting by lowering the LOD and increasing the frame rate in the project settings to 100 I was able to get 59 fps in the viewport. Just incredible, no going out to put the jug on for a cup of coffee running simulations with DRIVE. This fast real time playback makes changing parameters and testing very easy which is just as well as to begin with you'll probably find that your splines are too tight and not replicating the normal driving that a car would do. But if you're like me making the car deliberately spin out and fish tail was just so much fun. I should mention here that a demo version of the plugin is available and you can load it up in a demo version of C4D and have an awful lot of fun and evaluate the plugin before buying.
If you are running a slow computer you can bake the animation by using the "Record" option and this generates extremely quickly. Once I recorded the simulation the fps increased to around 28-29 fps. Recording the simulation also allows you to save the scene and someone else without the DRIVE plugin can load and play the animation. You can have more than one car in the scene and you're only really limited by the power of your computer.
The easiest way to get moving is to let the plugin create a "Route" object for you. This is just a null object but correctly named, linked to the Drive plugin and with the necessary tag. This sets things up with a short linear spline. It's then a simple matter to replace this spline with your own spline of where you would like the vehicle to go. After you've set up spline you define speed markers along the spline. This is very easy to do. An interesting thing is the virtual driver of the car has to learn to drive the route. What this means is that after several simulations the driving will have improved. Here's what a simple route looks like with the speed points defined. The plugin creates the speed markers in the viewport and these do not render.
Click on the image for a larger version.
And here's the resulting animation. I've deliberately made the car go too fast and spinout. I'll go through how the skid, burnout and tyre smoke effects are done shortly. Normally you wouldn't render the start of the simulation as you can see the body sinking down into the suspension.
Click on the image to play the animation - XVid 4.7mb
Skid Marks and Tyre Smoke
Oh yeah baby!! Being able to leave skid marks and burn out marks or has the documentation calls them "Traces" really adds to the realism of your animation. In addition to the traces the plugin outputs data that can be used to drive particle emitters that can make your tyres give off tyre smoke. Cleverly the plugin knows when the wheels are spinning skidding or not touching the ground. But get this, for skid marks and burn out marks, all that you need to do is click a button and all of the splines and Sweepnurbs objects are automatically created for you. You can if you want add a bit of shape to your profile spline to simulate your vehicle driving through sand for example as it leaves marks. In this case you can disable the "Only when skidding" option so that when the tyres are on the ground the marks are more or less continuous. You're then left with the simple task of applying a material to 4 Sweepnurbs objects that were automatically created for you. Awesome stuff. If the animation is longer than about 10 seconds then you need to increase the maximum number of points for the points for the sweepnurbs objects, otherwise you won't have enough points to display the marks. This is done in the DRIVE simulation object. I had no trouble using higher values than the default 1000 points.
The manual shows you how to set standard particles to simulate gravel being sprayed out from the driving wheels. It's done via XPresso hooked to the visibility input port of the particle emitters. The DRIVE object is fully integrated to work with XPresso and you have access to many settings and outputs. Just a matter of hooking the skid output option to the emitter. The manual shows you how you can control the speed etc of the particles based upon the speed and radius of the wheel. It doesn't show you how to hook things to Thinking Particles but I found using the TP Surface Emitter presets hooked up the 2 rear wheel skid outputs to be very easy to set up and anyone with a basic knowledge of TP could do this as well. I didn't worry about using any of the DRIVE's XPresso node outputs to control the particles apart from turning the emitter on or off. I mentioned earlier that you can control the brake lights. This is done by a bit of simple XPresso. Anyway let's see another animation this time using an Aston Martin DB5 supplied by Cafe member Stoob. The resolution is higher in this animation and if you only download one animation then this is the one to watch. Look closely at the start and you'll see the brakes lights come on. This was just some very simple XPresso hooking up the light intensity to the brake output of the DRIVE simulation object using a compare node. The compare node just made the brake lights either on or off just so long as the brake pedal was had some pressure on it.
Click on the image to play the animation - XVid 8.3mb
Update - Video Tutorial on generating Tyre Smoke Now Available
Since writing the review I have made a video tutorial on how to do the tyre smoke with Thinking Particles. The tutorial can be downloaded here.
The World Isn't Flat
It's all very well driving your vehicles around on a flat plane but since this is a simulation plugin we can make our vehicles go over terrain and have the car and suspension react to the ground. If your terrain is rough then the wheels can leave the ground. In fact it's possible to roll your vehicle!!
Getting your vehicle to go over objects and terrain is very easy to set up. The plugin has a quick create button on the driving controls tab. After pressing this a Ground object null is created along with a simple polygon mesh. The mesh object gets a special ground tag applied to it so that the DRIVE simulation object knows to use this object in the dynamics calculations. It's a simple matter to replace this polygon object with your own object or a terrain object. The plugin only works with polygon objects however it will work with the parametric terrain object. If you want multiple objects/meshes/terrains you just create them and place them under the null and give them their own ground tag. On each ground tag you can define the traction for that particular surface. For example you can have some mud wheel spinning fun by lowering the traction amount. You can further define the traction on the object using a vertex map. There's 2 different kinds of collision detection. The fast 2D detection which works very well or the slower but still fast for me full 3D detection. I found the 3D detection worked best when I was doing jumps over ramps and rolling and crashing the car. You read that correct. The car can roll and crash as you would expect when you try to do crazy things.
Here's a couple of animations showing the car jumping. In the first one the car makes the jump. In the second I've made the Corvette have a small accident!! The sparks is just a standard particle emitter.
Click on the images to play the animations - XVid 3.2mb
I haven't really mentioned suspension much part from saying that the body bounces around. To simulate the springs in suspension units it's a simple matter of using a helix spline that's part of a Sweepnurbs structure as child object of the Suspension null objects that are part of the DRIVE simulation object. Below is an example from the DRIVE website of the suspension in action.
Suspension reacting with the ground
Documentation / Manual
DRIVE comes with a comprehensive html based manual in both English and German. It's indexed on the left had side and as you select topics they are shown in the right hand window. There's a search option that searches on words. This works very well and highlights the result on the first page where the word occurs. To get subsequent pages where the word occurs you click the search button again. I found the documentation very well written, thorough and a cut above what you often get with plugins. It's clear that the DRIVE plugin has been a labour of love by the developer. Here's an example of the manual.
Click on the image for a larger version
You have probably guessed by now that I really loved this plugin. I haven't had so much fun animating in a long time. Initially the plugin appears complex and it is but after a few goes doing things it's pretty straight forward. There's loads of options for you to customize how your vehicle behaves but you can get some great results just using the default settings.
I've only scratched the surface of what the plugin can do in this review and there's still a lot of finer points that I've yet to delve into. You can if you want drive a bit more sedately without all of the skidding and wheel spinning. This takes a bit of work by the way.
I can only say, go get the demo and have go yourself. Better still, buy the plugin. You won't be sorry.
The price of the plugin is EUR 125.21 or US $161.90 so it isn't cheap but pretty competitive compared to other plugins out there. One should also take into account the development work that's undoubtedly gone into producing this plugin so the price seems fair.
DRIVE is available for Windows, Windows XP 64 bit and MacOS X and C4D 9.6 or higher. This review was on a Windows PC running XP Home and I found the plugin to be very stable. Shortly after finishing the review the developer released a minor upgrade that addresses a few small issues.
Goodbye and safe driving!!
Reviewed by 3DKiwi (Nigel Doyle)