Script flightgear

Page 5 sur 17 Précédent  1, 2, 3, 4, 5, 6 ... 11 ... 17  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Script flightgear

Message  Alexis le Ven 29 Juin 2012 - 19:32

J'invite vraiment tout le monde à assister à la petite réunion sur Mumble, ce soir vers 21h pour discuter du script.

Celui-ci va apporter une aide considérable pour toutes les contributions au simulateur, les idées de tous sont demandés, même par curiosité, n'hésitez pas à venir.

Serveur : dacer.homeip.net
Port : 64738
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Ven 29 Juin 2012 - 19:49

Je viens de mettre en ligne une version stable du script que vous pouvez tester : http://fgalexis.jimdo.com/script/
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  F-JJTH le Ven 29 Juin 2012 - 20:03

J'y serai ! Wink

_________________
Premier vol solo : 12/06/2012
Visitez le Hangar de la PAF
Mon Hangar : http://clemaez.fr/flightgear = Script pour terragear-cs + apt850

Le seul moment où vous avez trop de carburant est quand l'ULM est en feu. (Issue du manuel du pilote ULM )
avatar
F-JJTH
Pilote de Ligne

Messages : 2010
Date d'inscription : 19/01/2011
Age : 28
Localisation : Carpentras - LFNH

Voir le profil de l'utilisateur http://www.clemaez.fr/flightgear

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Ven 29 Juin 2012 - 22:12

Pour rené,

J'ai commencé à insérer les prop de Flightgear, voilà ce que ça donne :
Code:

famille = ['controls','instrumentation','flight_control','engines','fuel','gear']

controls = ['/controls/flight/aileron',
         '/controls/flight/aileron-trim',
         '/controls/flight/elevator',
         '/controls/flight/elevator-trim',
         '/controls/flight/rudder',
         '/controls/flight/rudder-trim',
         '/controls/flight/flaps',
         '/controls/flight/slats',
         '/controls/flight/BLC',
         '/controls/flight/spoilers',
         '/controls/flight/speedbrake',
         '/controls/flight/wing-sweep',
         '/controls/flight/wing-fold',
         '/controls/flight/drag-chute',]
         
flight_control = ['/controls/flight/aileron',
         '/controls/flight/aileron-trim',
         '/controls/flight/elevator',
         '/controls/flight/elevator-trim',
         '/controls/flight/rudder',
         '/controls/flight/rudder-trim',
         '/controls/flight/flaps',
         '/controls/flight/slats',
         '/controls/flight/BLC',
         '/controls/flight/spoilers',
         '/controls/flight/speedbrake',
         '/controls/flight/wing-sweep',
         '/controls/flight/wing-fold',
         '/controls/flight/drag-chute']

engines = ['/controls/engines/throttle_idle',
         '/controls/engines/engine[%d]/throttle',
         '/controls/engines/engine[%d]/starter',
         '/controls/engines/engine[%d]/fuel-pump',
         '/controls/engines/engine[%d]/fire-switch',
         '/controls/engines/engine[%d]/fire-bottle-discharge',
         '/controls/engines/engine[%d]/cutoff',
         '/controls/engines/engine[%d]/mixture',
         '/controls/engines/engine[%d]/propeller-pitch',
         '/controls/engines/engine[%d]/magnetos',
         '/controls/engines/engine[%d]/boost',
         '/controls/engines/engine[%d]/WEP',
         '/controls/engines/engine[%d]/cowl-flaps-norm',
         '/controls/engines/engine[%d]/feather',
         '/controls/engines/engine[%d]/ignition',
         '/controls/engines/engine[%d]/augmentation',
         '/controls/engines/engine[%d]/afterburner',
         '/controls/engines/engine[%d]/reverser',
         '/controls/engines/engine[%d]/water-injection',
         '/controls/engines/engine[%d]/condition']

fuel = ['/controls/fuel/dump-valve',
         '/controls/fuel/tank[%d]/fuel_selector',
         '/controls/fuel/tank[%d]/to_engine',
         '/controls/fuel/tank[%d]/to_tank',
         '/controls/fuel/tank[%d]/boost-pump[%d]',
         '/consumables/fuel/tank[%d]/level-lbs',
         '/consumables/fuel/tank[%d]/level-gal_us',
         '/consumables/fuel/tank[%d]/capacity-gal_us',
         '/consumables/fuel/tank[%d]/density-ppg',
         '/consumables/fuel/total-fuel-lbs',
         '/consumables/fuel/total-gal_us']
            
gear = ['/controls/gear/brake-left',
         '/controls/gear/brake-right',
         '/controls/gear/brake-parking',
         '/controls/gear/steering',
         '/controls/gear/gear-down',
         '/controls/gear/antiskid',
         '/controls/gear/tailhook',
         '/controls/gear/tailwheel-lock',
         '/controls/gear/wheel[%d]/alternate-extension']
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Patten le Sam 30 Juin 2012 - 19:20

Pas moyen d'importer quoi que ce soit avec la 2.63a, ni un .ac, ni par xml, j'ai pourtant les choix pour flightgear dans le menu geek scratch

