FlightGear - Création d'avions et autres / Creation of aircraft and other

Vous désirez aider à améliorer les avions de Hangar de Helijah, c'est ici que cela se passe / You would like to help improving aircraft from Helijah's hangar, this is where it happens

Vous n'êtes pas identifié(e).

#1 2013-05-24 19:52:49

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Tuto Instrument I : Altimetre pour l'Akoya

Aller,

avant de vous pondre un petit tuto de derrière les fagots, je vous met l'eau à la bouche avec la base :

le fichier 3D et le fichier UV

captur10.jpg

captur11.png

altime10.jpg

le contenu du fichier Xml............... dans le tuto plus tard.

Manu,

j'ai mis tout ce petit monde en x=0, y=0, z=0
sauf le bouton de réglage inhg, bien sur.

Hé bien, c'est bien plus pratique pour faire le fichier Xml qui gère le tout.
Et aussi en 3D pour centrer et pour corriger la forme des objets.

Donc une scene pour les objets extérieurs;
une pour l'intérieur sans les instruments;
une pour les instruments;
on aurai pu en prévoir une pour les "empty" mais comme je gère les animations avec le fichier Xml, pas besoin.

Dernière modification par Didier1963 (2013-05-24 19:59:30)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#2 2013-05-25 09:33:41

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Tuto Instrument I : Altimetre pour l'Akoya

LE FICHIER XML pour l'Altimètre:

Il y a plusieurs manières d'obtenir un instrument dans FlightGear (FG), de même qu'il y a plusieurs manière de modéliser ou de faire un graphisme (UV).
Je vous en explique une, mais vous pourrez aller jeter un petit coup d'oeuil dans les dossiers des autre avions pour voir comment cela fonctionne, et regarder sur les différent forum (flightgear.org par exemple).

Pour avoir notre instrument, il nous faut déjà créer une (instrument en 2D) ou plusieurs surfaces (3D) pour y appliquer ensuite une texture, et enfin, créer un fichier texte en language Xml (eXtended Markup Language ou  langage de balisage extensible), qui va dire à FG quoi faire.

Je reviendrai plus loin sur la modélisation 3D avec Blender et sur le graphisme.

Les windosiens pourront utiliser Notepad++ qui est très pratique car mettant en évidence les fameuses balises de début et de fin.
Pour ma part, j'utilise Gedit sous Ubuntu.

Nous allons d'abord préparer l'endroit ou mettre nos fichier. Pour une question d'organisation et pour q'une personne voulant réutiliser ou modifier notre création puisse s'y retrouver, nous utiliserons le principe de l'arbre et de ses branche, qui elles-même ont des sous branches, qui ont des sous-sous branches............ etc.

là encore, il y à plusieurs façons de procéder, nous utiliserons celle d'un certain Helijah qui à a son actif une dizaine...... centaine..... millier..... enfin bref, beaucoup de création d'avion : http://helijah.free.fr/.

Dans le dossier "MonAvion" (/Aircraft/MonAvion), nous devrions trouver un dossier contenant les modèles 3D qui s'appelle........... "Models"......hé oui, aussi difficile que ça ! Vous remarquerez que les noms de dossiers commencent par une majuscule pour différencier les dossier des fichiers.
Dans le dossier /Aircraft/MonAvion, il devrai y avoir un dossier pour les éléments se situant à l'intérieur s'appelant............? devinez......... "Interior"!! Ha, bien, je voit qu'il y en a qui suivent !
Ensuite, suivant le type et la complexité de l'avion, on pourra trouver :
/Aircraft/MonAvion/Model/Interior/Cabine pour la cabine passager des liners par exemple;
/Aircraft/MonAvion//Model/Interior/Cockpit pour la cabine de pilotage;
......etc.

Dans notre cas, c'est un avion relativement simple donc nous aurons directement un dossier "Panel" pour notre tableau de bord /Aircraft/MonAvion/Model/Interior/Panel, dans lequel ...................... hé oui "Instruments".

Donc nous pouvons faire un nouveau dossier pour notre altimètre, dans notre cas précis :
/Aircraft/LISA-Akoya/Model/Interior/Panel/Instruments/Altimeter.

Voilà, la place est prête pour notre fichier Xml et ses deux copains "altimeter.ac" (la 3D) et altimeter.png (le graphisme).

On ouvre notre éditeur préféré et on créé un fichier que l'on va appeler "altimeter.xml" que l'on enregistre tout de suite sous :
/Aircraft/LISA-Akoya/Model/Interior/Panel/Yoke/altimeter.xml ?????????

Haaaa, bravo, je voit que vous suivez, hé non, le dossier "Yoke" c'est pas bon, le yoke (manche) n'étant pas un instrument, on l'a mis dans le dossier "Interior", et si ce dossier s'appelle Yoke, c'est pour y mettre les trois fichiers pour le manche. Donc, on enregistre notre dossier sous :
/Aircraft/LISA-Akoya/Model/Interior/Panel/Instruments/Altimeter/altimeter.xml.

la première ligne que l'on va mettre, va servir au PC de savoir à quel genre de fichier il a affaire

<?xml version="1.0" encoding="UTF-8"?>

