OpenSim: Test Véhicules
Généralités
Contrôles possibles
- moteurs linéaires et angulaires,
- braquage au niveau des vitesses linéaires et angulaires,
- frottements linéaires et angulaires,
- lévitation au dessus d’un terrain ou de l’eau ou à une altitude fixe
- l’inclinaison dans les virages.
Les fonctions de véhicules
llSetVehicleType
Définit le type de véhicule parmi l'un des types par défaut. Partiellement implémentée dans OpenSim.
- VEHICLE_TYPE_NONE : Désactive le mode véhicule
- VEHICLE_TYPE_SLED : Véhicule de type traineau (cogne contre le sol et se déplace mieux sur son axe x.)
- VEHICLE_TYPE_CAR : Véhicule qui rebondit sur le sol mais dont les moteurs doivent être pilotés par des commandes externes ou des événements de type timer.
- VEHICLE_TYPE_BOAT : Véhicule de type bateau (flotte sur l'eau avec beaucoup de frottement et un freinage angulaires important.)
- VEHICLE_TYPE_AIRPLANE : Véhicule de type avion (Utilise la déflexion linéaire pour la portance,le frein fait monter, pas de vol stationnaire et utilisation de l'inclinaison pour tourner.
- VEHICLE_TYPE_BALLOON : Véhicule de type dirigeable (Vol stationnaire, et friction, mais sans freinage)
llSetVehicleFloatParam
Définit le paramètre param de type float à une des constante prédéfinie. Partiellement implémentée dans OpenSim.
- VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY : Braquage : va de 0 (aucun) à 1 (braquage maximal)
- VEHICLE_ANGULAR_DEFLECTION_TIMESCALE : Temps nécessaire au véhicule pour réaliser un braquage angulaire complet.
- VEHICLE_BANKING_EFFICIENCY : Inclinaison dans les virages : -1 (inclinaison vers l'extérieur), 0 (pas d'inclinaison) et +1 (inclinaison vers l'interieur)
- VEHICLE_BANKING_MIX : Uniformité de l'inclinaison : va de 0 (inclinaison statique) à 1 (inclinaison dynamique)
- VEHICLE_BANKING_TIMESCALE : Temps nécessaire au véhicule pour que l'inclaison dans les virages prenne complétement effet.
- VEHICLE_BUOYANCY : Levitation : va de -1 (gravité-double) et 1 (zéro gravité)
- VEHICLE_HOVER_HEIGHT : Hauteur cible de la lévitation.
- VEHICLE_HOVER_EFFICIENCY : Efficacité de la lévitation : va de 0 (élastique) et 1 (amortissement important)
- VEHICLE_HOVER_TIMESCALE : Temps nécessaire au véhicule pour atteindre sa hauteur de lévitation
- VEHICLE_LINEAR_DEFLECTION_EFFICIENCY : Efficacité du freinage : va de 0 (aucun freinage) à 1 (freinage maximal)
- VEHICLE_LINEAR_DEFLECTION_TIMESCALE : Temps nécessaire au véhicule pour réorienter la vitesse selon l'axe x.
- VEHICLE_VERTICAL_ATTRACTION_TIMESCALE : Temps nécessaire au véhicule pour aligner son axe z sur celui du monde (verticale)
llSetVehicleVectorParam
Définit le paramètre param à l'aide d'un vecteur . Partiellement implémentée dans OpenSim.
- VEHICLE_ANGULAR_FRICTION_TIMESCALE : Temps nécessaire à la réduction de la vitesse angulaire sur les 3 axes du véhicule.
llSetVehicleRotationParam
Définit le paramètre param à l'aide d'une rotation. Partiellement implémentée dans OpenSim.
- VEHICLE_REFERENCE_FRAME : Rotation des axes du véhicule.
llSetVehicleFlags
Pas implémentée dans OpenSim
llRemoveVehicleFlags
Pas implémentée dans OpenSim
Quelques infos
Délais
- Très maniable : délai court, 1 seconde ou moins.
- Désactiver un comportement : 300 secondes (5 minutes) ou plus.
- Délai 0 : équivalent au plus petit délai possible mais n'est pas 0.
Étepas
Définir le type de véhicule
- Avant que l'objet soit physique
- Voir la liste
- Pour chaque type il existe des paramètres par défaut.
Définir l'état physique de l'objet
- llSetPrimitiveParams([ PRIM_PHYSICS, integer boolean ]);
- llSetPhysicsMaterial( integer mask, float gravity_multiplier, float restitution, float friction, float density );
Tests de scripts
Chute d'objets
- Ce script permet de faire tomber un objet plus ou moins vite.
- On peut s'asseoir sur l'objet.
- Le deuxième paramètre correspond à la gravité, 0.9 c'est comme sur terre, 0.1 c'ets très très lent.
- Types de véhicules :
- Avec VEHICLE_TYPE_CAR : tombe assez droit, sur un terrain plat l'objet s'enfonce un peu dans le sol
- Avec VEHICLE_TYPE_SLED : il ne descend pas droit mais sans une force le pousse (le vent ?) et accélaire.
- Avec VEHICLE_TYPE_BOAT : L'objet ne bouge pas.
- VEHICLE_TYPE_AIRPLANE : tombe assez droit et glisse un peu sur le sol, pas très longtemps.
- VEHICLE_TYPE_BALLOON : tombe tout droit, s'enfonce pas mal dans le sol.
<syntaxhighlight lang ='lsl'>
default
{
state_entry() { llSetVehicleType(VEHICLE_TYPE_CAR); llSetPhysicsMaterial(GRAVITY_MULTIPLIER | RESTITUTION | FRICTION | DENSITY, 0.2,0.9,1.0,1.0); llSetPrimitiveParams([ PRIM_PHYSICS, TRUE ]); }
} </syntaxhighlight>