Very Happy

_________________
Ils ont les montres, nous on a le temps...
Pour les textures du terrrain, c'est ICI

Mon hangar en chantier ICI

Oublies ce que tu as donné, souviens toi toujours de ce que tu as reçu...
avatar
Patten
Pilote de chasse

Messages : 3187
Date d'inscription : 16/01/2011
Age : 62

Voir le profil de l'utilisateur http://pattenflightgear.wifeo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Sam 30 Juin 2012 - 19:24

As-tu un message d'erreur
Je suis mumble
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  Patten le Sam 30 Juin 2012 - 19:53

Grrr, je ne peux pas changer de salon dans Mumble scratch

Je n'ai pas de message d'erreur apparent (je le prendrai où éventuellement?).

Je fais Import => Flightger (xml), je sélectionne le dr400-jsbsim-set.xml par exemple, Blender mouline un peu, et la fenêtre de modélisation apparaît, mais vide. albino

Blender a pourtant l'air d'être satisfait de lui. Very Happy

Si je lance Blender dans une console, c'est ma 2.49 qui se lance, même si je lance l'exécutable dans le dossier de la 2.63a.

Very Happy

_________________
Ils ont les montres, nous on a le temps...
Pour les textures du terrrain, c'est ICI

Mon hangar en chantier ICI

Oublies ce que tu as donné, souviens toi toujours de ce que tu as reçu...
avatar
Patten
Pilote de chasse

Messages : 3187
Date d'inscription : 16/01/2011
Age : 62

Voir le profil de l'utilisateur http://pattenflightgear.wifeo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Sam 30 Juin 2012 - 19:55

ok va sur mumble , j'observe ta venu
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  Patten le Sam 30 Juin 2012 - 19:58

Il n'est pas d'ac, ma bouche est barrée en vert.

Very Happy

_________________
Ils ont les montres, nous on a le temps...
Pour les textures du terrrain, c'est ICI

Mon hangar en chantier ICI

Oublies ce que tu as donné, souviens toi toujours de ce que tu as reçu...
avatar
Patten
Pilote de chasse

Messages : 3187
Date d'inscription : 16/01/2011
Age : 62

Voir le profil de l'utilisateur http://pattenflightgear.wifeo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Sam 30 Juin 2012 - 20:01

j'essai de t'nvoyer des messages


Chat du forum ????
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  Patten le Sam 30 Juin 2012 - 20:34

Code:
/home/titimint/fgdata/Aircraft/Aerostar-700/aerostar700-set.xml
Name : /home/titimint/fgdata/Aircraft/Aerostar-700/aerostar700-set.xml
current_path : /home/titimint/blender-2.63a
BaseName : aerostar700-set.xml
DirName  : /home/titimint/fgdata/Aircraft/Aerostar-700
Aircraft/Aerostar-700/
/home/titimint/fgdata/Aircraft/Aerostar-700/aerostar700-set.xml
xml_import:parse_file()  /home/titimint/fgdata/Aircraft/Aerostar-700/aerostar700-set.xml
         Pas d'offset
         Pas de rotation
xml_import:parse_file()  Aircraft/Aerostar-700/Models/aerostar.xml
   ac_manager:clone_ac() Aerostar-700/Models/aerostar700.ac
   Clone aerostar700.ac in 0.01 sec
xml_import:parse_file()  Aircraft/Aerostar-700/Models/cabin.xml
   ac_manager:clone_ac() Aerostar-700/Models/cabin.ac
   Clone cabin.ac in 0.01 sec
Traceback (most recent call last):
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/__init__.py", line 165, in execute
    import_xml(   filename, ac_option, xml_option )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 888, in import_xml
    read_file_xml( conversion(filename) )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 839, in read_file_xml
    parse_file( conversion(file_name), -1 )         
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 797, in parse_file
    parse_file( conversion(file_include), no )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 797, in parse_file
    parse_file( conversion(file_include), no )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 787, in parse_file
    file_includes = parse_node( node, filename )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 726, in parse_node
    ret_list += parse_node( n, file_name )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 726, in parse_node
    ret_list += parse_node( n, file_name )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 663, in parse_node
    read_offset_path( node.parentNode, xml_file )
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 588, in read_offset_path
    xml_file.offset = Vector( (0.0,0.0,0.0) )  + read_vector_center(child)
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 134, in read_vector_center
    v.y = ret_float_value(childs[0])
  File "/home/titimint/blender-2.63a/2.63/scripts/addons/ io_fg2blender/xml_import.py", line 341, in ret_float_value
    s = float( sup_space( child.nodeValue ) )
ValueError: could not convert string to float: '-0.0xxx'

location:<unknown location>:-1

location:<unknown location>:-1

Very Happy

_________________
Ils ont les montres, nous on a le temps...
Pour les textures du terrrain, c'est ICI

Mon hangar en chantier ICI

Oublies ce que tu as donné, souviens toi toujours de ce que tu as reçu...
avatar
Patten
Pilote de chasse

