<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joshua+Philgarlic</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joshua+Philgarlic"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Joshua_Philgarlic"/>
	<updated>2026-07-26T10:58:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetStatus&amp;diff=1128595</id>
		<title>LlSetStatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetStatus&amp;diff=1128595"/>
		<updated>2010-12-16T14:13:29Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: Undo revision 1128561 by Joshua Philgarlic (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-6549}}{{Issues/SVC-5531}}{{Issues/SVC-1773}}{{Issues/SVC-4197}}{{Issues/SVC-5723}}{{LSL_Function/boolean|value|bool=*}}{{LSL_Function&lt;br /&gt;
|func_id=45|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetStatus&lt;br /&gt;
|p1_type=integer|p1_name=status|p1_desc=bit mask, STATUS_* flags&lt;br /&gt;
|p2_type=integer|p2_name=value&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Sets the object status attributes indicated in the &#039;&#039;&#039;status&#039;&#039;&#039; mask to &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*Status is an object attribute; all prims in an object share the same status.&lt;br /&gt;
** Except for [[STATUS_BLOCK_GRAB]], this only affects the prim the script is in, child prims in linked objects will not be affected.&lt;br /&gt;
***Use [[STATUS_BLOCK_GRAB_OBJECT]] to block grabbing of a link_set.&lt;br /&gt;
*STATUS_PHYSICS fails silently in attached objects, regardless of setting.&lt;br /&gt;
|constants={{LSL Constants/Status}}&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetStatus( STATUS_DIE_AT_EDGE | STATUS_PHYSICS, TRUE);&lt;br /&gt;
        llSetStatus( STATUS_ROTATE_X | STATUS_ROTATE_Y, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetStatus]]|Gets the object status.}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1&lt;br /&gt;
|cat2=Status&lt;br /&gt;
|cat3=Physics&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSetStatus&amp;diff=1128561</id>
		<title>LlSetStatus</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSetStatus&amp;diff=1128561"/>
		<updated>2010-12-16T02:26:01Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-5531}}{{Issues/SVC-1773}}{{Issues/SVC-4197}}{{Issues/SVC-5723}}{{LSL_Function&lt;br /&gt;
|func_id=45|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSetStatus&lt;br /&gt;
|p1_type=integer|p1_name=status|p1_desc=bit mask, STATUS_* flags&lt;br /&gt;
|p2_type=integer|p2_name=value|p2_desc=boolean&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Sets the object status attributes indicated in the &#039;&#039;&#039;status&#039;&#039;&#039; mask to &#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*Status is an object attribute; all prims in an object share the same status.&lt;br /&gt;
** Except for STATUS_BLOCK_GRAB, this only affects the prim the script is in, child prims in linked objects will not be affected.&lt;br /&gt;
*STATUS_PHYSICS fails silently in attached objects, regardless of setting&lt;br /&gt;
|constants={{LSL Constants/Status}}&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSetStatus( STATUS_DIE_AT_EDGE | STATUS_PHYSICS, TRUE);&lt;br /&gt;
        llSetStatus( STATUS_ROTATE_X | STATUS_ROTATE_Y, FALSE);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llGetStatus]]|Gets the object status.}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1&lt;br /&gt;