on lui dit que ce fichier est en Xml et on lui donne la version et le type d'encodage. Si on veux mettre du texte de commentaire en français (donc avec des accents et autre joyeuseté) on poura mettre à la place

<?xml version="1.0" encoding="ISO-8859-1"?>

On prendra l'habitude, entre chaque balise, de mettre au mois une ligne vide pour plus de clarté. Nous allons pouvoir ouvrir notre première balise. chaque systeme de balise comprend une une balise d'ouverture "<Balise>" et une balise de fermeture "</Balise>", on pourra trouver quelques fois une version courte

<Balise> LesInstructions />

donc notre 3ème ligne que l'on fera partir du bord gauche

<Property>

et on aura, à la fin de notre fichier, une balise

</Property

Si on veux ajouter des commentaires pour expliquer ce que l'on fait, on pourra mettre le texte entre une balise "<!--" et une balise "-->".

ce qui nous donne pour l'instant

<?xml version="1.0" encoding="ISO-8859-1"?>
<Property>

</Property>

Pour une question de clarté, la disposition des balises se fera de cette manière

<?xml version="1.0" encoding="ISO-8859-1"?>
<Property>

<!-- là je peux mettre un commentaire, ne pas oublier les signes de début et fin de chaque coté de ce texte
qui peu faire plusieurs lignes,
                          et comporter des espaces ou des signes divers sauf celui ci -->

    <BaliseMachinChose>
    LesInstructions 
        <SousBaliseTruckMuche>
        LesInstructions                             <!-- là aussi, je peux mettre un autre commentaire par exemple pour donner une précision technique -->
        </SousBaliseTruckMuche>
    </BaliseMachinChose>

<!-- là je peux mettre un autre commentaire -->

    <BaliseBidule>
    LesInstructions 
        <SousBaliseBidule>
        LesInstructions
        </SousBaliseBidule>
    </BaliseBidule>

</Property>

on prendra l'habitude de décaler chaque nouvelle balise pour mieux s'y retrouver quand on recherche une erreur, par deux espaces (là j'ai doublé le nombre pour que vous voyez mieux).
Certains utilise les tabulations, mais il est préférable d'utiliser les espaces (Windows, par exemple, gère mal les tabulations).


La suite après le casse-croûte.................................

Dernière modification par Didier1963 (2014-05-14 21:33:31)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#3 2013-05-28 20:26:49

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Tuto Instrument I : Altimetre pour l'Akoya

Bon, plusieurs "casse croûtes" sont passé, on peux donc continuer.

Maintenant que nous avons notre fichier Xml avec son entête, sa balise <Property> et, à la fin sa balise </Property>, on va pouvoir remplir le milieu.

ATTENTION MANU : ça va être à toi bientôt..........

Nous allons d'abord dire à FG  quel fichier .ac contiens la modélisation 3D :

<?xml version="1.0" encoding="UTF-8"?>

<!-- ============================>>
<<
<<                  LISA-Akoya-YASim & Xml 
<<                  by Lionel Adam (F-GTUX) 
<<
<<                       3D, UVs & Xml  
<<               Didier Bourguet (didier1963) 
<<
<<                    Team M88 - April 2013
<<
<<=============================-->

<Property>
    <path>altimeter.ac</path>

<!--
pour la suite de ce tuto et jusqu"à la fin, je continuerai à mettre les espaces double pour que vous puissiez mieux voir, mais sachez que vous pourrez en mettre moitié moins
-->

<!--Vous aurrez remarqué le petit clain d'oeuil à la façon de mettre des commentaire dans le fichier Xml, que je viens d'utiliser-->

Le petit cartouche avec les auteurs, c'est plus pour le fun, ce n'est pas obligatoir.

Maintenant, nous alons lui donner la liste des objets présent dans la modélisation, que nous souhaitons utiliser, attention de ne pas en oublier.
Petite astuce très pratique utilisée par Maître 88 (Manu pour les intimes), on met les objets opâques en premier, et les objets transparents à la fin.
Vous allez voir tout de suite pourquoi dans le paragraphe qui suit celui-ci.

    <animation>

<!-- Objets Opaques -->

      <object-name>Bezel</object-name>
      <object-name>Bgnd</object-name>
      <object-name>Needle100</object-name>
      <object-name>Needle1000</object-name>
      <object-name>KnobInhg</object-name>
      <object-name>InhgBgnd</object-name>

<!-- Objets transparents -->

      <object-name>Glass</object-name>
    </animation>

Un petit commentaire sert à s'y retrouver pendant le développement (imaginez un instrument, un PFD par exemle, avec une cinquantaines d'objets, placés en plusieurs groupes de fonction), et à montrer au futur visiteur de votre fichier ce que vous faites.

Nous lui indiquons ensuite les objets qui doivent être transparent :
C'est là qu'est l'intéret de mettre les objets transparent à la fin :
un petit copier-coller et hop



Nous lui indiquons les objets listés qui ne doivent pas générer d'ombre  :

 
    <animation>
        <type>noshadow</type>
        <object-name>Alt-Glass</object-name>
    </animation>