Messages : 3187
Date d'inscription : 16/01/2011
Age : 62

Voir le profil de l'utilisateur http://pattenflightgear.wifeo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Patten le Lun 2 Juil 2012 - 15:17

Bonjour à tous,

Demi victoire, pour pouvoir enfin avoir la bonne vue, et importer via les xml, il faut qu'à l'ouverture de Blender je fasse un "split aréa" et là, ho magie!, les fenêtres des calques apparaissent, ainsi que les objets concernés.

La différence entre les 2 fenêtres, en haut à gauche "Front ortho (local)", et "User ortho" pour la fenêtre qui va bien.

on avance...



Very Happy

_________________
Ils ont les montres, nous on a le temps...
Pour les textures du terrrain, c'est ICI

Mon hangar en chantier ICI

Oublies ce que tu as donné, souviens toi toujours de ce que tu as reçu...
avatar
Patten
Pilote de chasse

Messages : 3187
Date d'inscription : 16/01/2011
Age : 62

Voir le profil de l'utilisateur http://pattenflightgear.wifeo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 2 Juil 2012 - 16:00

Salut Patten,

Je me suis penché sur ton problème, dimanche, et je pense qu'il faut reconfigurer blender.
Je n'ai pas réussi à recréer l'absence des layers dans la fenêtre 3D. Et pourtant, cela m'était déjà arrivé.
Par contre, tu devrais essayer la "manip" suivante :
Redémarre avec un blender configuré par défaut.

Dans le menu "File"
Tu recharges la config par défaut : "Load Factory Settings"
Tous les addons sont retirés, ansi que la configuration 'GLSL', et vbos
Ensuite tu réactives le script
Ctrl-Alt-U ... etc ...
Et tu testes le script.


Si cela fonctionne, tu réactives l'accélaration "GLSL, et vbo". Et l'affichage des textures sera meilleur.
N'oublie pas de changer le mode d'affichage. Dans la fenêtre 3d en bas ,à côté, de "Object Mode" il y a un bouton où tu choisi le mode d'affichage :
"Texture", ou "Solid" ou "Wireframe" ou "Boundinbox".
Mets ce bouton en texture :
Cette fois la transparence est mieux géré.

Pour avoir les animations il faut les chargés après le chargement de l'avion
Touche "F"
Un menu flightgear apparait:
Et tu choisi "Creation animations"

Pour lancer les animations chargés, le raccourci :
"Alt-A" lance/stop les animations
Les flèches droite et gauche déplace la "frame" courrante.

Tiens-moi au courant


A+


avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 2 Juil 2012 - 17:13

Etat actuel du script :

Disfonctionnement (découvert):


1.
Lors de l'import de certains avions, blender me renvoi une erreur sur des doublons de vertex sur des faces, cela arrive.
Code:
BLI_assert failed: source/blender/blenlib/intern/edgehash.c:98, BLI_edgehash_insert(), at 'v0 != v1'
Cette erreur est issu du chargement de : A-10-set.xml
Cela entraîne un cafouillage au niveau des objets "empty" qui donneront des animations farfelues. Ont peut y remédier avec une manip 'douteuse' que je ne vous détaille pas car c'est plus une "bidouille" qu'autres choses. Dans certains avions le chargement est interrompu.

2.
Lors de l'import de "fkdr1/fkdr1-set.xml"
Les coordonnées de texture ne sont pas correct. Mais il n'y a aucun message d'erreurs. Il faut que je regarde cela de plus près.

3.
Lors du chargement de "fw190/fw190a8-set.xml"
Tout ce passe bien, mais au moment de la visualisation des animations deux roues ont été créé. Pareil à regarder de plus près. (paramètre compression ???)