|cat2=Status&lt;br /&gt;
|cat3=Physics&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94558</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94558"/>
		<updated>2008-10-06T08:52:38Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I live in {{SLurl|region=Atmosphere|x=228|y=171|z=25|title=Atmosphere}} and I own a little shop. Don&#039;t forget to visit my volcano!&lt;br /&gt;
{{skills &lt;br /&gt;
|Builder=* &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94557</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94557"/>
		<updated>2008-10-06T08:51:57Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I live in {{SLurl|region=Atmosphere|x=228|y=171|z=25|title=Atmosphere}} and I own a little shop. Don&#039;t forget to visit my volcano!&lt;br /&gt;
{{ISO_639-3/cat-speaking/User|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/User|deu}}  &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder=* &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94556</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94556"/>
		<updated>2008-10-06T08:51:32Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I live in {{SLurl|region=Atmosphere|x=228|y=171|z=25|title=Atmosphere}} and I own a little shop. Don&#039;t forget to visit my volcano!&lt;br /&gt;
{{ISO_639-3/cat-speaking/Residents|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Residents|deu}}  &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder=* &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94555</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94555"/>
		<updated>2008-10-06T08:48:47Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I live in {{SLurl|region=Atmosphere|x=228|y=171|z=25|title=Atmosphere}} and I own a little shop. Don&#039;t forget to visit my volcano!&lt;br /&gt;
{{skills &lt;br /&gt;
|Builder=* &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94554</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=94554"/>
		<updated>2008-10-06T08:47:37Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in {{SLurl|region=Atmosphere|x=228|y=171|z=25|title=Atmosphere}} and I own a little shop. Don&#039;t forget to visit my volcano!&lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial/fr&amp;diff=58170</id>
		<title>Linden Vehicle Tutorial/fr</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial/fr&amp;diff=58170"/>
		<updated>2008-03-11T19:42:10Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: The &amp;quot;&amp;lt; &amp;gt;&amp;quot; in &amp;quot;rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&amp;quot; have been missing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Multi-lang}}{{LSL_Header/fr}}&lt;br /&gt;
&lt;br /&gt;
== Les Véhicules ==&lt;br /&gt;
&lt;br /&gt;
La création de véhicules dans Second Life est une nouvelle fonctionnalité à présent disponible via le LSL. Ce tutorial détaille  les bases nécessaires à la création de ces véhicules, des informations complémentaires sont consultables dans les pages relatives aux fonctions et aux codes décrits ici. &lt;br /&gt;
&lt;br /&gt;
Il existe, à ce jour, deux méthodes permettant de rendre un objet mobile dans SL. L’une d’elle consiste à le transformer en véhicule. Cette méthode est suffisamment souple pour créer des véhicules qui glissent, lévitent, volent ou flottent. De plus certains comportements spécifiques peuvent être créés :&lt;br /&gt;
*Le contrôle des moteurs linéaires et angulaires pour pousser un objet dans une direction ou le faire pivoter sur lui même.&lt;br /&gt;
*Le contrôle du braquage au niveau des vitesses linéaires et angulaires&lt;br /&gt;
*Le contrôle des frottements linéaires et angulaires.&lt;br /&gt;
*Le contrôle de la lévitation au dessus d’un terrain ou de l’eau ou à une altitude fixe.&lt;br /&gt;
*Le contrôle de l’inclinaison dans les virages.&lt;br /&gt;
&lt;br /&gt;
== Vue  Générale ==&lt;br /&gt;
&lt;br /&gt;
Il est possible de configurer le comportement d’un objet grâce aux fonctions [[llSetVehicleType/fr|llSetVehicleType]],&lt;br /&gt;
[[llSetVehicleFloatParam/fr|llSetVehicleFloatParam]], [[llSetVehicleVectorParam/fr|llSetVehicleFloatParam]], [[llSetVehicleRotationParam/fr|llSetVehicleRotationParam]], [[llSetVehicleFlags/fr|llSetVehicleFlags/fr]] et [[llRemoveVehicleFlags/fr|llRemoveVehicleFlags]].&lt;br /&gt;
&lt;br /&gt;
Les fonctionnalités disponibles au travers de ces fonctions sont décrites un peu plus loin. La chose importante à noter ici est que le comportement d’un véhicule est défini par une série de paramètres ajustables. Ce sont ces paramètres qui permettront de décider si un objet pourra flotter comme un bateau ou glisser comme un traîneau.&lt;br /&gt;
&lt;br /&gt;
Il existe par ailleurs, une série de codes permettant de déroger au fonctionnement standard. Une partie de ces codes ne sont par ailleurs effectifs que dans certaines situations.&lt;br /&gt;
Par exemple, le code  [[VEHICLE_FLAG_HOVER_WATER_ONLY/fr|VEHICLE_FLAG_HOVER_WATER_ONLY]] fera léviter un objet sans tenir compte de l’altitude du terrain mais ce code ne fonctionnera que si l’objet est capable de léviter.&lt;br /&gt;
&lt;br /&gt;
== Points d’attention==&lt;br /&gt;
&lt;br /&gt;
La notion de véhicules a été récemment ajoutée à Second life et certains de leur comportement évolueront encore. Il est possible, par exemple, que les limites décrites dans la suite du document évoluent (ou aient même déjà évolué). Afin d’être sure d’avoir des informations à jour, n’hésitez pas à vous reporter aux fiches descriptives des fonctions et des valeurs.&lt;br /&gt;
&lt;br /&gt;
Il n’est pas recommandé de mixer certaines fonctionnalités avec celles relatives aux véhicules. &lt;br /&gt;
Les fonctions permettant d’appliquer des poussées sur des objets ne doivent pas être combinées à celles relatives aux véhicules : [[llSetBuoyancy/fr|llSetBuoyancy]], [[llSetForce/fr|llSetForce]], [[llSetTorque/fr|llSetTorque]] et [[llSetHoverHeight/fr|llSetHoverHeight]] &lt;br /&gt;
&lt;br /&gt;
Il est déconseiller de mixer les fonctions suivantes avec celles relatives aux véhicules aux risque de provoquer un comportement curieux ou inattendu : [[llLookAt/fr|llLookAt]], [[llRotLookAt/fr|llRotLookAt]], [[llMoveToTarget/fr|llMoveToTarget]] et [[llTargetOmega/fr|llTargetOmega]].&lt;br /&gt;
&lt;br /&gt;
Si vous pensez avoir trouvé une anomalie relative aux véhicules, il vous est  possible d’envoyer une copie de votre script à &amp;quot;Andrew Linden&amp;quot; avec un commentaire ou note explicative. Nommer vos envois &amp;quot;Bugged Vehicle XX&amp;quot; ou XX correspond à vos initiales. Le véhicule et le script seront examinés aussi vite que possible.&lt;br /&gt;
&lt;br /&gt;
== Les définitions ==&lt;br /&gt;
&lt;br /&gt;
Les termes &#039;&#039;roulis&#039;&#039; ou  &#039;&#039;tangages&#039;&#039; et sont souvent utilisés pour décrire un type de rotation effectuée par des bateaux ou des avions selon un axe qui leur est relatif (par exemple, un bateau tangue selon un axe central à sa coque).&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Tait-Bryan_angles&lt;br /&gt;
&lt;br /&gt;
La « technique de la main droite » est souvent utilisée comme introduction aux cours de physique afin de définir les rotations positives. Un exemple courant consiste à utiliser la « technique de la main droite » pour modéliser le roulement d’un bateau ou d’un avion. Placez votre pouce dans l’axe de l’avion  (axe x) et repliez les doigts vers l’intérieur de la main, votre main s’incline naturellement dans le sens ou l’avion devrait pivoter, votre main effectue une rotation dans le sens positif.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Right_hand_rule&lt;br /&gt;
&lt;br /&gt;
La plupart des paramètres contrôlant le comportement des véhicules sont sous la forme : VEHICLE_&#039;&#039;&#039;COMPORTEMENT&#039;&#039;&#039;_TIMESCALE&lt;br /&gt;
&lt;br /&gt;
Le délai (ou timescale) appliqué au  &#039;&#039;&#039;COMPORTEMENT&#039;&#039;&#039; être interprétable comme le temps nécessaire pour que l’action induite fasse effet (délai entre la décision et son entière application). Les fonctions travaillent sur une échelle exponentielle, un cœfficient de 1/e est appliqué (&#039;&#039;e&#039;&#039; correspond à l’exposant (environ 2.718281828)). &lt;br /&gt;
Si vous souhaitez un véhicule très maniable, utilisez un délai court (une seconde voire moins). Un délai de 300 secondes (5 minutes) ou plus désactivera un comportement.&lt;br /&gt;
Pour des raisons techniques, il existe un délai minimal de l’ordre du dixième de seconde. Mettre un délai à 0 sera toujours équivalent au plus petit délai possible.&lt;br /&gt;
&lt;br /&gt;
==  Paramétrer le type de véhicule ==&lt;br /&gt;
&lt;br /&gt;
Avant de commencer à définir  les paramètres d’un véhicule, il est indispensable d’indiquer le type de véhicule. Cette donnée est fixée avec la fonction [[llSetVehicleType/fr|llSetVehicleType]] et un paramètre de type &#039;&#039;&#039;VEHICLE_TYPE_*&#039;&#039;&#039;. Le paramètre [[VEHICLE_TYPE_NONE/fr|VEHICLE_TYPE_NONE]] désactivera le mode véhicule. Consultez  la page sur {{LSLGC/fr|Vehicle|les types de véhicules}} pour connaître les options disponibles. Cette liste devrait s’agrandir avec le temps.&lt;br /&gt;
&lt;br /&gt;
Paramétrer le type de véhicule est indispensable pour permettre à un objet de se comporter comme un véhicule et pour définir des paramètres par défaut.&lt;br /&gt;
Pour chaque type de véhicule, vous trouverez la liste des valeurs par défaut. Ce ne sont pas nécessairement des valeurs optimales et il est possible de les modifier. Il est obligatoire d’indiquer un type de véhicule même pour créer un véhicule original ou expérimental&lt;br /&gt;
&lt;br /&gt;
Indiquer un type de véhicule ne rend pas automatiquement l’objet mobile, mais vous devriez éviter de créer un véhicule lorsque votre objet est libre de ces mouvements et placé au sommet d’une colline car il pourrait commencer à se déplacer tout seul.&lt;br /&gt;
&lt;br /&gt;
Nous sommes toujours à la recherche de paramètres optimaux, si vous pensez avoir trouvé un jeu de règles plus réaliste ou efficace, vous pouvez les envoyer à Andrew Linden via un script ou une note.&lt;br /&gt;
&lt;br /&gt;
==  Le braquage linéaire et angulaire ==&lt;br /&gt;
&lt;br /&gt;
Une fonction récurrente des véhicules réels est l’existence d’un axe préférentiel de déplacement. Cet axe vient de leurs roues, de leurs ailes, de leur forme ou de leur méthode de propulsion. Ils ont tendance à se déplacer selon cet axe et/ou d’y revenir naturellement. Cet axe est statique dans le référentiel du véhicule.&lt;br /&gt;
&lt;br /&gt;
Prenons par exemple une fléchette, elle possède des palmes à l’arrière qui, par les frottements de l’air, est capable de naturellement s’aligner dans le sens du mouvement. C’est cet effet qui est appelé « braquage angulaire » (rotation de l’objet).&lt;br /&gt;
&lt;br /&gt;
Un engin sur roues présente un effet différent, quand un skateboard est poussé dans une direction, il a tendance à se réorienter dans l’axe de roulement. C’est cet effet qui est appelé « braquage linéaire » (rotation de la vitesse)&lt;br /&gt;
&lt;br /&gt;
Ainsi, un véhicule de Second Life est un véhicule avec un braquage linéaire et angulaire le long d’axes préférentiels dans le référentiel de la prim racine.&lt;br /&gt;
Prenons le cas d’un véhicule avec un axe préférentiel x :&lt;br /&gt;
* dans le cas du braquage linéaire, le script aura tendance à influer sur la direction jusqu&#039;à ce qu’elle pointe dans le sens positif de l’axe x.&lt;br /&gt;
* dans le cas du braquage angulaire, le script aura tendance à influer sur le véhicule jusqu’à ce qu’il pointe dans le sens du mouvement. &lt;br /&gt;
Les fonctionnalités applicables aux autres axes, sont décrites plus loin, comme l’attracteur vertical qui  soumet un véhicule à une force d’attraction (sur l’axe z)&lt;br /&gt;
Le référentiel du véhicule peut être différent de celui de la prim en utilisant [[VEHICLE_REFERENCE_FRAME/fr|VEHICLE_REFERENCE_FRAME]]. Cette fonctionnalité sera étudiée dans la suite du document.&lt;br /&gt;
&lt;br /&gt;
Selon le type de véhicule, il peut être souhaitable d’avoir un braquage linéaire ou angulaire plus ou moins fort. La force (ou vitesse d’application) du braquage est contrôlée à l’aide la fonction [[llSetVehicleFloatParam/fr|llSetVehicleFloatParam]]&lt;br /&gt;
&lt;br /&gt;
Les deux types de braquage ont un délai d’application (ou timescale) qui détermine à quelle vitesse le braquage influe sur le véhicule. Ce délai est un coefficient exponentiel représentant le temps nécessaire au braquage pour être entièrement appliqué au véhicule. Les véhicules se braquant rapidement doivent avoir un petit délai, par exemple une fléchette doit avoir un braquage angulaire de moins de 2 secondes et un  braquage linéaire de plusieurs secondes, car elle aura tendance à se réorienter avant d’influer sur sa direction. Pour une fléchette, vous pourriez utiliser les paramètres suivants :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 6.0);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Chacun des braquages a un coefficient d’efficacité variant de 0.0 à 1.0, à la différence des autres paramètres, il ne va pas de « élastique» (0.0) à « amorti » (1.0) mais de « pas de braquage » (0.0)  à « braquage maximum » (1.0). Ils se comportent un peu comme les délais d’application, mais sont normés entre 0 et 1.&lt;br /&gt;
&lt;br /&gt;
== Le déplacement du véhicule ==&lt;br /&gt;
&lt;br /&gt;
Une fois activé, le véhicule peut toujours être poussé et tourné par impulsion (forces extérieures ou  scripts utilisant [[llApplyImpulse/fr|llApplyImpulse]]), mais il faut garder à l’esprit les moteurs linéaires et angulaires rendent les mouvements plus fluides et rendent les déplacement bien plus paramétrable. Le déplacement d’un véhicule peut être piloté avec la fonction [[llSetVehicleVectorParam/fr|llSetVehicleVectorParam]].&lt;br /&gt;
Pour déplacer un objet à 5 mètres/seconde le long de son axe x (l’axe de la vue subjective), il suffit d’ajouter la ligne suivante à votre script :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;5, 0, 0&amp;gt;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour éviter aux véhicules de se déplacer trop vite, la vitesse maximale est de 30 mètres/seconde. Cette limitation vient des contraintes du moteur physique de SL et pourra être étendue ultérieurement.&lt;br /&gt;
&lt;br /&gt;
Jouer sur la vitesse ne suffit pas à créer des véhicules intéressants. &lt;br /&gt;
Vous pourriez par exemple vouloir créer une voiture capable d’atteindre immédiatement sa vitesse limite ou qui au contraire accélérerait progressivement. Cet effet peut être configuré avec le paramètre [[VEHICLE_LINEAR_MOTOR_TIMESCALE/fr|VEHICLE_LINEAR_MOTOR_TIMESCALE]]. Ce paramètre représente le temps nécessaire (sur une échelle exponentielle) au véhicule pour atteindre sa vitesse maximale.&lt;br /&gt;
&lt;br /&gt;
Que se passerait il si vous lanciez un véhicule à la pleine vitesse (vitesse du moteur linéaire)? En théorie, le véhicule devrait partir en ligne droite et ne jamais s’arrêter.&lt;br /&gt;
En fait, ce phénomène est également configurable grâce à une fonction simulant une perte de vitesse progressive. Immédiatement après qu’un moteur ait été sollicité, il commence alors à réduire sa vitesse selon un délai paramétré par [[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE/fr|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]]. De cette façon, passé un certain temps, les moteurs cessent d’avoir de l’effet et le véhicule s’arrête tout seul.&lt;br /&gt;
&lt;br /&gt;
Vu que ce délai ne peut dépasse 120 secondes et qu’il est permanent, il garantit qu’un véhicule ne roulera jamais éternellement (sans action manuelle et sans boucle logique).&lt;br /&gt;
&lt;br /&gt;
Ce paramètre peut être employé pour appliquer une impulsion. On peut par exemple configurer les touches haut/bas pour allumer ou atteindre le moteur d’une voiture, les deux touches modifie simplement le temps nécessaire au véhicule pour s’arrêter (délai court  = moteur éteint, petite impulsion avant de s’arrêter ; délai long = moteur allumé, grand impulsion avant arrêt du véhicule).&lt;br /&gt;
&lt;br /&gt;
Un moteur est réinitialisée à chaque fois que son paramétrage est modifié, un vector de vitesse nul n’a pas le même sens qu’une perte de vitesse rapide (délai nul). Dans le premier cas, le moteur va chercher à atteindre la vitesse nul, dans le second cas, le véhicule s’arrête immédiatement.&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_TIMESCALE/fr|VEHICLE_LINEAR_MOTOR_TIMESCALE]] est le temps nécessaire au moteur  pour appliquer la nouvelle vitesse.&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE/fr|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]] est le temps nécessaire au moteur pour repasser à une vitesse nulle.&lt;br /&gt;
&lt;br /&gt;
Mélanger les deux paramètres risque d’occasionner beaucoup de frustration vu leurs effets très différents...&lt;br /&gt;
&lt;br /&gt;
De plus, si la perte de vitesse est plus rapide que le temps nécessaire pour atteindre la vitesse cible du véhicule, alors l’efficacité globale du moteur est diminuée en conséquence.&lt;br /&gt;
&lt;br /&gt;
== L’orientation du véhicule ==&lt;br /&gt;
&lt;br /&gt;
Tout comme le moteur linéaire, il existe également un moteur angulaire (toujours actif) et dont la direction et la puissance sont configurables. Par exemple pour faire tourner un véhicule de 5 degrés/seconde autour de son axe Z (axe haut/bas), il suffit d’ajouter les lignes suivantes à votre script :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector angular_velocity = &amp;lt;0, 0, 5 * PI / 180&amp;gt;;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_velocity);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il  n’est actuellement pas possible de réaliser plus de 2 rotations / seconde. (4*PI radians/sec).&lt;br /&gt;
&lt;br /&gt;
Comme pour le moteur linéaire, il existe deux paramètres de temps :&lt;br /&gt;
[[VEHICLE_ANGULAR_MOTOR_TIMESCALE/fr|VEHICLE_ANGULAR_MOTOR_TIMESCALE]] et [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE/fr|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]] qui correspondent au temps nécessaire pour atteindre la vitesse maximale et au temps nécessaire pour repasser à une vitesse nulle (mis à 120 secondes par défaut)&lt;br /&gt;
Lorsque vous pivotez, vous souhaitez sûrement éviter que votre véhicule ne tourne trop vite ou trop longtemps. :&lt;br /&gt;
* Une façon de faire, consiste à utiliser le moteur angulaire avec une perte de vitesse longue mais avec un fort coefficient de frottement angulaire (de façon à provoquer une perte de vitesse rapide lorsque le moteur est arrêté). Puis d’appliquer une importante vitesse angulaire lorsque la touche est pressée et de repasser la vitesse à 0 lorsqu’elle est relâchée.&lt;br /&gt;
* Une autre façon de faire, consiste d’appliquer une petite durée au [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE/fr|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]] et d’utiliser une impulsion plus forte en jouant sur la réduction de la vitesse plutôt que sur les frottement.&lt;br /&gt;
&lt;br /&gt;
Comme pour le moteur linéaire, une vitesse angulaire nulle est différente d’une perte de vitesse immédiate (délai nul).  Une vitesse nulle imposera une transition depuis la vitesse actuelle du moteur angulaire, alors qu’un délai nul stoppera immédiatement la rotation.&lt;br /&gt;
&lt;br /&gt;
Pour certains véhicules, il sera possible d’appliquer une inclinaison pour tourner. Cette inclinaison est visible lorsque des avions ou des motos effectuent un virage. Cette inclinaison est réalisée suivant l’axe de roulement du véhicule. Cette fonctionnalité n’est disponible que lorsque l’attracteur vertical (décrit plus bas) est activé.&lt;br /&gt;
&lt;br /&gt;
== L’attracteur vertical ==&lt;br /&gt;
&lt;br /&gt;
Certains véhicules comme les bateaux gardent toujours leur face supérieure orientée vers le haut. Ce phénomène peut être reproduit à l’aide de l’attracteur vertical qui permet d’exécuter de petits bonds le long de l’axe z. &lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité s’utilise avec [[VEHICLE_VERTICAL_ATTRACTION_TIMESCALE/fr|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE]] pour contrôler la période des rebonds (ou la vitesse d’amortissement) et [[VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY/fr|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY]] pour contrôler le phénomène d’amortissement (0.0 : oscillations autour de la position d’équilibre // 1.0 : amortissement progressif vers la position d’équilibre)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 4.0);&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
L’attracteur vertical est désactivé si l’on positionne une période (ou timescale) supérieure à 300 secondes.&lt;br /&gt;
&lt;br /&gt;
Il faut noter que l&#039;attracteur vertical empêchera les véhicules de plonger et de grimper. Ainsi, si vous souhaitez réaliser une avion, il vous faudra probablement désactiver l&#039;attracteur le long de l&#039;axe de roulement à l&#039;aide du code :[[VEHICLE_FLAG_LIMIT_ROLL_ONLY/fr|VEHICLE_FLAG_LIMIT_ROLL_ONLY]]&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  L’inclinaison ==&lt;br /&gt;
&lt;br /&gt;
Cette fonctionnalité permet de pivoter le véhicule au moyen de rotations sur l&#039;axe de roulement du véhicule.&lt;br /&gt;
L&#039;attracteur vertical doit être activé si l&#039;on souhaite utiliser cette fonction.&lt;br /&gt;
L&#039;amplitude de l&#039;inclinaison est liée au paramètre [[VEHICLE_BANKING_COEF/fr|VEHICLE_BANKING_COEF]] qui indique l’amplitude de la rotation (et parfois la vitesse du véhicule autour de son axe préférentiel de déplacement).&lt;br /&gt;
&lt;br /&gt;
Le paramètre varie entre -1 et +1. &lt;br /&gt;
* Si le paramètre est positif, lors d’une rotation positive le long de l&#039;axe de roulement (inclinaison sur la droite) un couple négatif est appliqué ce qui fait tourner le véhicule à droite. C’est le phénomène observé sur les avions et les motos dans un virage.&lt;br /&gt;
* Si le paramètre est négatif, lors d’une rotation positive le long de l&#039;axe de roulement (inclinaison sur la droite), un couple positif est appliqué, ce qui fait tourner le véhicule à gauche. Ce phénomène ne correspond à aucune réalité physique, mais peut être utilisé par exemple pour créer des véhicules atypiques.&lt;br /&gt;
 &lt;br /&gt;
Le paramètre [[VEHICLE_BANKING_MIX/fr|VEHICLE_BANKING_MIX]] permet de changer les critères d&#039;inclinaison au lieu de laisser le moteur physique décider de l’inclinaison optimale.&lt;br /&gt;
&lt;br /&gt;
Prenons par exemple une moto, dans la réalité, elle ne peut s’incliner que lorsqu’elle est en mouvement, alors que dans les jeux vidéo, elle est capable de s’incliner au point mort. L&#039;interface des joueurs étant limitée, il est bien plus facile de contrôler un véhicule de cette façon. &lt;br /&gt;
Ce paramètre permet de combiner des inclinaisons réalistes et non réalistes. Il varie entre 0.0 (statique) et 1.0 (dynamique). &amp;quot;Statique&amp;quot; signifie que l&#039;inclinaison dépend uniquement de la rotation de l&#039;objet (application des lois physiques) alors que &amp;quot;dynamique&amp;quot; signifie que le vitesse de rotation est également prise en compte. Trouver la meilleure valeur nécessitera probablement beaucoup de tests.&lt;br /&gt;
 &lt;br /&gt;
Le temps nécessaire à l&#039;inclinaison pour contrecarrer une vitesse angulaire préexistante le long de l&#039;axe Z (et devenir visible) est déterminée par [[VEHICLE_BANKING_TIMESCALE/fr|VEHICLE_BANKING_TIMESCALE]]. Plus la valeur sera petite, plus l&#039;inclinaison sera prise en compte rapidement.&lt;br /&gt;
&lt;br /&gt;
==  Les frottements (ou résistances)  ==&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_LINEAR_FRICTION_TIMESCALE/fr|VEHICLE_LINEAR_FRICTION_TIMESCALE]] est un vector qui configure, pour les 3 axes, le temps nécessaire au véhicule pour s&#039;arrêter complètement (à cause des &amp;quot;frottements&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Les 3 valeurs sont dépendantes les unes des autres. Une voiture aura par exemple peu de frottement le long de son axe x et z (afin qu&#039;elle puisse avancer, reculer, monter et descendre des pentes) alors qu&#039;elle aura d&#039;importants frottement le long de l&#039;axe y (droite/gauche)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 3&amp;gt;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Plus le délai est important, plus faibles sont les frottements, par conséquent, il faut indiquer une valeur élevée pour désactiver ce phénomène le long d&#039;un axe.&lt;br /&gt;
 &lt;br /&gt;