puis d'apliquer un effet de surface type chrome sur les objets listés

    <animation>
        <type>shader</type>
        <shader>chrome</shader>
        <texture>Aircraft/Generic/Effects/glass_shader.png</texture>

        <object-name>Alt-Glass</object-name>
    </animation>

et encore un petit coup de copier-coller.

Jusque là, nous ne lui avons pas dit quoi faire, point de vue rendu des couleurs, avec les autres objets.
Il va donc leur appliquer la lumière ambiente suivant l'heure de la journée.
Midi, lumière maxi, donc quantité de couleur maxi;
Minuit, lumière mini, quantité de couleur mini.

Mais nous voulons que le fond de l'altimètre (Bgnd) et les aiguilles (Needle) s'éclairent quand le tableau de bord est allumé, donc nous lui indiquons comme ceci :

    <animation>
        <type>material</type>
        <object-name>Alt-Bgnd</object-name>
        <object-name>Alt-Needle100</object-name>
        <object-name>Alt-Needle1000</object-name>
        <object-name>Alt-InhgBgnd</object-name>
        <emission>
            <red>0.50</red>
            <green>0.25</green>
            <blue>0.25</blue>
            <factor-prop>systems/electrical/outputs/instrument-lights</factor-prop>
          </emission>
    </animation>

donc, quand la condition "systems/electrical/outputs/instrument-lights" (est présente, allumage des instruments de bord), il va mettre les émissions de rouges à 50%, les verts et les bleus à 25%.

Si j'avait mit mon entourage (Bezel) dans la liste, il serai aussi aparu éclairé (si,si, je m'avait trompé le premier coup et j'ai eu la surprise de le voir dans la nuit  avec ses copains fond et aiguilles!!)

Voilà, maintenant que la famille a été présentée, nous allons pouvoir lui dire qui, et comment les animer.

L'aiguille des centaines................. centaines de quoi? Et bien justement, on va aussi lui dire

  <animation>
    <type>rotate</type>
    <object-name>Needle100</object-name>
    <property>/instrumentation/altimeter/indicated-altitude-ft</property>
    <factor>0.36</factor>
    <center>
      <x-m>0</x-m>
      <y-m>0</y-m>
      <z-m>0</z-m>
    </center>
    <axis>
      <x>-1</x>
      <y> 0</y>
      <z> 0</z>
    </axis>
  </animation>