4.
Lors du chargement du DR400 rembrandt.
Les lumières ont besoin d'un objet pour délimiter leur influence(si je ne me trompes pas). Ces objets cacheront entièrement l'avion. En cachant ces objets, on peu afficher quand même l'avion.
Sélectionnez l'objet puis le raccourci clavier 'H', permet de cacher l'objet (il n'est pas effacé). Recommencez l'action pour tout les objet de la lumière rembrandt.
J'envisage de modifer l'affichage de ces objets, une fois intercepté dans le xml, en utilisant l'affichage "wire", des objets. Wire = affichage en fil de fer. De cette manière l'objet est toujours présent, mais ne masque plus l'avion.
@ Clément : Peux-tu me donner la structure de ces lumières dans le fichier xml.
Tu pensais peut-être à cela en créant l'option light ?
Il faut modifier la propriété blender de l'objet
bpy.data.objects['Cube'].draw_type='WIRE'
Cela devrait suffire sinon: il y a aussi :
bpy.data.objects['Cube'].show_wire=True (par défaut False)

5.
Lors du chargement du DR400 (standard 2.6)
Si l'on charge panel.xml, les boutons de la radios sont au bon endroit.
Par contre, si l'on charge l'avion complet, certains boutons de la radios ne sont pas à leur place. On le voit bien en lançant l'animation. Certainement la gestion des offset des roll-deg posent ici un problème. La première correction a déjà corriger certains problèmes, il faut que je regarde cela.

6.
Le dc-3 m'a donné des soucis avec l'animation du volant. En décortiquant le xml, je me suis apperçu que les 'blocs' d'animations n'étaient pas dans le bon l'ordre. En modifiant le xml. Cela a remis les animations dans le bon ordre. Par contre j'ignore encore l'influence que cela peut avoir dans flightgear ???? (A regarder)

Avancement
En ce moment j'incorpore, les données de flightgear dans blender.
Certaines propriétés ont été ajoutés dans blender.
Par exemples:
Dans le cas des armatures
bpy.dat.objects['Cube'].data.fg.familly
bpy.dat.objects['Cube'].data.fg.familly_value (juste pour la gestion interne)
bpy.dat.objects['Cube'].data.fg.property_value
bpy.dat.objects['Cube'].data.fg.factor
bpy.dat.objects['Cube'].data.fg.xml_file
bpy.dat.objects['Cube'].data.fg.xml_present (gestion interne)
bpy.dat.objects['Cube'].data.type_anim (1:rotation 2:translation 4:pick)

Dans le cas des meshs
bpy.data.objects['Cube'].data.fg.ac_file


pour tester si l'objet est une armature ou un mesh
bpy.data.objects['Cube'].type renseigne son type :
bpy.data.objects['Cube'].type='ARMATURE' ou bpy.data.objects['Cube'].type='MESH'


A faire (urgent)
Aujourd'hui , lors de l'import de fichier .ac , à différents endroit, le script gère cela en clonant les objets. Il en résulte, quand modifiant un objet cela se retrouve sur tous le objets identiques. (Tete de pilote par exemple : pour le dc-3 Models/Cockpit/cockpit.xml)
Il faudra que je fasse la même chose pour les animations. Lorsque un fichier xml est incorporé plusieurs fois. Il faudra créer des 'clones' de l'animation, pour qu'une modification d'animation se répercute sur ces "clones".


Bientôt


Je vais faire des test d'écriture de fichier .ac et fichier xml.
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 2 Juil 2012 - 18:28

@Patten

Je n'arrive pas à bien voir sur ta recopie d'écran .....
Mais cela me fait penser à une chose.
Dans blender on peut configurer l'affichage de deux manières. Ortho ou Perspective
La touche '5' du clavier numérique permet de passer le l'un à l'autre


Dans perspective certains paramètre sont ajustable.
Partie droite de la fenêtre 3d (touche N)

Panel View:
Lens = 35 par default, c'est l'equivalent d'un objectif photo de 35mm.
Clip Start et End
Permet de régler les plans de cliping . Toutes parties d'un objet distant par rapport à l'oeil virtuel, d'une distance inférieur à Start et supperieur à End .ne seront pas affichées.
Dans le mode ortho cela n'a pas d'effet
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Mer 4 Juil 2012 - 17:04

Bonjour tout le monde,


Pour commencer une recopie d'écran

Le script arrive à charger le reflet des verrières, en lisant l'animation "shader". (Le test a été sur le fgdata 2.6)

J'ai une question, a propos de la variable d'environnement FG_ROOT

Cette variable est-elle créé sur tout les systèmes (windows, linux mac) ?? Car pour charger les textures des reflets, il faut charger une texture du fgdata, /Aircraft/generic/...
Pour l'instant le chemin est en dur dans le script, et forcement incompatible avec tout le monde. C'est un chemin spécifique a mon "ordi".
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Jeu 5 Juil 2012 - 14:54

Bonjour tout le monde,


Je me pose beaucoup de questions, sur l'animation dans flightgear, et je trouve des incohérences, dans la déclaration de la translation de la verrière. Ces animations se trouvent dans le fichier interior.xml du DR400-jsbSim. Elles indiquent à flightgear de faire des translations avec comme propriété "instrumentation/doors/crew/position-norm". Or le vecteur de translation n'est n'est pas toujours identiques, les valeurs d'interpolation ne sont pas toujours identiques. Or flightgear affiche correctement la translation. C'est pour moi un mystère.

Je fait le test suivant dans flightgear. Je modifie interior.xml pour avoir la même interpolation et le même vecteur, pour la plaque et le reste de la verrière :
Code:
<entry><ind> 1.00 </ind><dep> 0.40 </dep></entry>
en
<entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
Et la plaque fait une translation double ! pourquoi ????
Qu'est-ce qui permet de faire des transformations différentes avec des valeurs identiques. ????




Interior.xml
Code:
  <animation>
    <type>translate</type>
    <object-name>intverriere</object-name>
    <object-name>longeronint</object-name>
    <object-name>toitverriereint</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
    </interpolation>
    <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
    </axis>
  </animation>

  <animation>
    <type>translate</type>
    <object-name>plaque_canopy</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.40 </dep></entry>
    </interpolation>
    <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
    </axis>
  </animation>

  <animation>
    <type>translate</type>
    <object-name>poignee_canopy</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
    </interpolation>
    <axis>
      <x> -0.0625 </x>
      <y>  0.0625 </y>
      <z>  0.000 </z>
    </axis>
  </animation>

J'ai regardé du côté du nasal, (mais je ne connais pas grand chose) et je ne trouve rien relié à la propriété ou aux objets. Peut-être doors.nas, mais il me semble, que ce fichier n'est utilisé que pour donnée le temps de variation de la propriété ??
Je sèche ..... Very Happy
A+
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Lun 9 Juil 2012 - 18:52

Salut rené,
Je suis de retour ! je vais essayer de m'attaquer aux soucis de xml que tu rencontre.

Je commence par le problème de la plaque du DR-400 :
Alors aucune liaison avec le nasal, ça vient pas de là, la prop indique effectivement une durée d'animation, mais il n'y a aucune interpolation dans le nasal. Je regarde le xml, et la je crois que ça déconne.
Code:

  <model>
    <name>Pilote</name>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/pedals/pedals.xml</path>
    <offsets>
      <x-m> -2.047 </x-m>
      <y-m> -0.234 </y-m>
      <z-m> -0.225 </z-m>
    </offsets>
  </model>

  <model>
    <name>Pilote</name>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/pedals/pedals.xml</path>
    <offsets>
      <x-m> -2.047 </x-m>
      <y-m>  0.234 </y-m>
      <z-m> -0.225 </z-m>
    </offsets>
  </model>

  <!-- Manche -->
  <model>
    <name>Pilote</name>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Handle/handle.xml</path>
    <offsets>
      <x-m> -1.497 </x-m>
      <y-m>  0    </y-m>
      <z-m> -0.21 </z-m>
    </offsets>
  </model>

Pourquoi à chaque fois, il y a une balise <name>Pilote</name>, bien étrange, ça doit être une erreur humaine. Un mauvais copier coller de la balise (ligne 55-63):
Code:

  <model>
    <name>Pilote</name>
    <path>Aircraft/DR400-jsbSim/Models/Pilot/pilot.xml</path>
    <offsets>
      <x-m> -1.474 </x-m>
      <y-m> -0.251 </y-m>
      <z-m> -0.029 </z-m>
    </offsets>
  </model>
Et d'ailleurs, pourquoi avoir mis une balise <name>Pilote</name> ? je me rends compte qu'on peut donner un nom à l'ensemble d'un fichier 3d (externe) et s'en servir pour l'animation. Je ne connaissait pas ça, si dans ce fichier une animation appelait l'objet Pilote (qui est donc un groupe d'objets), ça causerait de gros problèmes.

