Table of Contents
BTVehicle
This solver resembles a simple and highly optimized vehicle controller using a so called Raycast vehicle model. Instead of a complex “real world” simulation of each wheel and chassis as separate rigid bodies connected by joints, it simply uses a single rigid body for the chassis. Collision detection for the wheels is approximated by ray casts, and the tire friction is based on a simple anisotropic friction model. This approach to vehicle modelling is used in many commercial and non-commercial driving games an simulations.
The general method is by using the ray's intersection point to calculate the suspension length and the corresponding suspension force. This force is then applied to the chassis, keeping it from hitting the ground. Friction force is calculated for each wheel where the ray intersects with the ground, it's applied as a sideways and forwards force.
Operator Inputs
ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off'. You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator.
Time - (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.
Particle - (Particle) - This input data stream reads in the currently selected particle group. The data stream MUST be connected and will be highlighted yellow if it is not.
Vehicle Index - used to define which of the picked objects in the list are to be used as the next born vehicle. You may use any integer number to specify the next vehicle type, the list starts with 0 for the first picked car object.
Follow Path - use this input to specify the path the vehicles should use. You may specify different paths per vehicle as well.
UI Control Parameters - those input data streams are the equivalent of the UI controls, keep in mind that there is no visual indication that an operator is connected to any of those inputs! It might be needless to adjust a value if it gets overwritten by a connected operator.
Operator Outputs
Born Particle* - (Particle) This output data stream supplies the current particle information. Use this to modify specific particle properties.
Born Vehicle ID - counting from zero, this number indicates the “picked” car body that is output as a vehicle. Using this parameter, it gives access to the car body from the pick list.
Rollout Menu
Collision - Gives access to the available solvers. A thinkingParticles DynamicSet may have multiple solvers in a scene. To make sure that the correct solver is used, select the one from the drop down list you intend to use.
Pick Object List - shows you the object names that have been picked to act as a vehicle. Keep in mind that thinkingParticles analyses every object you pick, the objects you pick are car bodies- meaning every one of those objects has wheels linked to it. It does not matter if it's 1,2 or more wheels.
Pick Object - click this button to enter pick object mode, you may pick any object in the 3DS Max scene that should act as a car body. Keep in mind that a car body is an object that has wheels attached to it.
REM. - when clicked, the selected object will be deleted form the list
Tractor
Drive
Front, Rear, All - select one of the options to define the type of drive layout to be used with the vehicles.
Speed - sets the speed of the vehicle, this value represents a force. Higher numbers will result in a higher speed of the vehicle depending on the ground and friction.
Brake - adds a “breaking force” to the vehicle. The higher this value to stronger the breaking force will be.
Steer - sets the steering wheel angle from -90 to +90 degrees. The slider, found right below this control may also be used to steer the vehicle.
Wheel Locked: Front,Rear,All - select one of those options to activate the hand break. The effect is immediate, unlike the break force which kicks in gradually.
Body - sets the particle group to be used for the vehicle body. It is strongly recommended to create separate particle groups for the car bodies and wheels. Note, the vehicle solver does not need this special groups the information what a particle is, is attached to the particle itself. You may put a wheel particle in a smoke group or whereever you want it will not affects it “wheel” property at all.
Mass - defines the mass of the car body excluding the wheels. The mass of objects plays an important role when doing physics simulations, make sure the masses are properly balanced.
Wheel - sets the particle group to be used for storing the wheel particles. As explained in the car Body section above, the particles “know” what they are and where they belong to. It is strongly recommended, as it is with the car body, to create a separate particle group for the wheels only even though it is not needed for thinkingParticles and its solvers.
Mass - sets the individual mass of each wheel created.
Friction Slip - sets the coefficient of friction between the tire and the ground. Should be about 0.8 for realistic cars, but can easily be increased for better handling. In fact it all depends on the scale of the scene and how the vehicle is modelled.
Rolling Influence - reduces the rolling torque applied from the wheels that might cause the vehicle to roll over. It is a bit of a hack, but it's quite effective. A value of 0.0 means that a roll over will be prevented, 1.0 will act like in the real world and a vehicle actually can roll over.
Rotation X,Y,Z - sets the wheel rotational axis in object space. Depending on how the vehicle has been modeled it might be necessary to switch the rotational axis.
Suspension Axis X,Y,Z - sets the axis along which the shocks will compress.
Length - defines the length of the shocks. Keep in mind, as always, physics simulations depend heavily on a proper setup of the world.
Stiffness - sets the “stiffness” or overall strength of the shocks. Higher numbers will make the shocks appear much harder.
Damping - there are two possible dampening forces at work for the shocks. One force is responsible for counteracting compression of the shocks and one force would work against tension.
Relaxation - sets the counter-force for the relaxation phase of the shocks.
Compression - defines the counter-force for the compression phase of the shocks.
Max Travel - sets the maximum amount the springs can be compressed at which the shocks will provide their maximum force.
Why does my vehicle sink into the ground?
Whenever the suspension cannot support the weight of the vehicle, the wheels may start sinking through the ground. In such cases, increase Stiffness, Max Travel or Length. Increasing the length of the shocks too much might introduce instability into the simulation. Max Travels sets the maximum amount the springs can be compressed at which the shocks will provide their maximum force.
Max Force - sets the maximum force that can be applied to the shocks (when Max Travel is reached).
Trailer
A trailer comes with the same set of parameters of a vehicle, except that one or more trailers are linked together through a TP-JointBT helper to a tractor (vehicle). thinkingParticles treats trailers exactly like vehicles things like wheels, shocks and center of mass do all play a very big role in a simulation.
Body - sets the particle group to be used for the trailer body. It is strongly recommended to create separate particle groups for the trailer bodies and wheels. The default group will be the one of the tractor.
Mass - defines the mass of the trailer body excluding the wheels. The mass of objects plays an important role when doing physics simulations, make sure the masses are properly balanced between objects.
Wheel - sets the particle group to be used for storing the wheel particles. As explained in the trailer Body section above, the particles “know” what they are and where they belong to. It is strongly recommended, as it is with the trailer body, to create a separate particle group for the wheels, only - even though it is not needed for thinkingParticles and its solvers.
Mass - sets the individual mass of each wheel created.
Friction Slip - sets the coefficient of friction between the tire and the ground. Should be about 0.8 for realistic cars, but can easily be increased for better handling. In fact it all depends on the scale of the scene and how the vehicle is modelled.
Rolling Influence - reduces the rolling torque applied from the wheels that might cause the trailer to roll over. It is a bit of a hack, but it's quite effective. A value of 0.0 means that a roll over will be prevented, 1.0 will act like in the real world and a vehicle actually can roll over.
Brake - adds a “breaking force” to the trailer. The higher this value the stronger the breaking force will be. This value is actually “added” on-top of the breaking force of the vehicle.
Add Tractor Break - when checked, the trailer will get its full breaking force from the vehicle
Rotation X,Y,Z - sets the wheel rotational axis in object space. Depending on how the vehicle has been modeled it might be necessary to switch the rotational axis.
Suspension Axis X,Y,Z - sets the axis along which the shocks will compress.
Length - defines the length of the shocks. Keep in mind, as always, physics simulations depend heavily on a proper setup of the world.
Stiffness - sets the “stiffness” or overall strength of the shocks. Higher numbers will make the shocks appear much harder.
Damping - there are two possible dampening forces at work for the shocks. One force is responsible for counteracting the compression of the shocks and one force would work against tension.
Relaxation - sets the counter-force for the relaxation phase of the shocks.
Compression - defines the counter-force for the compression phase of the shocks.
Max Travel - sets the maximum amount the springs can be compressed at which the shocks will provide their maximum force.
Max Force - sets the maximum force that can be applied to the shocks (when Max Travel is reached).
Path Follow
thinkingParticles' vehicle solver supports an advanced path driving feature that allows to send vehicles along a path. Steering and speed is automatically handled when using paths which gives the vehicles a natural driving appearance. To use a path, the Path Follow input needs to supply a proper path for that particle.
Start - sets the distance to the start of the selected path. This distance is in world units.
Next Distance - defines the maximum distance between multiple vehicles on the path
Variation - used to randomize the Next Distance value.
Random Seed - sets a random seed value for this operator only
©2024, cebas Visual Technology Inc.