Forum Flightgear France

Une communauté prend son envol

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

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 14/09/2016 13:13:00

daweed
Membre
Lieu : LFKP LFLL
Inscription : 27/12/2013
Messages : 257

Ralentir une animation de type Rotate

Bonjour tous le monde,

quand je n'ai pas le nez dans Saint Ex, je bosse pas mal sur le 330. Et j aurais besoin d'un coup de main pour bien appréhender certains paramètre.

J ai fait les découpes et créer les objets nécessaire avec Blender pour pouvoir ouvrir les soutes de l'Airbus.
J'envisage donc pour les faire ouvrir d'utiliser une animation de type Rotate. J ai déjà utilisé ces animations dans le cockpit [pour les potar ou les "protection" que l'on peut trouver sur certains Korry de l'overhead ] , mais les déplacements sont presque instantanés.

Pour les ouverture de soutes, je voudrais quelques chose de plus réaliste, et c est la que j ai besoin d un peu de vos lumières. Y a t il un moyen de "ralentir" le mouvement d'une animation

D'avance merci


FG 2016.1.0 GIT, Linux Mint 17.2 Cinnamon (64b), AMD FX 4300 Black Edition (3.8 GHz), RAM 8Go, GeForce GTX 750 Ti 2 Go
LFLL Scenery

Hors ligne

#2 14/09/2016 16:37:20

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 613

Re : Ralentir une animation de type Rotate

Bonjour daweed,

Une première réponse, pas forcément la meilleure car j'ai peu pratiqué.

Sur le DR400-jsbSim comme sur le Douglas-Dc3 de la PAF, on trouve un fichier Nasal/interpolate.nas qui fait ce ralentissement (pour les interrupteurs en particulier, aussi pour la mise en drapeau des hélices du DC3).
La propriété qui anime est le résultat d'un passage par du nasal.

Exemple :
Rampe temporelle : interpolate pour atteindre une valeur (pour animation)
Douglas-Dc3\Nasal\interpolate.nas
en Nasal,
au lieu de  (valeur 0, instantané)

setprop("fdm/jsbsim/propulsion/engine[0]/blade-angle",0);

mettre (pour atteindre valeur 0 en 2 secondes)

 interpolate("fdm/jsbsim/propulsion/engine[0]/blade-angle", 0, 2); # (valeur 0 en 2 secondes)

ou (valeur 1 en 0.25 seconde)

interpolate("/controls/electric/battery-switch-pos", 1, 0.25)

Et c'est cette dernière propriété qui commande l'animation.

Aussi possible par xml ? (toujours préférable). Mais je n'ai pas encore trouvé.


FG 2017.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#3 14/09/2016 17:38:39

Clm76
Membre
Lieu : LFOH
Inscription : 22/10/2012
Messages : 782

Re : Ralentir une animation de type Rotate

Bonjour daweed, bonjour Daniel

Y a t il un moyen de "ralentir" le mouvement d'une animation

En xml, il y a une fonction "time" qui permet de déterminer le temps de durée d'une action (en secondes).

Je l'ai largement utilisé sur le Citation X pour animer les tablettes devant les sièges passagers où j'ai combiné des actions de rotation et de translation. Ca se situe dans le fichier "cabin.xml".
L'appareil se trouve dans le hangar à Patten, ici :http://pattenflightgear.wifeo.com/cessna-citationx.php


Fg 2017.4.0 - LinuxMint 18.2 Sonya - CM Asus P8H67 MLE - CPU i3 2100T - 12 Go Ram - Nvidia Geforce GTX 770 - Driver Nvidia 384.90

Hors ligne

#4 14/09/2016 18:55:23

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 613

Re : Ralentir une animation de type Rotate

Merci Christian. Je prends note. smile

@daweed : à titre de renseignement et pour compléter, vois aussi le fichier aircraft.nas qui est sous fgdata/Nasal
Cherche "door.new"ou "door" puis "new", (lignes 28 à 47 etc....) je crois que c'est fait pour ça. Utilisé dans le c172p.
http://wiki.flightgear.org/Howto:Animat … y_or_doors
Intérêt : le code est préfabriqué, le toggle inclus, c'est du quasi clés en main.
Mais s'il y a une solution facile par xml, le choix est vite fait.


FG 2017.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#5 14/09/2016 19:44:38

daweed
Membre
Lieu : LFKP LFLL
Inscription : 27/12/2013
Messages : 257

Re : Ralentir une animation de type Rotate

Merci pour les infos, je vais potasser ça.

J ai déjà lus plusieurs fois qu'il vallait mieux passer par le xml .. mais je ne comprends pas bien pourquoi


FG 2016.1.0 GIT, Linux Mint 17.2 Cinnamon (64b), AMD FX 4300 Black Edition (3.8 GHz), RAM 8Go, GeForce GTX 750 Ti 2 Go
LFLL Scenery

Hors ligne

#6 14/09/2016 19:54:35

daweed
Membre
Lieu : LFKP LFLL
Inscription : 27/12/2013
Messages : 257

Re : Ralentir une animation de type Rotate

Rebonsoir,

@ Clm76 je pense qu'il y a un soucis sur la page du citation X

Quand je pointe vers le texte "Version téléchargeable" ca envoie vers la page du PA

http://pattenflightgear.wifeo.com/cessn … e-auto.php

Et le liens en dessous

http://download849.mediafire.com/i148a6 … to.pdf.zip

ne fonctionne pas .... (ce n est d ailleur même pas un liens dans la page.)

mini_661445pagecitation.png

J ai jetter un oeil au code web, je dirais qu'il manque "</a>" pour le liens du PA ce qui fait que le liens suivant n'est pas pris en compte.

Edit : Mea culpa, ce que j ai pris pour le download de l appareil se trouve etre le download "pdf" pour le PA. Désolé.

Dernière modification par daweed (14/09/2016 20:02:21)


FG 2016.1.0 GIT, Linux Mint 17.2 Cinnamon (64b), AMD FX 4300 Black Edition (3.8 GHz), RAM 8Go, GeForce GTX 750 Ti 2 Go
LFLL Scenery

Hors ligne

#7 14/09/2016 20:04:05

Clm76
Membre
Lieu : LFOH
Inscription : 22/10/2012
Messages : 782

Re : Ralentir une animation de type Rotate


Fg 2017.4.0 - LinuxMint 18.2 Sonya - CM Asus P8H67 MLE - CPU i3 2100T - 12 Go Ram - Nvidia Geforce GTX 770 - Driver Nvidia 384.90

Hors ligne

#8 14/09/2016 20:10:20

daweed
Membre
Lieu : LFKP LFLL
Inscription : 27/12/2013
Messages : 257

Re : Ralentir une animation de type Rotate

Merci je vais tester ca ce soir (je viens de faire un tour sur le wiki a recherche d info sur la balise time ...et je pense que c est exactement ce qu il me faut

Encore merci

Daweed


FG 2016.1.0 GIT, Linux Mint 17.2 Cinnamon (64b), AMD FX 4300 Black Edition (3.8 GHz), RAM 8Go, GeForce GTX 750 Ti 2 Go
LFLL Scenery

Hors ligne

#9 14/09/2016 23:12:47

dany93
Administrateur
Lieu : Région Parisienne
Inscription : 5/07/2009
Messages : 2 613

Re : Ralentir une animation de type Rotate

daweed a écrit :

J ai déjà lus plusieurs fois qu'il valait mieux passer par le xml .. mais je ne comprends pas bien pourquoi

- Une première raison objective : le Nasal tourne à ta fréquence fps du moment (20 à 60 Hz, parfois moins), le xml (au moins en JSBSim) à 120 Hz.
Sans effet évident pour les phénomènes lents. En revanche, par exemple pour le C172P, la cassure des trains d'atterrissage lors d'un choc bref avec le sol fonctionnait de manière aléatoire en Nasal, ce fut beaucoup mieux en xml (merci @onox !).

Autres raisons plus subjectives (qu'on peut qualifier de personnelles) :
- Le Nasal est un pourvoyeur remarquable de bugs et d'erreurs. Vois le nombre de fois que tu as lu dans la console "nasal runtime error.....".
- Pour qui n'a pas fait de C++, le Nasal confronte rapidement à des formulations absconses. Sans compter les formes condensées qui lui sont propres. Et, à part pour les bases du Nasal dans le Wiki, on trouve très peu d'explications pour rendre ces formes accessibles.

Pour sa grande souplesse et son apparente facilité en utilisation basique, il est trop souvent utilisé à la place du xml, par des gens qui ne veulent pas se donner la peine d'entrer dans les formulations xml, souvent plus lourdes en nombre de lignes et dont le modèle est plus difficile à trouver. Mais les instructions xml sont beaucoup plus solides, et locales (non dépendantes de fichiers extérieurs).

Exemple : (Joysticks, aileron trim right)
Formalisation avec Nasal (appelle la fonction "aileronTrim" du fichier Nasal "controls.nas", générique sous "fgdata/Nasal") :

  <binding>
   <command>nasal</command>
   <script>controls.aileronTrim(0.5)</script>
  </binding>

Remplaçable par, en xml "pur":

  <binding>
   <command>property-adjust</command>
   <property>/controls/flight/aileron-trim</property>
   <step type="double">0.001</step>
  </binding>

Ce qui n'empêche pas le nasal, très souple et concis, d'être difficile à remplacer pour certaines fonctions complexes. Mais pas à toutes les sauces.

On peut aussi se laisser tenter par les codes Nasal préfabriqués qu'on trouve sous fgdata/Nasal. Exemple pour toi : Howto:Animate canopy or doors. Pas forcément plus efficace en termes de code (le code est déporté), probablement pas mieux pour les fps (bof... dans ce cas), mais pour toi c'est fait pour être plus simple.

Sans en faire une religion, je pense qu'il faut avoir ça en tête quand la formulation xml est accessible et pas trop contraignante. Sans hésitation pour les phénomènes brefs ou quand on veut des réactions rapides, particulièrement dans le cadre d'un FDM. JSBSim est particulièrement bien fourni pour ça (<fcs_function...>, <switch>,...).

Dernière modification par dany93 (16/09/2016 12:05:11)


FG 2017.4.0, Linux Mint 18 (64b), Quad Q6600 (2.4 GHz), RAM 4Go DDR2, GEFORCE GTX 650 1GB, OSG 3.4.0
Boeing 787-8 (YASim, avec nickyivyca, aco)
DR400 JSBSim (PAF)
DC3 JSBSim (PAF)

Hors ligne

#10 15/09/2016 10:47:25

daweed
Membre
Lieu : LFKP LFLL
Inscription : 27/12/2013
Messages : 257

Re : Ralentir une animation de type Rotate

Merci pour toute ces précisions


FG 2016.1.0 GIT, Linux Mint 17.2 Cinnamon (64b), AMD FX 4300 Black Edition (3.8 GHz), RAM 8Go, GeForce GTX 750 Ti 2 Go
LFLL Scenery

Hors ligne

Pied de page des forums