J'ai testé et ajouté une animation incluant le groupe d'objet Pilote :
Code:

  <animation>
    <type>rotate</type>
    <object-name>Pilote</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind>  0.00 </ind><dep>  0.00 </dep></entry>
      <entry><ind>  0.12 </ind><dep> 45.00 </dep></entry>
    </interpolation>
    <axis>
      <x>  0 </x>
      <y>  0 </y>
      <z>  1 </z>
    </axis>
    <center>
      <x-m> -1.064 </x-m>
      <y-m>  0.000 </y-m>
      <z-m>  0.000 </z-m>
    </center>
  </animation>
Tout ce qui à été inclu dans ce <name>Pilote</name> est animé !

Figure toi que la plaque aussi est externe au fichier interior.ac :
Code:

<!-- Plaque interieur canopy -->
  <model>
    <name>plaque_canopy</name>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/plaques/plaque_canopy.xml</path>
    <offsets>
      <x-m> -0.991 </x-m>
      <y-m> 0.000 </y-m>
      <z-m> 0.701 </z-m>
    </offsets>
  </model>
L'ensemble de ce qui a dans le fichier plaque_canopy.ac sera nomé plaque_canopy et regarde bien, il y a un offsets. Comment ceci est géré dans FlightGear ?

Dis-moi si je me trompe, un offset n'est rien d'autre qu'une animation permanente de type translation. Ne serait-ce pas encore un soucis d'ordre d'animation ?
Je prends la partie X du vecteur déplacement, soit -0.991 (dans le offset,le négatif va vers l'avant). Elle doit rentrer en conflit avec la translation en X de la verrière. J'ai du mal à comprendre, Je perds le fil en essayant de visualiser le problème, j’essaie de calculer la chose dans tout les sens, j'y arrive pas. Je pense que la personne qui à réalisé ça à fonctionné en essayant plusieurs fois et en cherchant la bonne valeur

Je sais que tu as une bonne expérience en géométrie dans l'espace, tu vas peut-être trouver après ce que je viens d'écrire, en tout cas ça montre tout l'intérêt d'utiliser un logiciel pour gérer le xml, plus d'erreurs humaines.

@++, Alexis


Dernière édition par Alexis le Lun 9 Juil 2012 - 19:23, édité 1 fois
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Lun 9 Juil 2012 - 18:58

Je sais !

0.8 = 2 x 0.4

La translation de 0.4 se produit 2 fois, une fois pour l'objet et une fois pour son centre. Or le déplacement du centre de l'objet implique un déplacement de cet objet, soit un déplacement final de 0.8 !

C'est ça ou je dis une connerie de plus ?

[édit] euh c'est pas très logique ce que je dis, mais il y a quelque chose comme ça qui se passe
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Lun 9 Juil 2012 - 19:21

J'ai raison ! ah ah ! (oui, je cherche depuis longtemps, alors je suis bien content d'avoir compris lol)

