Vehicles
Introduced in
SL 1.1, these functions allow creating versatile vehicles with
physics that can slide, hover, fly, and float or dive.
Note: Unlike the rest of the official LSL guide, the vehicles section is quite good. See the original
LindenVehicleTutorial or the newer Wiki'fied version
Vehicle Tutorial.
Some of the behaviors enableable:
- deflection of linear and angular velocity to preferred axis of motion
- asymmetric linear and angular friction
- hovering over terrain/water or at a global height
- Turning on banking Originally this said "Banking on turns" which is not quite right. When enabled, this behaviour does not make an object bank if it turns, it makes the object turn if it banks- TiPBaKeR
- linear and angular motor for push and turning
Functions
Note: The
camera and
llSitTarget functions may be useful for vehicles as well.
Constants
(use the matching
llSetVehicle<Type>Param function from the table above)
| Constant | Value | Type | Description |
| VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY | 32 | float | slider between 0 (no deflection) and 1 (maximum strength) |
| VEHICLE_ANGULAR_DEFLECTION_TIMESCALE | 33 | float | exponential timescale for the vehicle to achieve full angular deflection |
| VEHICLE_ANGULAR_FRICTION_TIMESCALE | 17 | vector | vector of timescales for exponential decay of angular velocity about the three vehicle axes |
| VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE | 35 | float | exponential timescale for the angular motor's effectiveness to decay toward zero |
| VEHICLE_ANGULAR_MOTOR_DIRECTION | 19 | vector | angular velocity that the vehicle will try to achieve |
| VEHICLE_ANGULAR_MOTOR_TIMESCALE | 34 | float | exponential timescale for the vehicle to achive its full angular motor velocity |
| VEHICLE_BANKING_EFFICIENCY | 38 | float | slider between -1 (leans out of turns), 0 (no banking), and +1 (leans into turns) |
| VEHICLE_BANKING_MIX | 39 | float | slider between 0 (static banking) and 1 (dynamic banking) |
| VEHICLE_BANKING_TIMESCALE | 40 | float | exponential timescale for the banking behavior to take full effect |
| VEHICLE_BUOYANCY | 27 | float | slider between -1 (double-gravity) and 1 (full anti-gravity) |
| VEHICLE_HOVER_HEIGHT | 24 | float | height the vehicle will try to hover (*1) |
| VEHICLE_HOVER_EFFICIENCY | 25 | float | slider between 0 (bouncy) and 1 (critically damped) hover behavior |
| VEHICLE_HOVER_TIMESCALE | 26 | float | period of time for the vehicle to achieve its hover height |
| VEHICLE_LINEAR_DEFLECTION_EFFICIENCY | 28 | float | slider between 0 (no deflection) and 1 (maximum strength) |
| VEHICLE_LINEAR_DEFLECTION_TIMESCALE | 29 | float | exponential timescale for the vehicle to redirect its velocity to be along its x-axis |
| VEHICLE_LINEAR_FRICTION_TIMESCALE | 16 | vector | vector of timescales for exponential decay of linear velocity along the three vehicle axes |
| VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE | 31 | float | exponential timescale for the linear motor's effectiveness to decay toward zero |
| VEHICLE_LINEAR_MOTOR_DIRECTION | 18 | vector | linear velocity that the vehicle will try to achieve |
| VEHICLE_LINEAR_MOTOR_TIMESCALE | 30 | float | exponential timescale for the vehicle to achive its full linear motor velocity |
| VEHICLE_LINEAR_MOTOR_OFFSET | 20 | vector | offset from the center of mass of the vehicle where the linear motor is applied (new in 1.6) |
| VEHICLE_REFERENCE_FRAME | 44 | rotation | rotation of vehicle axes relative to local frame |
| VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY | 36 | float | slider between 0 (bouncy) and 1 (critically damped) attraction of vehicle z-axis to world z-axis (vertical) |
| VEHICLE_VERTICAL_ATTRACTION_TIMESCALE | 37 | float | exponential timescale for the vehicle to align its z-axis to the world z-axis (vertical) |
(*1) - The height value is interpreted ground-relative, water-relative or global-position-based according to the hover-related flags (see
llSetVehicleFlags). A height larger than 100m seems interpreted as 100.
(so when something should be able to go inland, which can easily be 40m up, over 100m in mountain areas, try not to use global height.) Values of 0.0 and below give no response. Very small values like 0.001 do, but objects don't seem to go lower than 2m.
Functions |
Constants