Il est possible d&#039;indiquer le coefficient de frottement linéaire comme un scalaire (float). Ce choix a pour conséquence de donner la même valeur aux 3 champs.&lt;br /&gt;
&lt;br /&gt;
Les deux exemples suivants sont similaires et rendent les frottements négligeables.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Positionne tous les temps d&#039;arrêt par frottement à 1000&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 1000&amp;gt;);&lt;br /&gt;
// Idem, mais avec moins de données.&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[VEHICLE_ANGULAR_FRICTION_TIMESCALE/fr|VEHICLE_ANGULAR_FRICTION_TIMESCALE]] est un paramètre de type vector qui définit le temps nécessaire au moteur angulaire pour s&#039;arrêter à cause des frottements. Il fonctionne comme le paramètre du moteur linéaire.&lt;br /&gt;
&lt;br /&gt;
==  La flottabilité ==&lt;br /&gt;
&lt;br /&gt;
Les véhicules ont une flottabilité indépendante de la fonction [[llSetBuoyancy/fr|llSetBuoyancy]]. Il est recommandé d&#039;éviter de mélanger les deux fonctions.&lt;br /&gt;
&lt;br /&gt;
Un véhicule acquière la flottabilité à l&#039;aide du paramètre [[VEHICLE_BUOYANCY]] : 0.0 = aucune flottabilité // 1.0 = zéro gravité.&lt;br /&gt;
 &lt;br /&gt;