Vous avez vu, le nom de l'objet, c'est préférable qu'il soit clair pour mieux s'y retrouver.
nous avons donc, une animation, de type rotation, s'appliquant à l'objet "Needle100", dont la valeur variable va dépendre de la propriété "/instrumentation/altimeter/indicated-altitude-ft" (les centaines ! Hé bien voilà, ce sont des "Feet" (pieds), l'aiguille se déplacera de 0.36° par pied, le centre où se place le point de référence de l'objet aiguille est à 0 dans les trois axes (vu que l'aiguille est au centre d'un objet circulaire), et pivotera de -1 sur l'axe des x a chaque 0.036 pied.

On a du bol, z'avez vu les graduations plus haut sur la photo?
C'est gradué de 0 a 10, donc comme indiqué (x100, haaa oui, j'avais oublié, c'est un peu éffacé à gauche du cadran! ), un tour équivaut à 1000 pieds. 360° divisé par 1000 = 0.036 !!!!!!

    <animation>
        <type>rotate</type>
        <object-name>Needle1000</object-name>
        <property>/instrumentation/altimeter/indicated-altitude-ft</property>
        <factor>0.036</factor>
        <center>
            <x-m>0</x-m>
            <y-m>0</y-m>
            <z-m>0</z-m>
        </center>
        <axis>
            <x>-1</x>
            <y> 0</y>
            <z> 0</z>
        </axis>
  </animation>

on peux faire de même pour l'aiguille des milliers centaines.......... de pieds, avec un facteur de 0.36

et voilà, ça mrche !

Hein ? le bouton rond ?
Haaaaa, oui, l'étalonnage avant le décolage !

He bien il n'est pas tout seul, il fonctionne avec sa petite copine la courrone graduée. (en inhg, pour notre exemple, de 27,5 à 31)

  <animation>
    <type>rotate</type>
    <object-name>InhgBgnd</object-name>
    <property>/instrumentation/altimeter/setting-inhg</property>
    <factor>1</factor>
    <interpolation>
      <entry><ind> 27.50 </ind><dep>   0.00 </dep></entry>
      <entry><ind> 28.00 </ind><dep>   48.6 </dep></entry>
      <entry><ind> 28.50 </ind><dep>  98.86 </dep></entry>
      <entry><ind> 29.00 </ind><dep> 150.00 </dep></entry>
      <entry><ind> 29.50 </ind><dep> 201.20 </dep></entry>
      <entry><ind> 30.00 </ind><dep> 251.34 </dep></entry>
      <entry><ind> 30.50 </ind><dep> 301.25 </dep></entry>
      <entry><ind> 31.00 </ind><dep> 349.61 </dep></entry>
     </interpolation>
    <center>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </center>
    <axis>
      <x>1</x>
      <y>0</y>
      <z>0</z>
    </axis>
  </animation>

Là, nous utilisons une interpolation pour lui dire que la valeur 27,50 inhg se situe à 0°, jusqu’à' a 31° se situant à 349.1°.
Toujours avec le point de référence de la couronne à 0 en x, y, z. et décalage de 1 dans l'axe des x.
Pour quoi, par exemple,  29,50 inhg est à 201,20 ?

Et bien, j'ai ouvert mon image me servant pour appliquer les UV de la couronne dans Gimp, et en utilisanr la fonction prévue, j'ai vu que la graduation 29,50 se situait à 201,20 en partant de 0 qui est au nord (en haut au milieu de l'image, ou position 12h d'une montre)

le point de référence de la couronne placé à 0 dans les trois axes, car dans ma modélisation, j'ai décalé ce point vers l'avant (vers la vitre) de façon à ce que la couronne se trouve derrière le fond (oui, je me suis aussi fait avoir sur ce coup là!! ).

Sinon, si vous utilisez une modélisation toute faite et que vous ne savez pas le faire, si le point de référence de la couronne à été laissé dans son centre géographique, il suffit de corriger, dans le fichier Xml, et de lui mettre le <center> <x> à la valeur nécessaire.

Attention, pour une valeur métrique, il faut mettre un petit "-m" après les x, y et z :

 
   <center>
      <x-m>0.0259</x-m>
<!-- là, on déplace l'objet vers l'avant de 0.0056 mètre -->
      <y-m>0</y-m>
      <z-m>0</z-m>
    </center>

[EDIT]
J'ai détaillé l'interpolation dans mon code Xml, mais ici, comme nous avons une graduation régulière, seul les points de départ et de fin de rotation sont nécessaires.
On peut donc écrire

    <interpolation>
      <entry><ind> 27.50 </ind><dep>   0.00 </dep></entry>
      <entry><ind> 31.00 </ind><dep> 349.61 </dep></entry>
     </interpolation>

Merci Dany pour la remarque
[EDIT]

Et voilà, on peux mettre le bouton d'étalonnage qui va commander la couronne :

    <animation>
        <type>rotate</type>
        <object-name>KnobInhg</object-name>
        <property>/instrumentation/altimeter/indicated-altitude-ft</property>
        <factor>0.36</factor>
        <center>
            <x-m>0.005551</x-m>
            <y-m>-0.02455</y-m>
            <z-m>-0.02090</z-m>
        </center>
        <axis>
            <x>-1</x>
            <y> 0</y>
            <z> 0</z>
          </axis>
  </animation>

ça, s'est pour son mouvement, vous aurrez remarque qu'i est décalé, par rapport au centre de l'instrument (0x, 0y, 0z), de 0.00551 mètres vers l'arrière (en allant vers la vitre), -0.02455 mètres (vers la gauche), et -0.02090 mètres (vers le bas).

Oui, c'est bien beau tout ça, mais on le fait tourner comment notre bouton ?
Hein? on peux pas mettre la main dans l'écran ?
Bon, tant-pis, on utilisera la souris !

    <animation>
        <type>pick</type>
        <object-name>KnobInhg</object-name>
        <action>
            <button>0</button>
            <repeatable>true</repeatable>
            <interval-sec>  0.1  </interval-sec>
            <binding>
                <command>property-adjust</command>
                <property>instrumentation/altimeter/setting-inhg</property>
                <step>  0.01  </step>
                <min>  27.50  </min>
                <max>  31.00  </max>
                <wrap>  0  </wrap>
            </binding>
        </action>
    </animation>

    <animation>
        <type>pick</type>
        <object-name>KnobInhg</object-name>
        <action>
            <button>1</button>
            <repeatable>true</repeatable>
            <interval-sec>  0.1  </interval-sec>
            <binding>
                <command>property-adjust</command>
                <property>instrumentation/altimeter/setting-inhg</property>
                <step>  -0.01  </step>
                <min>    27.50  </min>
                <max>    31.00  </max>
                <wrap>  0  </wrap>
            </binding>
        </action>
    </animation>

    <animation>
        <type>pick</type>
        <object-name>KnobInhg</object-name>
        <action>
            <button>3</button>
            <binding>
                <command>property-adjust</command>
                <property>instrumentation/altimeter/setting-inhg</property>
                <step>  0.01  </step>
                <min>  27.50  </min>
                <max>  31.00  </max>
                <wrap>  0  </wrap>
            </binding>
        </action>
    </animation>

    <animation>
        <type>pick</type>
        <object-name>KnobInhg</object-name>
        <action>
            <button>4</button>
            <binding>
                <command>property-adjust</command>
                <property>instrumentation/altimeter/setting-inhg</property>
                <step>  -0.01  </step>
                <min>    27.50  </min>
                <max>    31.00  </max>
                <wrap>  0  </wrap>
            </binding>
        </action>
    </animation>

</Property>

En gros, et c'est là que j'ai besoins des lumières du maître, pour ce qui est entre ****   ****.
Aniation de type "pick" (prendre en français), l'objet "KnobInhg" notre bouton, une action est attendue, elle se fait par le bouton de souris N°0 (clic gauche je pense), elle peut être répétée pour obtenir la même action, ***** interval entre deux clics de 0.1 seconde, je supose*****, liaison qui effectue la commande "instrumentation/altimeter/setting-inhg"  (ajustement altimètre réglage en inhg), avec un pas de -0.01 à chaque clic, valeur mini 27,50 (le minimum sur notre graduation, valeur maxi 31 (...... bhein oui, le maximum sur notre couronne !), *****  "wrap", heuuuuuuuuuuu, Manuuuuuuuuuuuuuuuuuuuu ! *******.
[EDIT]
la fonction "wrap" permet de dire à FG que une foi arrivé à la fin, on retourne au début et continue le mouvement de rotation (pour le bouton par exemple).
Si on met un wrap à 0, la rotation s'arrètera quand la valeur maxi sera atteinte (pour la couronne par exemple).
Merci Dany pour la clarification
[EDIT]

Pour le boutons :
0 clic gauche
1 clic sur la molette de la souris
2 clic droit
3 tourner la molette de la souris vers l'avant
4 tourner la moletter vers l'arrière

Et vous avez vu, la dernière ligne !
Hé oui, nous en avont terminé avec notre fichier Xml !!!!!

Bon, sinon, pour les clics souris, j'ai vu une autre manière de procéder, je vous dit ça la prochaine foi.

Pour l'instant, à vos palettes graphiques et une visite chez Blender pour la modélisation.............

Et voilà, vous avez réalisé un altimètre qui pourra être aussi utilisé dans d'autres avions en ajoutant au fichier Xml qui va bien, généralement le fichier
/Aircraft/LISA-Akoya/Models/Interior/Panel/panel.xml :

  <model>
    <path>Aircraft/LISA-Akoya/Models/Interior/Panel/Altimeter/altimeter.xml</path>
    <offsets>
      <x-m>-1.63</x-m>
      <y-m>-0.2869</y-m>
      <z-m>0.2663</z-m>
      <roll-deg>0</roll-deg>
      <pitch-deg>-35</pitch-deg>
      <heading-deg>7</heading-deg>
    </offsets>
  </model>

il cherchera le fichier altimeter.xml là ou on lui dit, il placera l'objet altimeter aux positions indiquées en x, y et z (en mètres) et le pivotera,
dans le sens aiguille de montre de 0°, dans ce cas on n'est pas obligé d'écrire cette ligne puisqu'il n'y a pas d'action à effectuer;
basculera d'avant en arrière, -35°(donc vers l'avant);
déplacera de gauche à droite, 7° (vers la droite);

à suivre :
Les zones clickable;
Les jauge linéaires;
Les boutons marche arrêt

Dernière modification par Didier1963 (2015-09-20 16:55:31)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#4 2013-05-29 10:19:27

dany93
Créateur
Inscription : 2012-11-12
Messages : 78

Re : Tuto Instrument I : Altimetre pour l'Akoya

Bonjour Didier,

Très intéressant, tu réunis dans un seul document tout un tas de petites choses qu'on est obligé de chercher et de déduire de partout parce qu'on ne se souvient pas des détails techniques.
Merci de cette démarche de synthèse et de ce guide pas à pas.
Quand ton document sera au point (bien qu'un document comme celui-ci ne soit jamais "fini" mais c'est collaboratif) il mériterait d'en faire un article dans le Wiki (mais je viens de voir que tu comptais en faire un tuto, ce qui le rend aussi utile). Il en existe bien d'autres proches, mais pas forcément aussi détaillés et complets. Et, c'est bien connu, c'est avec plusieurs explications différentes qu'on arrive à la compréhension...

Amicalement,

Dany

Dernière modification par dany93 (2013-05-29 13:44:58)

Hors ligne

#5 2013-05-29 10:39:23

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Tuto Instrument I : Altimetre pour l'Akoya

Oui Diiiiiiidddddiiiiieeeerrrr ..... Bin ma fois je n'ai pas grand chose à ajouter. Tout cela me parait bien.

Un paramètre à ne pas oublier. <visible>true</visible> à placer avant ou après le nom de l'objet. Ainsi l'objet sera ou non visible. Pratique pour des zones de clique qui ne sont pas des objets (voir dans le Hughes H4 par exemple).

Amicalement Emmanuel


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#6 2013-05-29 12:44:18

dany93
Créateur
Inscription : 2012-11-12
Messages : 78

Re : Tuto Instrument I : Altimetre pour l'Akoya

Quelques petites questions ou remarques (si j'ai bien compris, SVP me corriger sinon) :

Questions :

<type>noshadow</type>

veut dire "transparent" ?

<type>shader</type>
        <shader>chrome</shader>

veut dire "ne pas générer d'ombre" ?

Remarques :

<center>
      <x-m>0</x-m>
      <y-m>0</y-m>
      <z-m>0</z-m>
 </center>
 <axis>
      <x>-1</x>
      <y> 0</y>
      <z> 0</z>
 </axis>

veut dire : "l'axe de rotation passe par le point (0, 0, 0) et l'axe de rotation lui-même est l'axe -X (le "vecteur" -1, 0, 0)"
(et non : "se décalera de -1 sur l'axe des x a chaque 0.036 pied.")
+X ou -X inverse le sens de rotation.

De même pour

  <animation>
    <type>rotate</type>
    <object-name>InhgBgnd</object-name>
    ........
    <center>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </center>
    <axis>
      <x>1</x>
      <y>0</y>
      <z>0</z>
    </axis>
  </animation>

L'axe de rotation est +X (1, 0, 0). Pas un décalage.

       <action>
            <button>0</button>
            <repeatable>true</repeatable>
            <interval-sec>  0.1  </interval-sec>

veut dire (je pense) clic gauche (<button>0</button>) maintenu, l'incrément se répète toutes les 0.1 sec.
Sinon, des clics brefs successifs te donnent un incrément à la fois.
Dans ton exemple, le clic gauche (0) incrémente de +0.01, le clic droit central = clic molette (1) de -0.01.
Les "boutons" (3) et (4) sont les actions par rotation de la molette souris, (3) en poussant, (4) en tirant.
Ceci entre 27.50 et 31,

<wrap>  0  </wrap>

= sans tourner en rond (à 31, il faut revenir en arrière par clic droit central pour redescendre vers 27.5)

<wrap>  1  </wrap>

donnerait un retour à 27.5 quand on atteint 31 (on "tourne en rond"). Ne correspondrait pas à la manière réelle de faire avec ce réglage de pression, mais intéressant pour le cadran d'un compas.

Pour ton tableau d'interpolation "InhgBgnd", je pense que tu peux être plus rigoureux (et plus simple) en observant que ta couronne graduée fait 360° pour l'intervalle 27.5 à 31.1 inhg.
Ceci donne 360/(31.1-27.5)= 100 degrés pour 1 inhg
L'interpolation donne alors

    <interpolation>
      <entry><ind> 27.50 </ind><dep>   0.00 </dep></entry>
      <entry><ind> 28.00 </ind><dep>   50 </dep></entry>
      <entry><ind> 28.50 </ind><dep>  100 </dep></entry>
      <entry><ind> 29.00 </ind><dep> 150.00 </dep></entry>
      <entry><ind> 29.50 </ind><dep> 200 </dep></entry>
      <entry><ind> 30.00 </ind><dep> 250 </dep></entry>
      <entry><ind> 30.50 </ind><dep> 300 </dep></entry>
      <entry><ind> 31.00 </ind><dep> 350 </dep></entry>
     </interpolation>

L'échelle étant linéaire, je pense même que

    <interpolation>
      <entry><ind> 27.50 </ind><dep>   0.00 </dep></entry>
      <entry><ind> 31.00 </ind><dep> 350 </dep></entry>
     </interpolation>

suffirait.

(attends-toi à des corrections de ma part sur ce post si je réfléchis après.... Moins vite que mon ombre)

Dany

Dernière modification par dany93 (2013-05-29 21:40:17)

Hors ligne

#7 2013-05-29 14:31:59

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Tuto Instrument I : Altimetre pour l'Akoya

OK, je vais essayer de répondre et si je sèche, Emmanuel viendra à notre rescousse.

J'ai fait ce tuto avec des explication de mon niveau scolaire (CAP) de façon à ce que nos petits jeunes qui veulent se mettre au développement puissent comprendre facilement.

Si j'ai bien compris, basé sur mon piètre niveau de la langue de Shakespeare je ré-expliquerai comme ceci:

En anglais, shadow veux dire ombre. La transparence elle, est définie dans Blender, et on le voit en éditant le fichier altimeter.ac, dans les lignes en dessous de l'objet Glass, par exemple.

Shader chrome, c'est pour appliquer l'effet........................... chrome sur un cône d'hélice mais aussi sur une vitre (les reflets),

Center veux dire ................ centre, et axis veux dire ............... axe.
** petite remarque en passant pour les débutants comme moi (je sait que cela viens de l'éditeur de texte du site car j'ai eu le même soucis en préparant ce tuto), mais il est préférable d'avoir la balise d'ouverture et la balise de fermeture correspondante sur la même colonne à la même distance du bord de la page (tes balises <center> et >/center>), c'est mieux pour chercher une erreur plus tard, comme une balise manquante par exemple. (pas avec Notepad++, qui lui met la balise correspondante en sur-lignage quand tu édite l'autre balise);

Donc comme expliqué plus haut, on situe le point de référence de l'objet (qui se fait dans le modélisateur, Blender par exemple), en x=0, y=0, z=0 en mètre.
Pour faire bouger mon objet, je vais lui dire sur quel axe le faire, dans ton exemple  -1 dans l'axe des x (vers l'avant).
Si j'ai besoins de donner un axe qui n'est pas parallèle à x, ou à y ni à z, je doit lui donner deux point situés sur la ligne imaginaire de cet axe de cette manière

    <center>

<<!-- mon point A -->>
        <x1-m>0.2564</x1-m>
        <y1-m>-0.7840</y1-m>
        <z1-m>-0.5478</z1-m>

<<!-- mon point B -->>
        <x2-m>0.2554</x2-m>
        <y2-m>-0.7838</y2-m>
        <z2-m>-0.5467</z2-m>
    </center>
    <axis>
       <x>-1</x>
       <y> 0</y>
       <z> 0</z>
    </axis>
        <

Bonne remarque pour le "décalera", je pense que les gens aurons compris puisque l'on parle d'une rotation. Je vais donc remplacer de ce pas les mots "décalera" par "pivotera".

Merci pour l'info au sujet des numérotation des boutons de la souris, idem, je n'avais pas encore trouvé l'info dans mes recherches, je modifie le tuto en conséquence.

Pour moi, qui vais de temps en temps emmener ma fille chez Mc machin, wrap veux dire envelopper, ou entourer (petit souvenir de bricolage électronique, un fil électrique sur un pin). Je ne voyait pas ce que la fonction "entourer" venait faire dans le fichier.
Donc merci pour ton explication qui va aller tout droit ou il se doit dans le tuto.

Merci pour le petit calcul, je n'avait même pas pensé à ça, j'ai mesuré direct dans Gimp puisque je l'avais ouvert pour faire le dessin UVs.

Effectivement, pour un cas comme celui là ou l'espace entre les graduations est le même de bout en boout, il suffit de donner l'angle de départ et celui de la fin. Comme j'ai bossé, pour le panneau 2D de ma Caravelle, sur pas mal de jauges circulaires avec graduation irrégulière, j'ai pris la mauvaise habitude de mettre plusieurs point/angles intermédiaires (radio altimètre par exemple).

Encore merci pour ton aide, la correction dès que possible.

Dernière modification par Didier1963 (2013-05-29 15:22:47)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#8 2013-05-29 14:43:09

dany93
Créateur
Inscription : 2012-11-12
Messages : 78

Re : Tuto Instrument I : Altimetre pour l'Akoya

Mes questions sont les deux au début. C'est pour éclaircir et assurer, mais pas fondamental pour moi car je ne fais pas de 3D.
Pour le reste, il faut rester critique mais je pense que ce que je dis est vrai.

Hors ligne

#9 2013-05-29 17:32:22

dany93
Créateur
Inscription : 2012-11-12
Messages : 78

Re : Tuto Instrument I : Altimetre pour l'Akoya

