Physically correct vehicle animations
Perhaps you have already attempted to make an animation of a car. It is no big problem with a leisurely driving vehicle but as soon as dynamics become a factor – for example, with an oversteering racing car or an off-road vehicle on rough terrain – then it becomes much more arduous or almost impossible to achieve convincing results with classic key frame animation.
With DRIVE! you'll be amazed how playfully easy it is to make an appealing animation of a car.
It's not animated, it's simulated: the basic principle
If you have ever used CINEMA 4D Dynamics then you are probably already aware of the principle: The objects and a framework of conditions are created by you and then the simulation creates the physically correct course of movement.
The DRIVE! plug-in will set up a complete basis car with one mouse click. Adjust the measurements to your 3D model and move the car body and wheels into the appropriate container objects of the simulation. If you want to, you can edit the vehicle parameters to match the original model or to suit your own personal preferences. The figure on the right shows an overview of the many settings possibilities.
Let’s go! – vehicle controls
Spline objects on which you can position speed markers allow you to determine the driving path. Moreover, you can directly influence acceleration, braking, steering, or turn ABS and traction on and off with command objects, which are to be envisaged as a kind of switch that is sunken into the ground.
For the ground, polygon grids, landscape and relief objects are supported. 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 weight mapping.
DRIVE! will now move your vehicle according to your settings while taking physical laws into account. The car won’t be able to manage a sharp 90° curve at 100 km/h nor will it come to a dead stop from one second to the next even if your control object directs it to. That is why the result perhaps won’t always satisfy your expectations straight away. But it is fun to experiment with the various control dials and observe how it affects the behaviour of the car. Sometimes the unexpected results are even so good that you want to integrate them into your animation script.
While running, the simulation object outputs much data which you can use for simple XPresso switching. For example, spinning and sliding of the wheels can be transferred to emitter objects in order to trigger the simulation of smoke or gravel.
Some basis data already has triggers to other objects built in. For example, steering movement is sent to a steering wheel object as a rotation, or a brake light object is activated when the braking pressure reaches a certain value, or the current state of the shock absorbers controls the length of helix spline objects.
Optionally, the vehicle can leave behind tracks; as desired, only when the wheels spin or slide. The tracks are outputted as spline objects which make the tracks visible using any kind of profile splines in Sweep NURBS objects.
DRIVE! makes these output objects available with a click of the mouse. You don’t have to take care of the right 'wiring'.
When the simulation is running as you like it, you can record it as a conventional key frame animation and thus render it on computer systems on which DRIVE! is not installed. Optionally, the output data just described can be recorded so that even your XPresso wiring will continue to function without DRIVE!
Data and facts
DRIVE! contains a complete, speed optimised physics simulation that works with the Runge-Kutta integration method at a minimum of 1000 simulation steps per second. This corresponds to a 40x over-sampling at 25 images per second. Despite that, in a reduced scene in Cinema4D editor, a vehicle will still be able to turn its curves in real time.
Collisions with CRASHBOX
The most spectacular innovation is that vehicles can collide with other cars and rigid objects. Damages to the vehicle can be controlled by the simulation using various deformer objects. This feature is only available with the CRASHBOX Add-on.
The following new features are included in the free update:
Simulation object and vehicle objects
DRIVE! can now simultaneously simulate any number of vehicles that can interact with each other. All vehicle objects are subordinated to a simulation object. If several cars use the same driving line, they are automatically positioned in a row at the start and try (optionally) to comply with an adjustable minimum distance. By defining a lateral offset, you can avoid that all cars are lined up like pearls on a string.
Collisions of the body with the ground
In DRIVE! 1.0 the simulation was finished, when the car has rolled over. The new version calculates the collisions of the body to the ground, so that a car can roll over several times and can even continue to drive when it randomly comes back on its wheels. The shape of the body object is therefore not only defined by length, width and height, but also includes s simplyfied shape of the roof.
More precise drivability
The limitation of the steering rate was abolished. Entering a high value, e.g. 300°/sec, steering movements will be made very directly, which is noticeable especially in the car control when the tail swings off.
Editable start position
The starting position of the car is no longer necessarily at the beginning of the driving route. Additionally, you can choose the position of the first command object or enter the position and orientation numerically.
Improved learning mode
The results from the learning phase, are now almost 100% reproducible.
Animatable simulation parameters
In the new version you can now change more parameters than previously during the running simulation using key-frames or XPresso. Thus, you can e.g. create beautiful slow motion effects by changing the time scale.
Tracks with rail splines
Optionally, the tracks of the wheels can now be fitted with a rail spline, so that they always lie perfectly on the ground even in steep turns or sloping terrain.
Previously you had to create a data object to include the output of the vehicle data when recording the simulation to key-frames. In DRIVE! 1.5 animation tracks for the output data are assigned to the vehicle object, where you can select which data categories are recorded. For compatibility reasons and to ensure a "baked" scene with all XPresso connections will work also on computers without DRIVE!, the data object is still available.
Adjusting the DRIVE! container objects to the geometry of the car model is very simple now. You just have to isolate and group if applicable the body and the wheels. Centering the object axes is not necessary. With a click on a button DRIVE! creates the complete geometric setup automatically. All objects are inserted into the appropriate container objects, whereby not only wheels as a whole are recognized, but even child objects, that obviously are not able to roll, like the brake calipers.
The position of the body hasn't to be set higher anymore compensating the effect of the gravity on the suspension ¹. Thus, in edit mode the car looks like the original model.
Loading and saving setups
Setups can now be exchanged via a separate file. When loading, you can choose to include the geometry and collision data. Hence, you can create a library of several vehicles and share with other users.
Gimbal lock effect of the wheels eliminated
When setting a caster or camber angle, gimbal lock effects appeared when recording ("baking") the simulation, resulting in animation curves with drop-outs, that could lead to problems with motion blur. The new object structure of the wheels prevents this by moving the rotating parts of the wheel into a separate object. The former brake object has become obsolete.
Ground objects with multiple levels
Until now, you had to use several tricks to let cars drive on multiple levels. In the new version single ground objects as well as their assembly can consist of multiple levels.
Distance control and driving behavior
The distance control has been extended by several parameters. The percentual tolerance value makes the car reacting smoother when coming closer to the minimum distance. Using the scan angle you can reduce the distance control to a certain range. In edit mode, the scan range can be made visible. Depending on the current distance, the graphic is colored green, yellow or red. The limitation on cars, that share the same route, is now optional.
With the new parameter "speed" in the "routes" section, the speed given by the speed points can be varied individually. I.e., you can define how exactly the car meets the speed target. So several cars sharing the same route won't drive like strung pearls on a string. This results in vivid scenes when faster cars meet slower ones and are slowed down by the distance control...
Drive commands with selectable priority
Until now, the drive commands generated by the command objects had always the highest priority. Not only higher than the drive actions resulting from the speed points, but also higher than the brake actions required to meet the minimum distance. This is selectable now: The priority of the command objects is always higher than the speed points (otherwise the commands would be effectless), but can be set below or above the distance control. You should set it to top only, if you want to cause collisions.
More infos in the HUD
The HUD now shows the source of throttle, brake and steering. If the commands come from a command object or the drive route, a short version of the object name is displayed. If it is a direct input, e.g. via DirectControl, "DC" is displayed.
New Command Functions
With the new command Follow Object the car is now able to follow an animated object. You can select the driving direction and the distance, and the animation can optionally be triggered when touching the command object.
In combination with the new execution conditions "In Forward Gear" and "In Reverse Gear" precise manoeuvres can be realized much easier.
Another new command can be used to work with custom data sequences in XPresso to animate any parameters indepent of the time line.
Suspension objects shiftable
The suspension objects attached to the body are now also shiftable lengthwards. This makes it possible to build tilted dampers.
Car starts smoother
The initializing of the car, that is required to let the gravity take effect on the suspension, is now proceeded in the background. So the car is not shifted first, but starts now directly on the normal level.
Rear Axle Steering
The wheels of the rear axle can now be made steerable. The driving speed determines whether the wheels are turned parallel to the front wheels or in the opposite direction (see picture). At high speeds, the parallel steering results in a virtual increase of the wheelbase and thus more driving stability. At low speeds, the opposite steering causes a reduction of the wheelbase and thus a smaller turning circle.
You'll find an animation on this subject created with DRIVE! on Vimeo.
Removing the Simulation
With this function you can remove the DRIVE! software completely from the project after the keyframe recording of the simulation. The project can then be rendered on a computer without DRIVE! or be sent to a render service.
Parametric Objects in the Automatic Setup
Up to now, the Automatic Setup has only considered polygon objects for calculationg the dimensions of the model. The new version now supports all objects that have geometric dimensions.
(De) Activation of Individual Vehicles
The vehicle object is now designed as a generator object, i.e. it can be switched on (green tick) or off (red cross) in the Object Manager. Up to now, the editor visibility has been used to exclude cars from the simulation.
At start DRIVE! checks whether a newer version is available. Updates can be downloaded directly from CINEMA 4D. However, the installation has to be done as before using the installation program.
The body of the car can be forced on the movements of another object. So you can, for example, use a simple cube to apply animated sequences to the simulated car to create spectacular, physically perhaps impossible moves or simply force a car onto a driving line.
From the friction of the wheels with the ground, the simulation calculates the heat on the surface of the tyres. The friction is caused by slippage when accelerating or slipping when braking. The values can be mapped to a vertex map of a tyre polygon object, e.g. to dynamically change the texture of the tyre using a vertex map shader or to control an emitter for tyre smoke.
Collision Check with Underbody
So far, only the upper sides of the body have been checked for collision with the ground in order to realize a rollover of the car. Now, the underbody is also tested for ground contact. An adjustable vertical offset allows to take extending vehicle parts in the center (e.g., driveline or exhaust pipes) into account. With this feature, e.g. an off-roader can sit on a hilltop or a race car gets stuck in the gravel.
Vehicles can now change the the driving line, i.e. the route object. The command to change is transmitted to the car via a new command object. Thus, e.g. branches or overtaking maneuvers can be realized. This new feature entails that cars no longer drive the assigned routes in the order of the object hierachy, but always chooses the nearest starting point of all existing route splines.
Support of Command Instance Objects
Instead of the original, also an instance of a command object can now be located in the command objects group. Thus, the original can be placed anywhere on the object hierarchy. A typical application example would be a command to change lanes, which is placed in the body of a slow-moving vehicle. A faster car approaching from behind passes over this movable command object and changes the lane to overtake.
New Execution Condition for Commands
The previous condition "Stationary" for the execution of a command has been changed to the more flexible condition "Speed". Only if the car moves over the command object with the speed within the specified range, the command is executed. The previous "Stationary" behavior can be achieved with the value range from 0 to 1 km/h.
Improvements of the Gearbox
The gearbox has been stabilized and optimized for high engine performance. It should no longer come to simulation errors when using high gear ratios.
Size of Speed Points Adjustable
The drawing size of the speed points in the view port can now be edited.
Update DRIVE! 2.01
Improvements in Working with Speed Points
Speed points can now be positioned either percentual (as before) or metric. In the percentual positioning mode, the speed points retain their relative position when the spline object e.g. is scaled. When editing route splines in point mode, e.g. to extend the length, the metric positioning mode causes the speed points to remain in their absolute position.
Normally, the car has to drive a route with different speed points a few times to learn the driving commands necessary for the different speed data. This usually creates a natural-looking driving behavior. Alternatively, there is now the Cruise Control. With this option, the car drives right away with the right speed (as physically possible), which is interpolated very accurately between different speed points. The disadvantage is that a lot of small corrective interventions on the throttle and brake must be performed.