La flottabilité est différente de la lévitation. &lt;br /&gt;
Pour que la lévitation fonctionne sans risquer de décalage lors de l’emploi du paramètre [[VEHICLE_HOVER_HEIGHT/fr|VEHICLE_HOVER_HEIGHT]], le paramètre [[VEHICLE_BUOYANCY/fr|VEHICLE_BUOYANCY]] doit être positionné à 1.0&lt;br /&gt;
&lt;br /&gt;
==  La lévitation ==&lt;br /&gt;
&lt;br /&gt;
La lévitation est activée lorsque la paramètre [[VEHICLE_HOVER_TIMESCALE/fr|VEHICLE_HOVER_TIMESCALE]] prend une valeur inférieure à 300 secondes (des valeurs supérieures désactivent également la fonctionnalité). &lt;br /&gt;
Ce paramètre indique le temps nécessaire au véhicule pour se mettre en lévitation.&lt;br /&gt;
La plupart des véhicules fonctionnent mieux avec un temps de lévitation de quelques secondes (voire moins). Plus le temps sera court, plus le comportement du véhicule sera influencé par son poids.&lt;br /&gt;
 &lt;br /&gt;
Il faut noter que les frottements (cf. [[VEHICLE_LINEAR_FRICTION_TIMESCALE/fr|VEHICLE_LINEAR_FRICTION_TIMESCALE]]) peuvent influencer la mise en lévitation. &lt;br /&gt;
 &lt;br /&gt;
La lévitation est indépendante de la flottabilité mais  [[VEHICLE_BUOYANCY/fr|VEHICLE_BUOYANCY]] doit être mise à 1.0, sinon le véhicule ne lévitera pas tant que la hauteur cible de lévitation [[VEHICLE_HOVER_HEIGHT/fr|VEHICLE_HOVER_HEIGHT]] ne compense pas la gravité, de plus le véhicule ne flottera jamais à la bonne hauteur.&lt;br /&gt;
 &lt;br /&gt;
Le paramètre [[VEHICLE_HOVER_EFFICIENCY/fr|VEHICLE_HOVER_EFFICIENCY]] permet de configurer la lévitation, il varie de 0.0 (avec oscillation) à 1.0 (stable)&lt;br /&gt;
Lorsque le paramètre est à 0, le véhicule oscille à une altitude un peu plus basse que l&#039;altitude cible et la période des oscillations correspond à peu près à celle définie par [[VEHICLE_HOVER_TIMESCALE/fr|VEHICLE_HOVER_TIMESCALE]] (la vraie période est un peu plus longue)&lt;br /&gt;
 &lt;br /&gt;
De part les limitations du moteur physique de SL, la lévitation ne prend en compte que les zones terrestres et marines,  il est actuellement impossible de léviter au dessus de prims telles un pont ou une maison.&lt;br /&gt;
 &lt;br /&gt;
Par défaut un véhicule lévitera au dessus de l&#039;eau et de la terre, certains paramètres permettent de modifier ce comportement : &lt;br /&gt;
[[VEHICLE_HOVER_WATER_ONLY/fr|VEHICLE_HOVER_WATER_ONLY]] est à utiliser pour les bateaux (lévitation en zone marine uniquement)&lt;br /&gt;
[[VEHICLE_HOVER_TERRAIN_ONLY/fr|VEHICLE_HOVER_TERRAIN_ONLY]] est à utiliser pour un tank susceptible d&#039;aller sous l&#039;eau (lévitation sur terre uniquement).&lt;br /&gt;
[[VEHICLE_HOVER_GLOBAL_HEIGHT/fr|VEHICLE_HOVER_GLOBAL_HEIGHT]] est à utiliser pour un sous-marin ou un ballon.&lt;br /&gt;
Ces codes ne sont pas compatibles, et les mélanger risque de générer des comportements atypiques. Ces codes sont à utiliser avec la fonction [[llSetVehicleFlags/fr|llSetVehicleFlags]].&lt;br /&gt;
 &lt;br /&gt;