J'ai viré l'animation de la plaque dans fichier interrior.xml et j'ai aussi viré le <name>plaque_canopy<name> du offset

J'ai ensuite placé une animation de 80 cm dans le fichier plaque_canopy.xml

J'ai donc les deux fichiers suivant :

interior.xml
Code:

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

<!-- ########################################

 # DR400-jsbSim by PAF team
 # April 2012 : Modified by PAF team
 # http://equipe-flightgear.forumactif.com

##########################################-->

<PropertyList>

  <path>interior.ac</path>

  <animation>
    <!-- Objets opaques -->
    <object-name>interieur</object-name>
    <object-name>tour</object-name>
    <object-name>sieges</object-name>
    <object-name>ceintures</object-name>
    <object-name>sono</object-name>
    <object-name>longeronint</object-name>
    <object-name>toitverriereint</object-name>
    <object-name>poignee_canopy</object-name>

    <!-- Objets transparents -->
    <object-name>intverriere</object-name>
    <object-name>intverriere2</object-name>
  </animation>

 <animation>
    <type>shader</type>
    <shader>chrome</shader>
    <texture>Aircraft/Generic/Effects/glass_shader.png</texture>
    <object-name>intverriere</object-name>
    <object-name>intverriere2</object-name>
  </animation>

  <animation>
    <type>noshadow</type>
    <object-name>intverriere</object-name>
    <object-name>intverriere2</object-name>
  </animation>

  <animation>
    <type>select</type>
    <object-name>intverriere</object-name>
    <object-name>intverriere2</object-name>
    <condition>
      <property>sim/model/config/glass-reflection</property>
    </condition>
  </animation>

  <!-- Pilote -->
  <model>
    <path>Aircraft/DR400-jsbSim/Models/Pilot/pilot.xml</path>
    <offsets>
      <x-m> -1.474 </x-m>
      <y-m> -0.251 </y-m>
      <z-m> -0.029 </z-m>
    </offsets>
  </model>

<!-- Plaque interieur canopy -->
  <model>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/plaques/plaque_canopy.xml</path>
    <offsets>
      <x-m> -0.991 </x-m>
      <y-m> 0.000 </y-m>
      <z-m> 0.701 </z-m>
    </offsets>
  </model>

  <!-- Tableau de bord -->
  <model>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/panel.xml</path>
    <offsets>
      <x-m> -1.859 </x-m>
      <y-m>  0.000 </y-m>
      <z-m>  0.099 </z-m>
      <roll-deg>    0.000 </roll-deg>
      <pitch-deg>  -5.000 </pitch-deg>
      <heading-deg> 0.000 </heading-deg>
    </offsets>
  </model>

  <!-- Les palonniers -->
  <model>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/pedals/pedals.xml</path>
    <offsets>
      <x-m> -2.047 </x-m>
      <y-m> -0.234 </y-m>
      <z-m> -0.225 </z-m>
    </offsets>
  </model>

  <model>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Panel/Instruments/pedals/pedals.xml</path>
    <offsets>
      <x-m> -2.047 </x-m>
      <y-m>  0.234 </y-m>
      <z-m> -0.225 </z-m>
    </offsets>
  </model>

  <!-- Manche -->
  <model>
    <path>Aircraft/DR400-jsbSim/Models/Interior/Handle/handle.xml</path>
    <offsets>
      <x-m> -1.497 </x-m>
      <y-m>  0    </y-m>
      <z-m> -0.21 </z-m>
    </offsets>
  </model>
 

  <!-- Canopy -->
  <animation>
    <type>rotate</type>
    <object-name>poignee_canopy</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind>  0.00 </ind><dep>  0.00 </dep></entry>
      <entry><ind>  0.12 </ind><dep> 45.00 </dep></entry>
    </interpolation>
    <axis>
      <x>  0 </x>
      <y>  0 </y>
      <z>  1 </z>
    </axis>
    <center>
      <x-m> -1.064 </x-m>
      <y-m>  0.000 </y-m>
      <z-m>  0.000 </z-m>
    </center>
  </animation>
 
  <animation>
    <type>translate</type>
    <object-name>intverriere</object-name>
    <object-name>longeronint</object-name>
    <object-name>toitverriereint</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
    </interpolation>
    <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
    </axis>
  </animation>



  <animation>
    <type>translate</type>
    <object-name>poignee_canopy</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
    </interpolation>
    <axis>
      <x> -0.0625 </x>
      <y>  0.0625 </y>
      <z>  0.000 </z>
    </axis>
  </animation>

  <animation>
    <type>pick</type>
    <object-name>poignee_canopy</object-name>
    <action>
      <button>0</button>
      <binding>
        <command>nasal</command>
        <script>globals.dr400.doorsystem.crewexport();</script>
      </binding>
    </action>
  </animation>