Pardon, rectification :
Souris :
bouton 1 = Clic central (Clic molette)
(bouton 2 = clic droit, évidemment non utilisé pour les contrôles d'instruments)

Tu peux vérifier ça dans les (Internal Properties) devices/status/mice/mouse

Je ne te reproche pas de faire simple, c'est souvent cette simplicité qui manque dans certains tutos où les gens court-circuitent. On est alors conduit à piocher ailleurs pour trouver ce qui manque quand on débute. Le compromis entre exhaustivité et lisibilité n'est pas toujours facile, de même qu'on ne sait jamais très bien qui est en face....

J'ai rectifié mes balises mal décalées. J'avais été trop vite, mais le but ici était de replacer dans le contexte.

Dernière modification par dany93 (2013-05-29 17:55:59)

Hors ligne

#10 2013-05-29 18:16:12

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Tuto Instrument I : Altimetre pour l'Akoya

Meki buckets,

donc je vais rectifier la rectification à propos des bouton de souris. Tu as peut-être vu de l'autre coté que j'avais fait les corrections au tuto !

Justement, cet après-midi, j'ai commencé à mes faire un tableau en regardant  dans les "internal properties" que l'on accède une foi FG lancé en cliquant sur le menu "débogage" puis "Parcourire les propriétés internes". (là, Dany, je met ça pour nos apprentis lecteurs).

J'avais bien deviné pour le décalage des balises, je me doute bien que avec ton niveau de maîtrise de programation, ce n'est pas le genre de chose que tu as l'habitude de faire.
Je ne sait pas pourquoi, mais en allant d'un éditeur de texte à un autre, il y a des décalage (et pas des rotations !!!! lol)

Exemple mon cartouche "auteurs", dans Gedit j'ai deux belles colonnes de chaque côté, et en postant, c'est tout décalé.


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#11 2013-05-29 19:51:37

Helijah
Administrateur
Lieu : Chartres
Inscription : 2011-12-14
Messages : 2 011
Site Web

Re : Tuto Instrument I : Altimetre pour l'Akoya

Salut Didier,

Pour les rotation autour d'un axe quelconque (cela ne marche pas pour les translation malheureusement) il est effectivement possible de donner deux point de cet axe. FG s'occupera du reste. Mais ce n'est pas dans <center>......</center> comme tu semble l'indiquer, mais  dans <axis>.....<axis> sans donner de centre du coup puisqu'il est inclus dans les deux points donnés.

Pour la transparence, effectivement dans 99% des cas elle est donnée dans Blender, mais ce n'est pas utile en fait lol. Regarde mes pseudo ombres par exemple. Le material dans Blender est "DefaultWhite" n'ayant aucune transparence. Seule la texture est transparente et cela fonctionne aussi smile Mette de la transparence dans Blender est aussi une facilité pour le modeleur. Avoir les vitres transparente directement dans Blender rend plus simple la compréhension du modèle

Amicalement Emmanuel


Quelques avions pour FlightGear
http://helijah.free.fr

Hors ligne

#12 2013-05-29 21:23:41

dany93
Créateur
Inscription : 2012-11-12
Messages : 78

Re : Tuto Instrument I : Altimetre pour l'Akoya

Didier1963 a écrit :

cet après-midi, j'ai commencé à mes faire un tableau en regardant  dans les "internal properties"

Une idée de ce qu'on peut trouver dans les Internal properties (accessibles directement par la touche "/" du pavé numérique).
Tu l'as aussi dans FG\data\Docs\README.properties
Classées ici par thèmes, très incomplet car il y en a trop, personne n'a eu le courage, cela dépend des avions et, en plus, c'est évolutif. Mais ça donne quand même un aperçu.

Dernière modification par dany93 (2013-05-30 08:56:17)

Hors ligne

#13 2013-05-29 21:42:07

Didier1963
Developpeur
Lieu : Poitiers
Inscription : 2012-10-24
Messages : 1 233

Re : Tuto Instrument I : Altimetre pour l'Akoya

Haaaa, et bien c'est exactement ce que j'ai fait ce matin sur ma verrière.
Comme j'ai refait ma texture de livery, j'en ai profité pour la faire sur une image avec un canal alpha. Et oui, ma question de l'autre foi ! J'ai finalement décidé d'essayer cette methode qui a marché du premier coup.
Comme cela, j'ai fait tout opaque sur mon image, et j'ai fait un "trou" pour la partie de la verrière translucide. Elle à maintenant les fameux bord peint, et j'en ai même profité pour la fumer, ouiiiiiii, hoooooooooooo , la teinter en marron clair.
Il ne me reste plus qu'a modifier le cadre pour qu'il recouvre la partie peinte, car cela se voit de l'intérieur. Plus exactement, on voit à travers la peinture !!!
Pour tes pseudo ombres, je n'ai pas encore regardé les détails, j'ai prévu cela pour plus tard, pour l'instant je te les ai juste empruntées en faisant ma propre image avec un fond transparent (canal alpha) et un screenshot Blender vu de dessus que j'ai découpé pour faire un cache et teinter l'intérieur. ***
Comme cela, après quand je maîtriserai mieux, je pourrai t"en faire........... de l'ombre !!!!!
Sinon, pour les rotations, j'ai mal du m'expliquer, je ne me souvient pas avoir dit que c'était pour les translation puisque tout tourne dans cet instrument là.
Les translations, se serra pour un autre tuto, quand j’aurai bien compris le principe (pour les image de ma diode, ou pour les déplacement de bandes avec des chiffres, par exemple. J' y suis dessus, entre deux autres choses (hé oui, cela fait du bien de changer un peux pour ne pas trop se prendre la tête sur une seule chose et se retrouver bloqué).
Donc au programme de ma séance de travail, il y à pratiquement à chaque foi :
- du dessin ou arangement de photo (Gimp, bon c'est la 2.8.2, mais ça va déja bien);
- de la modélisation, soit création de nouveaux objets, soit reprise d'enciens essais pour les améliorer (Blender 2.6.5, j'ai pas encore pris le temps d'installer la dernière mouture);
- de la recherche et analyse de fichier Xml pour faire mes propres fichiers;
- de la lecture sur le NET pour chercher de la doc sur l'avion ou l'instrument;
- e du chambrage d'admin de site à l’occasion !

Donc là, en ce moment précis, il y a d'allumé, Blender, Gimp, Notepad++ (sous Wine, oui, je sais, mais j'aime bien la fonction de mise en évidence des jeux de balises), Gedit, Chromium, et une a deux console, pour de temps à autre faire les essais sur FG.
Si si, il tiens le coup mon petit portable avec une carte ATI Radeon que je ne peux pas utiliser faute de trouver le bon pilote !
Ha, bien sur, quand je veux faire une pause et faire un petit tour d'Akoya, j’éteins tout le reste parce que les FPS, c'est déjà pas folichon au départ (de 2 à 8, quand tout va bien!!!!!).

*** cela sera inclu dans un tuto plus tard, peut être pas pour l'Akoya car il est en bonne voie (d’ailleurs il faut que j'en parle avec mon ingénieur en chef, je pense que l'on va pouvoir sortir une version d'essais vu qu'il vole déjà pas si mal que çelà et que je n'ai toujours pas de nouvelle de chez LISA Airplanes. Passe le balais dans ton hangar, il va falloir de la place, même les ailes repliées !!)

Dernière modification par Didier1963 (2013-05-29 21:45:58)


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#14 2014-07-04 19:36:20

C-VALL
Developpeur
Inscription : 2012-11-15
Messages : 611

Re : Tuto Instrument I : Altimetre pour l'Akoya

Hé!hé!

Helijah a écrit :

Bin ma fois je n'ai pas grand chose à ajouter. Tout cela me parait bien.

Attends, la moulinette n'a pas encore passé.
Après le Tupolev, je m'attaque à mon "Old favourite" qui est le Stagg.
Va faire chaud!

Dernière modification par C-VALL (2014-07-04 19:37:31)


In Vino Veritas

Hors ligne

Pied de page des forums

Propulsé par FluxBB 1.4.8