Le paramètre [[VEHICLE_HOVER_HEIGHT/fr|VEHICLE_HOVER_HEIGHT]] permet de décider à quelle altitude le véhicule doit léviter (au dessus de l&#039;eau, de la terre ou en hauteur absolue). La valeur maximale est de 100 mètres&lt;br /&gt;
 &lt;br /&gt;
Le point de lévitation est fixé par le centre de gravité (parfois difficile à repérer pour des personnes non entraînées), par ailleurs le centre change lorsqu&#039;une personne est assise sur l&#039;objet.&lt;br /&gt;
&lt;br /&gt;
==  Référentiels relatifs ==&lt;br /&gt;
&lt;br /&gt;
Les véhicules se basent sur leurs axes x (avant/arrière), y (droite/gauche) et z (haut/bas) pour décider de leur mouvement. Par défaut ces axes sont identiques à ceux de la prim racine, mais cela suppose que la prim racine soit parfaitement orientée afin que les deux référentiels correspondent. Ce n&#039;est pas toujours possible, comme, par exemple, dans le cas de véhicules préconstruits.&lt;br /&gt;
 &lt;br /&gt;
C&#039;est dans ce type de situation que le paramètre [[VEHICLE_REFERENCE_FRAME/fr|VEHICLE_REFERENCE_FRAME]] devient utile car il permet de réorienter les axes du véhicule de manière indépendante du référentiel de la prim.&lt;br /&gt;
 &lt;br /&gt;
Par exemple, supposons que nous ayons construit une fusée à partir d&#039;un grand cylindre, d&#039;un cône pour l&#039;avant et avec le cylindre comme prim principale.&lt;br /&gt;
Idéalement, la fusée devrait se déplacer le cône en &#039;avant, or l&#039;axe de déplacement avant l&#039;axe x (qui pointe à l&#039;horizontal du sol). Le script suivant effectue une rotation de façon à ce que l&#039;axe x, remplace l&#039;axe z (vers le haut).&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
// Tourne le référentiel du véhicule de -PI/2 autour de l&#039;axe y (axe gauche/droite)&lt;br /&gt;
rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&lt;br /&gt;
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, rot);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Un autre exemple : Prenons une navette spatiale qui souhaite voler l&#039;horizontalement avec l&#039;attracteur vertical mais décoller et atterrir verticalement (également avec l&#039;attracteur). En vol, le nez de la navette doit être vers l&#039;avant, mais lors de l&#039;atterrissage, il doit être orienté vers le haut. Pour que la navette puisse atterrir avec l&#039;attracteur actif, il suffit d&#039;effectuer un rotation du référentiel de +PI/2 selon l&#039;axe y, de cette façon, la tête de la navette se relève et permet l&#039;atterrissage. Tout en conservant l&#039;attracteur, la navette pourra se poser en utilisant les frottements ou une diminution de la lévitation pour se poser.&lt;br /&gt;
&lt;br /&gt;
{{LSLC/fr|Vehicle|Tutoriels}} {{LSLC/fr|Tutorials|Vehicules}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=58168</id>
		<title>Linden Vehicle Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Linden_Vehicle_Tutorial&amp;diff=58168"/>
		<updated>2008-03-11T19:39:49Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: The &amp;quot;&amp;lt; &amp;gt;&amp;quot; in &amp;quot;rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&amp;quot; have been missing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Multi-lang}}{{LSL_Header}}&lt;br /&gt;
