Vous n'êtes pas identifié(e).
Salut tout le monde,
Je viens vers vous pour vous demander de l'aide avec du code XML pour une animation.
Mon but est de faire une animation de géométrie variable d'aile pour un Mig-23 pour FSX@War. Le problème c'est que moi et le XML, c'est une relation ... comment dire ... compliquée
Ca serait une animation avec 100 keyframes :
- 0 étant l'état : aile repliée, flèche de 72°
- 50 étant l'état intermédiaire : flèche de 45° environ
- 100 étant l'état : aile dépliée, flèche de 14° environ.
Je souhaiterai obtenir la logique suivante :
[---]
Si mon appareil est au sol, moteur éteint -> keyframe 0
Sinon, si mon appareil est au sol, moteur allumé -> keyframe 100
Sinon, si mon appareil est en vol à moins de Mach 0.53 (~350Kt IAS au niveau 0) -> keyframe 100
Sinon, si mon appareil est en vol entre Mach 0.53 et Mach 0.65 (~350Kt et 450Kt IAS au niveau 0) -> keyframe 50
Sinon, si mon appareil est en vol à plus de Mach 0.65 (~450Kt IAS au niveau 0) -> keyframe 0
[---]
Voilà ce que j'ai difficilement pondu mais ça ne marche pas
<Animation name="custom_anim_variable_geometry_wing" guid="2fa689b5-b69f-41d3-a143-70934f909787" length="100" type="Sim" typeParam2="custom_anim_variable_geometry_wing" typeParam="AutoPlay" />
<PartInfo>
<Name>custom_anim_variable_geometry_wing</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>
(A:Sim On Ground, bool) (A:ENG N1 RPM:1, percent) 6.25 < & if{0}
els{
(A:Sim On Ground, bool) (A:ENG N1 RPM:1, percent) 6.25 > & if{100}
els{
0 0.53 (A:AIRSPEED MACH, Mach) rng if{100}
els{
0.54 0.65 (A:AIRSPEED INDICATED, Knots) rng if{50}
els{
0.65 (A:AIRSPEED INDICATED, Knots) > if{0}
}
}
}
}
</Code>
<Units>percent</Units>
<Lag>15</Lag>
</Parameter>
</Animation>
</PartInfo>
Si une âme charitable pouvait me dire ce qui ne va pas dans mon code, ça m'éviterait de m'arracher les quelques cheveux qui me reste sur la tête
Seb
Dernière modification par rafalemirage (23-08-2015 16:55:56)
Hors ligne
Salut Seb,
A priori le code en lui-même est juste, ainsi que sa logique.
Ce qui cloche semble donc venir des balises autour.
J'avais commencé à tout réécrire avec ma syntaxe habituelle, avant de me rendre compte qu'il n'y a que deux différences avec ton code.
La première, celle qui bloque sûrement ton animation : la balise <Unit> est uniquement à utiliser avec <Variable>.
Lors d'une utilisation de la balise <Code>, il faut enlever la ligne <Unit> puisque, de toute manière, tu précises déjà les unités (ici ce sont des nombres, donc number est sous-entendu).
La seconde est, je présume, uniquement une question de présentation : je place l'information <Lag> avant <Code>, à la même position que toi (dans <Parameter>).
Bon courage, et tiens-nous au courant du fonctionnement (ou non) de ton animation
Squirrel
Hors ligne
Hors ligne
Bon ben je n'ai pas eu plus de chance, les ailes restent en positions KF=0.
Voici le code modifié :
<Animation name="custom_anim_variable_geometry_wing" guid="2fa689b5-b69f-41d3-a143-70934f909787" length="100" type="Sim" typeParam2="custom_anim_variable_geometry_wing" typeParam="AutoPlay" />
<PartInfo>
<Name>custom_anim_variable_geometry_wing</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Lag>15</Lag>
<Code>
(A:Sim On Ground, bool) (A:ENG N1 RPM:1, percent) 6.25 < & if{0}
els{
(A:Sim On Ground, bool) (A:ENG N1 RPM:1, percent) 6.25 > & if{100}
els{
0 0.53 (A:AIRSPEED MACH, Mach) rng if{100}
els{
0.54 0.65 (A:AIRSPEED INDICATED, Knots) rng if{50}
els{
0.65 (A:AIRSPEED INDICATED, Knots) > if{0}
}
}
}
}
</Code>
</Parameter>
</Animation>
</PartInfo>
Seb
Hors ligne
Raté... As-tu les balises <ModelInfo> et </ModelInfo> au début et à la fin de ton fichier, ainsi que l'entête qui va bien ?
Tu peux aussi essayer cette syntaxe, qui est sur une seule ligne et laisse moins de possibilités d'erreurs à mon sens :
<Code> (A:Sim On Ground, bool) if{ 6.25 (A:ENG N1 RPM:1, percent) > if{ 0 } els{ 100 } } els{ 0.53 (A:AIRSPEED MACH, Mach) > if{ 100 } els{ 0.65 (A:AIRSPEED INDICATED, Knots) > if{ 50 } els{ 0 } } } </Code>
Squirrel
Hors ligne
Hors ligne
Encore une autre différence, nous ne déclarons pas non plus dans le même ordre les éléments de l'<Animation> du haut... Mais je ne crois pas que cela change quelque chose.
Si jamais, voilà malgré tout un exemple :
<Animation name="BlocageRoue" guid="944EBFEF-4514-489c-A528-D99D5476657A" type="Sim" typeParam="AutoPlay" length="100" typeParam2="BlocageRoue" />
Hors ligne
Hors ligne
Vu ! Dans le dernier "A:AIRSPEED INDICATED", l'unité est Knots, alors que la comparaison se fait avec des nombres en Mach.
Dire que je n'ai pas vu ça avant
Enfin, l'essentiel est que tout fonctionne !
Squirrel
Hors ligne
Hors ligne