</PropertyList>

et plaque_canopy.xml
Code:

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

<!-- ########################################

 # DR400-jsbSim by PAF team
 # April 2012 : Modified by PAF team
 # http://equipe-flightgear.forumactif.com

##########################################-->

<PropertyList>

  <path>plaque_canopy.ac</path>
 
  <animation>
    <type>translate</type>
    <object-name>plaque_canopy</object-name>
    <property>instrumentation/doors/crew/position-norm</property>
    <interpolation>
      <entry><ind> 0.12 </ind><dep> 0.00 </dep></entry>
      <entry><ind> 1.00 </ind><dep> 0.80 </dep></entry>
    </interpolation>
    <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
    </axis>
  </animation>
</PropertyList>

Et ça fonctionne !

Donc autrefois, l'animation de 40cm déplaçait l'objet (ou plutôt) le groupe d'objet, ainsi que le offset, soit un déplacement total de 80cm

Moralité : Ne jamais faire ça Smile
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  F-JJTH le Lun 9 Juil 2012 - 20:07

scratch voila voila voila... bon ben on s'rappelle dans 1 semaine quand j'aurai compris hein Razz

Plus sérieusement : c'est cool d'avoir décortiqué et compris ce qui se passait ! Car je me souviens avoir été obligé de faire une animation bizarre pour la poignée situé au dessus du pilote. Dès que j'ai le temps je regarde les xml pour y comprendre un peu mieux.

Bravo Alexis !

Amicalement,
Clément

_________________
Premier vol solo : 12/06/2012
Visitez le Hangar de la PAF
Mon Hangar : http://clemaez.fr/flightgear = Script pour terragear-cs + apt850

Le seul moment où vous avez trop de carburant est quand l'ULM est en feu. (Issue du manuel du pilote ULM )
avatar
F-JJTH
Pilote de Ligne

Messages : 2010
Date d'inscription : 19/01/2011
Age : 28
Localisation : Carpentras - LFNH

Voir le profil de l'utilisateur http://www.clemaez.fr/flightgear

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 9 Juil 2012 - 20:14

Salut Alexis,


Heureux de te lire, je n'ai pas voulu relancer le post, même en sachant ton retour Very Happy
Je n'est pas creusé le problème, car j'ai préféré continuer le script, car il me semble bien lancé. Je n'ai pas trop de mal, a m'y retrouver, finalement, c'est bon signe Wink
Cela me fait pensé à un post, que je trouve très juste, où tu écris : il vaut mieux écrire une interpolation avec 2 x 2 = 4 plutôt que (-2) x (-2) = 4. C'est typiquement le genre de chose qui amène beaucoup de soucis à la longue. A la fin cela rend les choses difficilement "maintenable".

Les problèmes d'offset m'ont posés beaucoup de soucis, mais j'ai réussi à les résoudre (j'espère...). Pour les offsets, tu as raison, ce n'est qu'une translation (des fois des rotations aussi) au chargement. Si je devais faire une programme qui utiliserais cela, alors je ferais ses changements de repère, au moment de la création de la vbo (vertex buffer object=transmission du maillage à la carte graphique) pour éviter un calcul supplémentaire à chaque image (optimisation). Je n'ai jamais regardé le code de flightgear, mais on peut être sûr à 99%.

Actuellement le script arrive à lire les animations suivantes :
rotate
translate
pick
shader
spin
light

Je pense que l'animation "light" est plus complexe que ce que je fait.(Je laisse cela de côté pour l'instant ...)

J'ai posté sur flightgear.org, http://www.flightgear.org/forums/viewtopic.php?f=18&t=16848
et un utilisateur "mr_no" m'a dit que pour les propriétés YAsim les repères ne sont pas les mêmes .... gr ... Mais cela me semble curieux, je préfère avoir ton avis.
Il me manque encore l'ensemble des propriétés et avec leur valeur de variations. Tu verras dans le fichier props_armature.py, les propriétés que tu m'as fourni. J'ai rajouté ton nom sur le fichier, complètes-le.
Pour les propriétés que l'on oubliera, on pourra faire un appel sur le forum officiel, je pense.

Forcement, en faisant plein de test je suis tombé sur des choses qui m'ont plues. L'animation du train de l'A-10 est superbe, j'adore le mouvement des bielles. Si tu veux voir cela , il y a un bug lors du chargement de pilot.xml, sur le siège du pilote. Mais on peut le contourner de cette manière:
-Tu fais un import de A10-set.xml ou plus court Models/A-10-model.xml
Avant de faire la création des animations il faut faire la manipe suivante
Sélectionnes l'ensemble des objets empty
Dans la fenêtre 3D menu select
-select>SelectAll by Type>Empty
Puis tu fais une fausse translation
-Touche G puis Echap (pour ne pas modifer la position)
Normalement les objets empty vont réapparaitre à leur position correcte.
Cette fois tu peux créer les animations
-Touche F >création animations
Lance l'animation (Alt-A) et regarde les bielles du train. C'est un superbe travail, réalisé avec un logiciel c'est pratiquement certains. Cela sera accessible grâce au script.