&lt;br /&gt;
== Vehicles ==&lt;br /&gt;
&lt;br /&gt;
Vehicles are a new feature now available for use through LSL. This chapter will cover the basics of how vehicles&lt;br /&gt;
work, the terms used when describing vehicles, and a more thorough examination of the api available.&lt;br /&gt;
&lt;br /&gt;
There are several ways to make scripted objects move themselves around. One way is to turn the object into a&lt;br /&gt;
&amp;quot;vehicle&amp;quot;. This feature is versatile enough to make things that slide, hover, fly, and float. Some of the behaviors&lt;br /&gt;
that can be enabled are:&lt;br /&gt;
&lt;br /&gt;
*deflection of linear and angular velocity to preferred axis of motion&lt;br /&gt;
*asymmetric linear and angular friction&lt;br /&gt;
*hovering over terrain/water or at a global height&lt;br /&gt;
*banking on turns&lt;br /&gt;
*linear and angular motor for push and turning&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Each scripted object can have one vehicle behavior that is configurable through the[[llSetVehicleType]],&lt;br /&gt;
llSetVehicleFloatParam,llSetVehicleVectorParam,llSetVehicleRotationParam,llSetVehicleFlags, and&lt;br /&gt;
llRemoveVehicleFlags library calls.&lt;br /&gt;
&lt;br /&gt;
These script calls are described in more detail below, but the important thing to notice here is that the vehicle&lt;br /&gt;
behavior has several parameters that can be adjusted to change how the vehicle handles. Depending on the values&lt;br /&gt;
chosen the vehicle can veer like a boat in water, or ride like a sled on rails.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle flags allow you to make exceptions to some default behaviors. Some of these flags only have&lt;br /&gt;
an effect when certain behaviors are enabled. For example, the [[VEHICLE_FLAG_HOVER_WATER_ONLY]] will&lt;br /&gt;
make the vehicle ignore the height of the terrain, however it only makes a difference if the vehicle is hovering.&lt;br /&gt;
&lt;br /&gt;
== Warnings ==&lt;br /&gt;
&lt;br /&gt;
Vehicles are new in Second Life 1.1 and some of the details of their behavior may be changed as necessary to&lt;br /&gt;
ensure stability and user safety. In particular, many of the limits and defaults described in the appendices will&lt;br /&gt;
probably change and should not be relied upon in the long term.&lt;br /&gt;
&lt;br /&gt;
It is not recommended that you mix vehicle behavior with some of the other script calls that provide impulse and&lt;br /&gt;
forces to the object, especially[[llSetBuoyancy]],[[llSetForce]],[[llSetTorque]], and[[llSetHoverHeight]].&lt;br /&gt;
&lt;br /&gt;
While the following methods probably don’t cause any instabilities, their behavior may conflict with vehicles&lt;br /&gt;
and cause undesired and/or inconsistent results, so use[[llLookAt]],[[llRotLookAt]],[[llMoveToTarget]], and&lt;br /&gt;
[[llTargetOmega]] at your own risk.&lt;br /&gt;
&lt;br /&gt;
If you think you have found a bug relating to how vehicle’s work, one way to submit the problem is to give a&lt;br /&gt;
copy of the vehicle and script to Andrew Linden with comments or a notecard describing the problem. Please&lt;br /&gt;
name all submissions &amp;quot;Bugged Vehicle XX&amp;quot; where XX are your Second Life initials. The vehicle and script will&lt;br /&gt;
be examined at the earliest convenience.&lt;br /&gt;
&lt;br /&gt;
==  Definitions ==&lt;br /&gt;
&lt;br /&gt;
The terms &amp;quot;roll&amp;quot;, &amp;quot;pitch&amp;quot;, and &amp;quot;yaw&amp;quot; are often used to describe the modes of rotations that can happen to a&lt;br /&gt;
airplane or boat. They correspond to rotations about the local x-, y-, and z-axis respectively.&lt;br /&gt;
z-axis .&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Tait-Bryan_angles&lt;br /&gt;
&lt;br /&gt;
The right-hand-rule, often introduced in beginning physics courses, is used to define the direction of positive&lt;br /&gt;
rotation about any axis. As an example of how to use the right hand rule, consider a positive rotation about the&lt;br /&gt;
roll axis. To help visualize how such a rotation would move the airplane, place your right thumb parallel to the&lt;br /&gt;
plane’s roll-axis such that the thumb points in the positive x-direction, then curl the four fingers into a fist. Your&lt;br /&gt;
fingers will be pointing in the direction that the plane will spin.&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Right_hand_rule&lt;br /&gt;
&lt;br /&gt;
Many of the parameters that control a vehicle’s behavior are of the form:&lt;br /&gt;
&lt;br /&gt;
VEHICLE_&#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039;_TIMESCALE&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;BEHAVIOR&#039;&#039;&#039; ’s &amp;quot;timescale&amp;quot; can usually be understood as the time for the&lt;br /&gt;
behavior to push, twist, or otherwise affect the vehicle such that the difference between what it is doing, and&lt;br /&gt;
what it is supposed to be doing, has been reduced to 1/e of what it was, where &amp;quot;e&amp;quot; is the natural exponent&lt;br /&gt;
(approximately 2.718281828). In other words, it is the timescale for exponential decay toward full compliance to&lt;br /&gt;
the desired behavior. When you want the vehicle to be very responsive use a short timescale of one second or&lt;br /&gt;
less, and if you want to disable a behavior then set the timescale to a very large number like 300 (5 minutes) or&lt;br /&gt;
more. Note, for stability reasons, there is usually a limit to how small a timescale is allowed to be, and is usually&lt;br /&gt;
on the order of a tenth of a second. Setting a timescale to zero is safe and is always equivalent to setting it to its&lt;br /&gt;
minimum. Any feature with a timescale can be effectively disabled by setting the timescale so large that it would&lt;br /&gt;
take them all day to have any effect.&lt;br /&gt;
&lt;br /&gt;
==  Setting the Vehicle Type ==&lt;br /&gt;
&lt;br /&gt;
Before any vehicle parameters can be set the vehicle behavior must first be enabled. It is enabled by calling&lt;br /&gt;
[[llSetVehicleType]] with any &#039;&#039;&#039;VEHICLE_TYPE_*&#039;&#039;&#039;, except [[VEHICLE_TYPE_NONE]] which will disable the&lt;br /&gt;
vehicle. See the {{LSLGC|Vehicle|vehicle types}} constants section for currently available types. More types will be available soon.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type is necessary for enabling the vehicle behavior and sets all of the parameters to its default&lt;br /&gt;
values. For each vehicle type listed we provide the corresponding equivalent code in long format. Is is important&lt;br /&gt;
to realize that the defaults are not the optimal settings for any of these vehicle types and that they will definitely&lt;br /&gt;
be changed in the future. Do not rely on these values to be constant until specified.&lt;br /&gt;
&lt;br /&gt;
Should you want to make a unique or experimental vehicle you will still have to enable the vehicle behavior with&lt;br /&gt;
one of the default types first, after which you will be able to change any of the parameters or flags within the&lt;br /&gt;
allowed ranges.&lt;br /&gt;
&lt;br /&gt;
Setting the vehicle type does not automatically take controls or otherwise move the object. However should you&lt;br /&gt;
enable the vehicle behavior while the object is free to move and parked on a hill then it may start to slide away.&lt;br /&gt;
&lt;br /&gt;
We’re looking for new and better default vehicle types. If you think you’ve found a set of parameters that make a&lt;br /&gt;
better car, boat, or any other default type of vehicle then you may submit your proposed list of settings to&lt;br /&gt;
Andrew Linden via a script or notecard.&lt;br /&gt;
&lt;br /&gt;
==  Linear and Angular Deflection ==&lt;br /&gt;
&lt;br /&gt;
A common feature of real vehicles is their tendency to move along &amp;quot;preferred axes of motion&amp;quot;. That is, due to&lt;br /&gt;
their wheels, wings, shape, or method of propulsion they tend to push or redirect themselves along axes that are&lt;br /&gt;
static in the vehicle’s local frame. This general feature defines a class of vehicles and included in this category a&lt;br /&gt;
common dart is a &amp;quot;vehicle&amp;quot;: it has fins in the back such that if it were to tumble in the air it would eventually&lt;br /&gt;
align itself to move point-forward -- we’ll call this alignment effect angular deflection.&lt;br /&gt;
&lt;br /&gt;
A wheeled craft exhibits a different effect: when a skateboard is pushed in some direction it will tend to redirect&lt;br /&gt;
the resultant motion along that which it is free to roll -- we’ll call this effect linear deflection.&lt;br /&gt;
&lt;br /&gt;
So a typical Second Life vehicle is an object that exhibits linear and/or angular deflection along the &amp;quot;preferential&lt;br /&gt;
axes of motion&amp;quot;. The default preferential axes of motion are the local x- (at), y- (left), and z- (up) axes of the&lt;br /&gt;
local frame of the vehicle’s root primitive. The deflection behaviors relate to the x-axis (at): linear deflection will&lt;br /&gt;
tend to rotate its velocity until it points along it’s positive local x-axis while the angular deflection will tend to&lt;br /&gt;
reorient the vehicle such that it’s x-axis points in the direction that it is moving. The other axes are relevant to&lt;br /&gt;
vehicle behaviors that are described later, such as the vertical attractor which tries to keep a vehicle’s local z-axis&lt;br /&gt;
pointed toward the world z-axis (up). The vehicle axes can be rotated relative to the object’s actual local axes by&lt;br /&gt;
using the [[VEHICLE_REFERENCE_FRAME]] parameter, however that is an advanced feature and is covered in&lt;br /&gt;
detail in a later section of these documents.&lt;br /&gt;
&lt;br /&gt;
Depending on the vehicle it might be desirable to have lots of linear and/or angular delfection or not. The speed&lt;br /&gt;
of the deflections are controlled by setting the relevant parameters using the[[llSetVehicleFloatParam]] script call.&lt;br /&gt;
&lt;br /&gt;
Each variety of deflection has a &amp;quot;timescale&amp;quot; parameter that determines how quickly a full deflection happens.&lt;br /&gt;
&lt;br /&gt;
Basically the timescale it the time coefficient for exponential decay toward full deflection. So, a vehicle that&lt;br /&gt;
deflects quickly should have a small timescale. For instance, a typical dart might have a angular deflection&lt;br /&gt;
timescale of a couple of seconds but a linear deflection of several seconds; it will tend to reorient itself before it&lt;br /&gt;
changes direction. To set the deflection timescales of a dart you might use the lines below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0);&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 6.0);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Each variety of deflection has an &amp;quot;efficiency&amp;quot; parameter that is a slider between 0.0 and 1.0. Unlike the other&lt;br /&gt;
efficiency parameter of other vehicle behaviors, the deflection efficiencies do not slide between &amp;quot;bouncy&amp;quot; and&lt;br /&gt;
&amp;quot;damped&amp;quot;, but instead slide from &amp;quot;no deflection whatsoever&amp;quot; (0.0) to &amp;quot;maximum deflection&amp;quot; (1.0). That is, they&lt;br /&gt;
behave much like the deflection timescales, however they are normalized to the range between 0.0 and 1.0.&lt;br /&gt;
&lt;br /&gt;
==  Moving the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Once enabled, a vehicle can be pushed and rotated by external forces and/or from script calls such as&lt;br /&gt;
[[llApplyImpulse]], however linear and angular motors have been built in to make motion easier and smoother.&lt;br /&gt;
Their directions can be set using the[[llSetVehicleVectorParam]] call. For example, to make the vehicle try to move&lt;br /&gt;
at 5 meters/second along its local x-axis (the default look-at direction) you would put the following line in your&lt;br /&gt;
script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, &amp;lt;5, 0, 0&amp;gt;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To prevent vehicles from moving too fast the magnitude of the linear motor is clamped to be no larger than about&lt;br /&gt;
30 meters/second. Note that this is clamped mostly because of limitations of the physics engine, and may be&lt;br /&gt;
raised later when possible.&lt;br /&gt;
&lt;br /&gt;
Setting the motor speed is not enough to enable all interesting vehicles. For example, some will want a car that&lt;br /&gt;
immediately gets up to the speed they want, while others will want a boat that slowly climbs up to its maximum&lt;br /&gt;
velocity. To control this effect you can use the [[VEHICLE_LINEAR_MOTOR_TIMESCALE]] parameter.&lt;br /&gt;
&lt;br /&gt;
Basically the &amp;quot;timescale&amp;quot; of a motor is the time constant for the vehicle to exponentially accelerate toward its full&lt;br /&gt;
speed.&lt;br /&gt;
&lt;br /&gt;
What would happen if you were to accidentally set the vehicle’s linear velocity to maximum possible speed and&lt;br /&gt;
then let go? It would run away and never stop, right? Not necessarily: an automatic &amp;quot;motor decay&amp;quot; has been built&lt;br /&gt;
in such that all motors will gradually decrease their effectiveness after being set.&lt;br /&gt;
&lt;br /&gt;
Each time the linear motor’s vector is set its &amp;quot;grip&amp;quot; immediately starts to decay exponentially with a timescale&lt;br /&gt;
determined by the [[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]], such that after enough time the&lt;br /&gt;
motor ceases to have any effect. This decay timescale serves two purposes. First, since it cannot be set longer&lt;br /&gt;
than 120 seconds, and is always enabled it gaurantees that a vehicle will not push itself about forever in the&lt;br /&gt;
absence of active control (from keyboard commands or some logic loop in the script). Second, it can be used to&lt;br /&gt;
push some vehicles around using a simple impulse model. That is, rather than setting the motor &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot;&lt;br /&gt;
depending on whether a particular key is pressed &amp;quot;down&amp;quot; or &amp;quot;up&amp;quot; the decay timescale can be set short and the&lt;br /&gt;
motor can be set &amp;quot;on&amp;quot; whenever the key transitions from &amp;quot;up&amp;quot; to &amp;quot;down&amp;quot; and allowed to automatically decay.&lt;br /&gt;
&lt;br /&gt;
Since the motor’s effectiveness is reset whenever the motor’s vector is set, then setting it to a vector of length&lt;br /&gt;
zero is different from allowing it to decay completely. The first case will cause the vehicle to try to reach zero&lt;br /&gt;
velocity, while the second will leave the motor impotent.&lt;br /&gt;
&lt;br /&gt;
The two motor timescales have very similar names, but have different effects, so try not to get them confused.&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_TIMESCALE]] is the time for motor to &amp;quot;win&amp;quot;, and&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE]] is the time for the motor’s &amp;quot;effectiveness&amp;quot; to decay&lt;br /&gt;
toward zero. If you set one when you think you are changing the other you will have frustrating results. Also, if&lt;br /&gt;
the motor’s decay timescale is shorter than the regular timescale, then the effective magnitude of the motor&lt;br /&gt;
vector will be diminished.&lt;br /&gt;
&lt;br /&gt;
==  Steering the Vehicle ==&lt;br /&gt;
&lt;br /&gt;
Much like the linear motor, there is also an angular motor that is always on, and whose direction and magnitude&lt;br /&gt;
can be set. For example, to make a vehicle turn at 5 degrees/sec around its local z-axis (its up-axis) you might&lt;br /&gt;
add the following lines to its script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vector angular_velocity = &amp;lt;0, 0, 5 * PI / 180&amp;gt;;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_velocity);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The magnitude of the angular motor is capped to be no more than two rotations per second (4*PI radians/sec).&lt;br /&gt;
&lt;br /&gt;
Also like the linear motor it has an efficiency parameter, [[VEHICLE_ANGULAR_MOTOR_TIMESCALE]], and a&lt;br /&gt;
motor decay parameter, [[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]], which is set to themaximum possible value of 120 seconds by default.&lt;br /&gt;
&lt;br /&gt;
When steering a vehicle you probably don’t want it to turn very far or for very long. One way to do it using the&lt;br /&gt;
angular motor would be to leave the decay timescale long, enable a significant amount of angular friction (to&lt;br /&gt;
quickly slow the vehicle down when the motor is turned off) then set the angular motor to a large vector on a key&lt;br /&gt;
press, and set it to zero when the key is released. Another way to do it is to set the&lt;br /&gt;
[[VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE]] to a short value and push the vehicle about with a&lt;br /&gt;
more impulsive method that sets the motor fast on a key press down (and optionally setting the motor to zero on&lt;br /&gt;
a key up) relying on the automatic exponential decay of the motor’s effectiveness rather than a constant angular&lt;br /&gt;
friction.&lt;br /&gt;
&lt;br /&gt;
Setting the angular motor to zero magnitude is different from allowing it to decay. When the motor completely&lt;br /&gt;
decays it no longer affects the motion of the vehicle, however setting it to zero will reset the &amp;quot;grip&amp;quot; of the vehicle&lt;br /&gt;
and will make the vehicle try to achieve zero angular velocity.&lt;br /&gt;
&lt;br /&gt;
For some vehicles it will be possible to use the &amp;quot;banking feature&amp;quot; to turn. &amp;quot;Banking&amp;quot; is what airplanes and&lt;br /&gt;
motorcycles do when they turn. When a banking vehicle twists about its roll-axis there is a resultant spin around&lt;br /&gt;
its yaw-axis. Banking is only available when using the &amp;quot;vertical attractor&amp;quot; which is described below.&lt;br /&gt;
&lt;br /&gt;
==  The Vertical Attractor ==&lt;br /&gt;
&lt;br /&gt;
Some vehicles, like boats, should always keep their up-side up. This can be done by enabling the &amp;quot;vertical&lt;br /&gt;
attractor&amp;quot; behavior that springs the vehicle’s local z-axis to the world z-axis (a.k.a. &amp;quot;up&amp;quot;). To take advantage of&lt;br /&gt;
this feature you would set the [[VEHICLE_VERTICAL_ATTRACTION_TIMESCALE]] to control the period of&lt;br /&gt;
the spring frequency, and then set the [[VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY]] to control the&lt;br /&gt;
damping. An efficiency of 0.0 will cause the spring to wobble around its equilibrium, while an efficiency of 1.0&lt;br /&gt;
will cause the spring to reach it’s equilibrium with exponential decay.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 4.0);&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The vertical attractor is disabled by setting its timescale to anything larger than 300 seconds.&lt;br /&gt;
&lt;br /&gt;
Note that by default the vertical attractor will prevent the vehicle from diving and climbing. So, if you wanted to&lt;br /&gt;
make a airplane you would probably want to unlock the attractor around the pitch axis by setting the&lt;br /&gt;
[[VEHICLE_FLAG_LIMIT_ROLL_ONLY]] bit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Banking ==&lt;br /&gt;
&lt;br /&gt;
The vertical attractor feature must be enabled in order for the banking behavior to function. The way banking&lt;br /&gt;
works is this: a rotation around the vehicle’s roll-axis will produce a angular velocity around the yaw-axis,&lt;br /&gt;
causing the vehicle to turn. The magnitude of the yaw effect will be proportional to the&lt;br /&gt;
&lt;br /&gt;
::[[VEHICLE_BANKING_COEF]], the angle of the roll rotation, and sometimes the vehicle’s velocity along its&lt;br /&gt;
preferred axis of motion.&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_COEF]] can vary between -1 and +1. When it’s positive then any positive rotation (by&lt;br /&gt;
the right-hand rule) about the roll-axis will effect a (negative) torque around the yaw-axis, making it turn to the&lt;br /&gt;
right -- that is the vehicle will lean into the turn, which is how real airplanes and motorcycle’s work. Negating&lt;br /&gt;
the banking coefficient will make it so that the vehicle leans to the outside of the turn (not very &amp;quot;physical&amp;quot; but&lt;br /&gt;
might allow interesting vehicles so why not?).&lt;br /&gt;
&lt;br /&gt;
::The [[VEHICLE_BANKING_MIX]] is a fake (i.e. non-physical) parameter that is useful for making banking&lt;br /&gt;
vehicles do what you want rather than what the laws of physics allow. For example, consider a real motorcycle...&lt;br /&gt;
it must be moving forward in order for it to turn while banking, however video-game motorcycles are often&lt;br /&gt;
configured to turn in place when at a dead stop -- because they’re often easier to control that way using the&lt;br /&gt;
limited interface of the keyboard or game controller. The [[VEHICLE_BANKING_MIX]] enables combinations of&lt;br /&gt;
both realistic and non-realistic banking by fuctioning as a slider between a banking that is correspondingly&lt;br /&gt;
totally static (0.0) and totally dynamic (1.0). By &amp;quot;static&amp;quot; we mean that the banking effect depends only on the&lt;br /&gt;
vehicle’s rotation about its roll-axis compared to &amp;quot;dynamic&amp;quot; where the banking is also proportional to its&lt;br /&gt;
velocity along its roll-axis. Finding the best value of the &amp;quot;mixture&amp;quot; will probably require trial and error.&lt;br /&gt;
&lt;br /&gt;
The time it takes for the banking behavior to defeat a pre-existing angular velocity about the world z-axis is&lt;br /&gt;
determined by the [[VEHICLE_BANKING_TIMESCALE]]. So if you want the vehicle to bank quickly then give it&lt;br /&gt;
a banking timescale of about a second or less, otherwise you can make a sluggish vehicle by giving it a timescale&lt;br /&gt;
of several seconds.&lt;br /&gt;
&lt;br /&gt;
==  Friction Timescales ==&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_LINEAR_FRICTION_TIMESCALE]] is a vector parameter that defines the timescales for the vehicle&lt;br /&gt;
to come to a complete stop along the three local axes of the vehicle’s reference frame. The timescale along each&lt;br /&gt;
axis is independent of the others. For example, a sliding ground car would probably have very little friction along&lt;br /&gt;
its x- and z-axes (so it can easily slide forward and fall down) while there would usually significant friction along&lt;br /&gt;
its y-axis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 3&amp;gt;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Remember that a longer timescale corresponds to a weaker friction, hence to effectively disable all linear friction&lt;br /&gt;
you would set all of the timescales to large values.&lt;br /&gt;
&lt;br /&gt;
Setting the linear friction as a scalar is allowed, and has the effect of setting all of the timescales to the same&lt;br /&gt;
value. Both code snippets below are equivalent, and both make friction negligible:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// set all linear friction timescales to 1000&lt;br /&gt;
llSetVehicleVectorParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, &amp;lt;1000, 1000, 1000&amp;gt;);&lt;br /&gt;
// same as above, but fewer characters&lt;br /&gt;
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
/[[VEHICLE_ANGULAR_FRICTION_TIMESCALE]] is also a vector parameter that defines the timescales for the&lt;br /&gt;
vehicle to stop rotating about the x-, y-, and z-axes, and are set and disabled in the same way as the linear friction.&lt;br /&gt;
&lt;br /&gt;
==  Buoyancy ==&lt;br /&gt;
&lt;br /&gt;
The vehicle has a built-in buoyancy feature that is independent of the[[llSetBuoyancy]] call. It is recommended that&lt;br /&gt;
the two buoyancies do not mix! To make a vehicle buoyant, set the [[VEHICLE_BUOYANCY]] parameter to&lt;br /&gt;
something between 0.0 (no buoyancy whatsoever) to 1.0 (full anti-gravity).&lt;br /&gt;
&lt;br /&gt;
The buoyancy behavior is independent of hover, however in order for hover to work without a large offset of the&lt;br /&gt;
[[VEHICLE_HOVER_HEIGHT]], the [[VEHICLE_BUOYANCY]] should be set to 1.0.&lt;br /&gt;
&lt;br /&gt;
It is not recommended that you mix vehicle buoyancy with the[[llSetBuoyancy]] script call. It would probably&lt;br /&gt;
cause the object to fly up into space.&lt;br /&gt;
&lt;br /&gt;
==  Hover ==&lt;br /&gt;
&lt;br /&gt;
The hover behavior is enabled by setting the [[VEHICLE_HOVER_TIMESCALE]] to a value less than 300&lt;br /&gt;
seconds; larger timescales totally disable it. Most vehicles will work best with short hover timescales of a few&lt;br /&gt;
seconds or less. The shorter the timescale, the faster the vehicle will slave to is target height. Note, that if the&lt;br /&gt;
values of [[VEHICLE_LINEAR_FRICTION_TIMESCALE]] may affect the speed of the hover.&lt;br /&gt;
&lt;br /&gt;
Hover is independent of buoyancy, however the [[VEHICLE_BUOYANCY]] should be set to 1.0, otherwise the&lt;br /&gt;
vehicle will not lift itself off of the ground until the [[VEHICLE_HOVER_HEIGHT]] is made large enough to&lt;br /&gt;
counter the acceleration of gravity, and the vehicle will never float all the way to its target height.&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_EFFICIENCY]] can be thought of as a slider between bouncy (0.0) and smoothed (1.0).&lt;br /&gt;
&lt;br /&gt;
When in the bouncy range the vehicle will tend to hover a little lower than its target height and the&lt;br /&gt;
[[VEHICLE_HOVER_TIMESCALE]] will be approximately the oscillation period of the bounce (the real period&lt;br /&gt;
will tend to be a little longer than the timescale).&lt;br /&gt;
&lt;br /&gt;
For performance reasons, until improvements are made to the Second Life physics engine the vehicles can only&lt;br /&gt;
hover over the terrain and water, so they will not be able to hover above objects made out of primitives, such as&lt;br /&gt;
bridges and houses. By default the hover behavior will float over terrain and water, however this can be changed&lt;br /&gt;
by setting some flags:&lt;br /&gt;
&lt;br /&gt;
If you wanted to make a boat you should set the [[VEHICLE_HOVER_WATER_ONLY]] flag, or if you wanted to&lt;br /&gt;
drive a hover tank under water you would use the [[VEHICLE_HOVER_TERRAIN_ONLY]] flag instead. Finally,&lt;br /&gt;
if you wanted to make a submarine or a balloon you would use the [[VEHICLE_HOVER_GLOBAL_HEIGHT]].&lt;br /&gt;
&lt;br /&gt;
Note that the flags are independent of each other and that setting two contradictory flags will have undefined&lt;br /&gt;
behavor. The flags are set using the script call[[llSetVehicleFlags()]].&lt;br /&gt;
&lt;br /&gt;
The [[VEHICLE_HOVER_HEIGHT]] determines how high the vehicle will hover over the terrain and/or water, or&lt;br /&gt;
the global height, and has a maximum value of 100 meters. Note that for hovering purposes the &amp;quot;center&amp;quot; of the&lt;br /&gt;
vehicle is its &amp;quot;center of mass&amp;quot; which is not always obvious to the untrained eye, and it changes when avatar’s sit&lt;br /&gt;
on the vehicle.&lt;br /&gt;
&lt;br /&gt;
==  Reference Frame ==&lt;br /&gt;
&lt;br /&gt;
The vehicle relies on the x- (at), y- (left), and z- (up) axes in order to figure out which way it preferres to move&lt;br /&gt;
and which end is up. By default these axes are identical to the local axes of the root primitive of the object,&lt;br /&gt;
however this means that the vehicle’s root primitive must, by default, be oriented to agree with the designed at,&lt;br /&gt;
left, and up axes of the vehicle. But, what if the vehicle object was already pre-built with the root primitive in&lt;br /&gt;
some non-trivial orientation relative to where the vehicle as a whole should move? This is where the&lt;br /&gt;
&lt;br /&gt;
[[VEHICLE_REFERENCE_FRAME]] parameter becomes useful; the vehicle’s axes can be arbitrarily reoriented&lt;br /&gt;
by setting this parameter.&lt;br /&gt;
&lt;br /&gt;
As an example, suppose you had built a rocket out of a big cylinder, a cone for the nose, and some stretched cut&lt;br /&gt;
boxes for the fins, then linked them all together with the cylinder as the root primitive. Ideally the rocket would&lt;br /&gt;
move nose-first, however the cylinder’s axis of symmetry is its local z-axis while the default &amp;quot;at-axis&amp;quot; of the&lt;br /&gt;
vehicle, the axis it will want to deflect to forward under angular deflection, is the local x-axis and points out from&lt;br /&gt;
the curved surface of the cylinder. The script code below will rotate the vehicle’s axes such that the local z-axis&lt;br /&gt;
becomes the &amp;quot;at-axis&amp;quot; and the local negative x-axis becomes the &amp;quot;up-axis&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// rotate the vehicle frame -PI/2 about the local y-axis (left-axis)&lt;br /&gt;
rotation rot =llEuler2Rot(&amp;lt;0, PI/2, 0&amp;gt;);&lt;br /&gt;
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME, rot);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Another example of how the reference frame parameter could be used is to consider flying craft that uses the&lt;br /&gt;
vertical attractor for stability during flying but wants to use VTOL (vertical takeoff and landing). During flight&lt;br /&gt;
the craft’s dorsal axis should point up, but during landing its nose-axis should be up. To land the vehicle: while&lt;br /&gt;
the vertical attractor is in effect, rotate the existing [[VEHICLE_REFERENCE_FRAME]] by +PI/2 about the&lt;br /&gt;
left-axis, then the vehicle will pitch up such that its nose points toward the sky. The vehicle could be allowed to&lt;br /&gt;
fall to the landing pad under friction, or a decreasing hover effect.&lt;br /&gt;
&lt;br /&gt;
{{LSLC|Vehicle|Tutorial}} {{LSLC|Tutorials|Vehicle}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55775</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55775"/>
		<updated>2008-02-25T13:08:51Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|thumb|Joshua Philgarlic]]&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in {{SLurl|region=Neum|x=203|y=41|z=23|title=Neum}} and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55770</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55770"/>
		<updated>2008-02-25T13:04:15Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in {{SLurl|region=Neum|x=203|y=41|z=23|title=Neum}} and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|frame|128px|Joshua Philgarlic]]&lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55766</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55766"/>
		<updated>2008-02-25T13:00:28Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in [http://slurl.com/secondlife/Neum/203/41/23 Neum] and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|frame|128px|Joshua Philgarlic]]&lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55765</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55765"/>
		<updated>2008-02-25T13:00:10Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in [http://slurl.com/secondlife/Neum/203/41/23 Neum] and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|frame|128px|Joshua Philgarlic]]&lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55760</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55760"/>
		<updated>2008-02-25T12:48:13Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and [[LSL Portal|LSL]]. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in [http://slurl.com/secondlife/Neum/203/41/23 Neum] and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|frame|128px|Joshua Philgarlic]]&lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55188</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=55188"/>
		<updated>2008-02-21T21:50:53Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and LSL. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in [http://slurl.com/secondlife/Neum/203/41/23 Neum] and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
[[Image:2008_02_11_004.jpg|left|frame|128px|Joshua Philgarlic]]&lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=File:2008_02_11_004.jpg&amp;diff=55186</id>
		<title>File:2008 02 11 004.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=File:2008_02_11_004.jpg&amp;diff=55186"/>
		<updated>2008-02-21T21:43:29Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54757</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54757"/>
		<updated>2008-02-19T19:47:12Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and LSL. &lt;br /&gt;
&lt;br /&gt;
I&#039;m living in [http://slurl.com/secondlife/Neum/203/41/23 Neum] and I own two little shops. In my free time I try to help residents as a mentor. &lt;br /&gt;
    &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54755</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54755"/>
		<updated>2008-02-19T19:41:37Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Joshua Philgarlic ==&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Josh from Germany. I speak English, German and LSL. &lt;br /&gt;
    &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
{{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
{{visl &lt;br /&gt;
|Mentors=* &lt;br /&gt;
|}} &lt;br /&gt;
{{skills &lt;br /&gt;
|Builder= &lt;br /&gt;
|Scripter=* &lt;br /&gt;
|}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54754</id>
		<title>User:Joshua Philgarlic</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=User:Joshua_Philgarlic&amp;diff=54754"/>
		<updated>2008-02-19T19:37:53Z</updated>

		<summary type="html">&lt;p&gt;Joshua Philgarlic: New page:     I&amp;#039;m Joshua Philgarlic from Germany. I speak English, German and LSL.      {{ISO_639-3/cat-speaking/Volunteers|eng}}      {{ISO_639-3/cat-speaking/Volunteers|deu}}      {{visl      |Men...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;    I&#039;m Joshua Philgarlic from Germany. I speak English, German and LSL. &lt;br /&gt;
    {{ISO_639-3/cat-speaking/Volunteers|eng}} &lt;br /&gt;
    {{ISO_639-3/cat-speaking/Volunteers|deu}} &lt;br /&gt;
    {{visl &lt;br /&gt;
    |Mentors=* &lt;br /&gt;
    |}} &lt;br /&gt;
    {{skills &lt;br /&gt;
    |Builder= &lt;br /&gt;
    |Scripter=* &lt;br /&gt;
    |}}&lt;/div&gt;</summary>
		<author><name>Joshua Philgarlic</name></author>
	</entry>
</feed>