« OpenSim: Test Véhicules » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Ligne 67 : Ligne 67 :
* On peut s'asseoir sur l'objet.
* 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.  
* 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 : sur un terrain plat l'objet s'enfonce dans le sol
** Avec VEHICLE_TYPE_SLED : il arrive au sol et glisse
<syntaxhighlight lang ='lsl'>
<syntaxhighlight lang ='lsl'>
  default
  default

Version du 22 avril 2022 à 16:01

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 : sur un terrain plat l'objet s'enfonce dans le sol
    • Avec VEHICLE_TYPE_SLED : il arrive au sol et glisse

<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>

Sources