Demain, je serai disponible sur mumble .....

A+

avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 9 Juil 2012 - 20:14

Bien vu Alexis ..
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  _run_ le Lun 9 Juil 2012 - 20:23

F-JJTH a écrit: Car je me souviens avoir été obligé de faire une animation bizarre pour la poignée situé au dessus du pilote. Dès que j'ai le temps je regarde les xml pour y comprendre un peu mieux.


Marrant, la poignée à un comportement bizarre avec le script. La rotation est au bon endroit, mais il y a une drôle de translation ...

A+
avatar
_run_
Le baron rouge

Messages : 433
Date d'inscription : 10/06/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Script flightgear

Message  Alexis le Lun 9 Juil 2012 - 23:39

Alors ce même fichier interior.xml est plein de truc intéressants Smile

Les interpolations ont l'air d'être problématiques pour le script. J'ai fait quelques essais, je suis pas certain de ce que j'ai fait, car ça à été accompagné d'autres modifs, enfin je me suis un peu mélangé les pinceaux ! Disons que c'est plus pour la forme pour le premier point :
Regardez :
Code:

<entry><ind>  0.00 </ind><dep>  0.00 </dep></entry>
<entry><ind>  0.12 </ind><dep> 45.00 </dep></entry>
(C'est l’interpolation de la rotation de la manette).
Visiblement, ça à l'air bon et pourtant, question : que ce passe-t-il quand la prop varie de 0.12 à 1 ?
Vous le savez, la manette reste tournée à 45°, or ce n'est pas indiqué, la formule plus correcte est la suivante :

Code:

<entry><ind>  0.00 </ind><dep>  0.00 </dep></entry>
<entry><ind>  0.12 </ind><dep> 45.00 </dep></entry>
<entry><ind>  1.00 </ind><dep> 45.00 </dep></entry>

Traduction en Français svp a écrit:
De 0 à 0,12 tourne à 45°
Ensuite de 0,12 à 1 reste à 45°

Flightgear comprenait la première formulation, mais si vous avez bidouiller des animations à s'en tirer une balle, il faut mieux en dire plus que le nécessaire, on est pas à l'abri d'un cas particulier auquel on aurait pas pensé. Donc si une prop varie de 0 à 1, elle doit varier de 0 à 1 dans l’interpolation.

Deuxième chose, et là je cherchais car je ne comprenais plus rien, rappelez vous ma loi fondamentale de l'animation :

Plusieurs animations sur un même objet : Toute animation est incluse dans la précédente.

Si je place la rotation après la translation, ça ne fonctionne plus du tout ! l'interpolation fait que de 0 à 0,12, ça fonctionne (pas encore de translation), mais dès que la translation commence à fonctionner, ça déconne.

Et c'est là que j'ai la révélation, ouf, ma loi fondamentale fonctionne encore :
La translation emporte le centre ! oui, elle translate le centre de rotation à 45 ° ! Youhou ! La rotation est incluse dans la translation et la dévie. Imaginez un archer debout sur une plateforme tournante, on la fait tourner à 45° et on lui dit de tirer ! pas glop !

Pour bien fonctionner il faut que la translation soit incluse dans la rotation. Ou plutôt, si je reformule : il faut que la rotation n'ai pas d'influence sur la translation. Imaginez le même archer, fait tourner la plateforme à 45° sauf que son arc ne dépend pas de la rotation (il corrige), du coup quand il tir, il met dans le mille !

J'espère que vous avez compris avec cette image

C'est dingue de voir tout ce qu'on peut apprendre de nos erreurs ! Merci à tous ceux qui en font, vous êtes des contributeurs du script !



Autre chose , Les courbes IPO de blender sont des courbes Smile , je suis persuadé que flightear utilise des interpolation linéaires, ces courbes doivent donc être des droites, non ? Du coup il y a des différences de vitesses

Ce sont des courbes de bézier, il faudrait juste trouver la prop pour les passer en linéaire, heu... rené ?




Concernant ce qui est dit sur le fofo anglais, je suis pas encore certain de comprendre, va falloir qu'il développe plus, ou que je relise mieux (l'anglais et moi...).
Déjà non, ça change rien pour ce qui est des anim, certain ! il faut pas confondre le visible et la machinerie qu'il y a derrière. Bon c'est pas à un programmeur que je vais apprendre ça lol, ça serait plutôt le contraire ! Ce qui est interne à l'avion, le FDM à peut-être des différences.

Enfin je veux pas parler trop vite, je vais creuser et comprendre ce qu'il dit.
avatar
Alexis
Admin

Messages : 2053
Date d'inscription : 19/02/2009
Age : 24
Localisation : Loire Atlantique

Voir le profil de l'utilisateur http://fgalexis.jimdo.com/

Revenir en haut Aller en bas

Re: Script flightgear

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 5 sur 17 Précédent  1, 2, 3, 4, 5, 6 ... 11 ... 17  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum