Skip to content

Latest commit

 

History

History
320 lines (223 loc) · 15 KB

class_vehiclewheel.rst

File metadata and controls

320 lines (223 loc) · 15 KB
github_url:hide

VehicleWheel

Inherits: :ref:`Spatial<class_Spatial>` < :ref:`Node<class_Node>` < :ref:`Object<class_Object>`

Physics object that simulates the behavior of a wheel.

Description

This node needs to be used as a child node of :ref:`VehicleBody<class_VehicleBody>` and simulates the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface.

Properties

:ref:`float<class_float>` :ref:`brake<class_VehicleWheel_property_brake>` 0.0
:ref:`float<class_float>` :ref:`damping_compression<class_VehicleWheel_property_damping_compression>` 0.83
:ref:`float<class_float>` :ref:`damping_relaxation<class_VehicleWheel_property_damping_relaxation>` 0.88
:ref:`float<class_float>` :ref:`engine_force<class_VehicleWheel_property_engine_force>` 0.0
:ref:`float<class_float>` :ref:`steering<class_VehicleWheel_property_steering>` 0.0
:ref:`float<class_float>` :ref:`suspension_max_force<class_VehicleWheel_property_suspension_max_force>` 6000.0
:ref:`float<class_float>` :ref:`suspension_stiffness<class_VehicleWheel_property_suspension_stiffness>` 5.88
:ref:`float<class_float>` :ref:`suspension_travel<class_VehicleWheel_property_suspension_travel>` 5.0
:ref:`bool<class_bool>` :ref:`use_as_steering<class_VehicleWheel_property_use_as_steering>` false
:ref:`bool<class_bool>` :ref:`use_as_traction<class_VehicleWheel_property_use_as_traction>` false
:ref:`float<class_float>` :ref:`wheel_friction_slip<class_VehicleWheel_property_wheel_friction_slip>` 10.5
:ref:`float<class_float>` :ref:`wheel_radius<class_VehicleWheel_property_wheel_radius>` 0.5
:ref:`float<class_float>` :ref:`wheel_rest_length<class_VehicleWheel_property_wheel_rest_length>` 0.15
:ref:`float<class_float>` :ref:`wheel_roll_influence<class_VehicleWheel_property_wheel_roll_influence>` 0.1

Methods

:ref:`float<class_float>` :ref:`get_rpm<class_VehicleWheel_method_get_rpm>` ( ) const
:ref:`float<class_float>` :ref:`get_skidinfo<class_VehicleWheel_method_get_skidinfo>` ( ) const
:ref:`bool<class_bool>` :ref:`is_in_contact<class_VehicleWheel_method_is_in_contact>` ( ) const

Property Descriptions

Default 0.0
Setter set_brake(value)
Getter get_brake()

Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.


Default 0.83
Setter set_damping_compression(value)
Getter get_damping_compression()

The damping applied to the spring when the spring is being compressed. This value should be between 0.0 (no damping) and 1.0. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car.


Default 0.88
Setter set_damping_relaxation(value)
Getter get_damping_relaxation()

The damping applied to the spring when relaxing. This value should be between 0.0 (no damping) and 1.0. This value should always be slightly higher than the :ref:`damping_compression<class_VehicleWheel_property_damping_compression>` property. For a :ref:`damping_compression<class_VehicleWheel_property_damping_compression>` value of 0.3, try a relaxation value of 0.5.


Default 0.0
Setter set_engine_force(value)
Getter get_engine_force()

Accelerates the wheel by applying an engine force. The wheel is only speed up if it is in contact with a surface. The :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration.

Note: The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.

A negative value will result in the wheel reversing.


Default 0.0
Setter set_steering(value)
Getter get_steering()

The steering angle for the wheel. Setting this to a non-zero value will result in the vehicle turning when it's moving.


Default 6000.0
Setter set_suspension_max_force(value)
Getter get_suspension_max_force()

The maximum force the spring can resist. This value should be higher than a quarter of the :ref:`RigidBody.mass<class_RigidBody_property_mass>` of the :ref:`VehicleBody<class_VehicleBody>` or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number.


Default 5.88
Setter set_suspension_stiffness(value)
Getter get_suspension_stiffness()

This value defines the stiffness of the suspension. Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car.


Default 5.0
Setter set_suspension_travel(value)
Getter get_suspension_travel()

This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car.


Default false
Setter set_use_as_steering(value)
Getter is_used_as_steering()

If true, this wheel will be turned when the car steers. This value is used in conjunction with :ref:`VehicleBody.steering<class_VehicleBody_property_steering>` and ignored if you are using the per-wheel :ref:`steering<class_VehicleWheel_property_steering>` value instead.


Default false
Setter set_use_as_traction(value)
Getter is_used_as_traction()

If true, this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with :ref:`VehicleBody.engine_force<class_VehicleBody_property_engine_force>` and ignored if you are using the per-wheel :ref:`engine_force<class_VehicleWheel_property_engine_force>` value instead.


Default 10.5
Setter set_friction_slip(value)
Getter get_friction_slip()

This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.

It's best to set this to 1.0 when starting out.


Default 0.5
Setter set_radius(value)
Getter get_radius()

The radius of the wheel in meters.


Default 0.15
Setter set_suspension_rest_length(value)
Getter get_suspension_rest_length()

This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest.


Default 0.1
Setter set_roll_influence(value)
Getter get_roll_influence()

This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will be prone to rolling over, while a value of 0.0 will resist body roll.

Method Descriptions

Returns the rotational speed of the wheel in revolutions per minute.


Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road).


Returns true if this wheel is in contact with a surface.