• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS Landing gear animation problem

Messages
62
Country
france
Salut
Pour mon nouveau projet MSFS, (Guépard Aéro Service) j'ai utilisé les animations du train d'atterrissage de ma puce volante HM 293 qui fonctionne correctement sous MSFS. Mais rien n'y fait et le train avant disparaît dès que je mets la moindre animation dessus !!!
Voici les images blender et msfs ainsi que le model_ext.xml
mélangeur.jpg

msfs.jpg

<?xml version="1.0" encoding="utf-8"?>
<InfoModèle>
<LODS>
<LOD minSize="100" ModelFile="guepard_EXT_LOD00.gltf"/>
</LODS>
<!--COMPORTEMENTS INCLUS ###################### -->
<Comportements>
<!-- ######################################### -->
<Inclure ModelBehaviorFile="Asobo\Common.xml"/>
<Inclure ModelBehaviorFile="Asobo\Exterior.xml"/>
<Include ModelBehaviorFile="Asobo\Generic\FX.xml"/>
<!-- ######################################### -->

<!-- Spoilers -->
<ID du composant="HANDLING_Spoilers">
<UseTemplate Name="ASOBO_HANDLING_Spoilers_Template">
<ANIM_NAME_LEFT>l_spoiler_key</ANIM_NAME_LEFT>
<ANIM_NAME_RIGHT>r_spoiler_key</ANIM_NAME_RIGHT>
<!-- ANIM_EVENTS -->
<ANIM_EVENT_EFFECT_NAME>CAM_SPOILERS</ANIM_EVENT_EFFECT_NAME>
<NORMALIZED_TIME>0,5</NORMALIZED_TIME>
<DIRECTION>Les deux</DIRECTION>
</UseTemplate>
</Composant>
<!-- ######################################### -->
<!-- ANIMATION DE L'HÉLICE DES SURFACES DE CONTRÔLE ##### -->
<!-- TOUTES LES PIÈCES PROP UTILISENT prop_anim NLA Nom##### -->
<!-- ######################################### -->
<ID du composant="MANIPULATION">
<UseTemplate Name="ASOBO_HANDLING_Elevator_Template">
<ANIM_NAME>Ascenseur_PCT</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Aileron_Template">
<ANIM_NAME_LEFT>Aileron_L_PCT</ANIM_NAME_LEFT>
<ANIM_NAME_RIGHT>Aileron_R_PCT</ANIM_NAME_RIGHT>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Rudder_Template">
<ANIM_NAME>Rudder_PCT</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Elevator_Template">
<TRIM_ONLY>Vrai</TRIM_ONLY>
<ANIM_NAME_TRIM>trimtab_elevator_key</ANIM_NAME_TRIM>
<INVERT_ANIM>Vrai</INVERT_ANIM>
</UseTemplate>
</Composant>
<ID du composant="MOTEUR">
<UseTemplate Name="ASOBO_ENGINE_Propeller_Template">
<ID>1</ID>
<ANIM_NAME>Prop_Anim</ANIM_NAME>
<STILL_NODE_ID>PROP_STILL</STILL_NODE_ID>
<SLOW_NODE_ID>PROP_SLOW</SLOW_NODE_ID>
<PROP_BLURRED_NODE_ID>PROP_BLUR</PROP_BLURRED_NODE_ID>
<PROP_SIDE_BLURRED_NODE_ID>PROP_SIDE</PROP_SIDE_BLURRED_NODE_ID>
<BLADE_COUNT>2</BLADE_COUNT>
<USE_BLADE_ROTATION>Vrai</USE_BLADE_ROTATION>
</UseTemplate>
</Composant>
<!-- ######################################### -->
<!-- MODÈLE DE COMMUTATION POUR TOUT SIMVAR OU LVAR ### -->
<!-- ######################################### -->
<!-- visibilité du pilote -->
<ID du composant="PILOT_0" Node="PILOT_0">
<UseTemplate Name="ASOBO_GT_Visibility">
<VISIBILITY_CODE>(L :pILOT_VIS, Bool) (A :pPOIDS DE LA STATION AYLOAD : 1, livre) 20 > et (A:ÉTAT DE LA CAMÉRA, Enum) 2 != ou (A :pPOIDS DE LA STATION AYLOAD :1, livre) 20 > et</VISIBILITY_CODE>
</UseTemplate>
</Composant>
<ID du composant="PILOT_1" Node="PILOT_1">
<!-- visibilité du copilote -->
<UseTemplate Name="ASOBO_GT_Visibility">
<VISIBILITY_CODE>(L:COPILOT_VIS, Bool) (A :pPOIDS DE LA STATION AYLOAD :2, livre) 20 > et (A:ÉTAT DE LA CAMÉRA, Enum) 2 != ou (A :pPOIDS DE LA STATION AYLOAD :2, livre) 20 > et</VISIBILITY_CODE>
</UseTemplate>
</Composant>
<!-- ######################################### -->
<!-- EFFETS D'ANIMATION DES PNEUS DU TRAIN D'ATTERRISSAGE ##### -->
<!-- ######################################### -->
<ID du composant="ENGRENAGES">
<UseTemplate Name="ASOBO_GEAR_Center_Template">
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Steering_Template">
<ANIM_NAME>GEAR_Steering</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Left_Template">
<ANIM_NAME>gear_left</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Right_Template">
<ANIM_NAME>gear_right</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Back_Template">
<ANIM_NAME>Gear_Back</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Left_Tire_Template">
<ANIM_NAME>Tire_L_Anim</ANIM_NAME>
<NODE_ID_STILL>TIRE_LEFT_STILL</NODE_ID_STILL>
<NODE_ID_BLURRED>TIRE_LEFT_BLUR</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Right_Tire_Template">
<ANIM_NAME>Tire_R_Anim</ANIM_NAME>
<NODE_ID_STILL>TIRE_RIGHT_STILL</NODE_ID_STILL>
<NODE_ID_BLURRED>TIRE_RIGHT_BLUR</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Back_Tire_Template">
<ANIM_NAME>Tire_B_Anim</ANIM_NAME>
<NODE_ID_STILL>TIRE_BACK_STILL</NODE_ID_STILL>
<NODE_ID_BLURRED>TIRE_BACK_BLUR</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Center_Tire_Template">
<ANIM_NAME>Tire_C_Anim</ANIM_NAME>
<NODE_ID_STILL>TIRE_CENTER_STILL</NODE_ID_STILL>
<NODE_ID_BLURRED>TIRE_CENTER_BLUR</NODE_ID_BLURRED>
</UseTemplate>
</Composant>
<ID du composant="LANDING_FX">
<UseTemplate Name="ASOBO_LANDING_FX"/>
</Composant>
<ID du composant="Tailwheel">
<UseTemplate Name="ASOBO_GT_Anim_Code">
<ANIM_NAME>c_wheel</ANIM_NAME>
<ANIM_CODE>(A:ANGLE DE DIRECTION DU CENTRE DE VITESSE, grades) 0 > if{ (A :ANGLE DE DIRECTION DU CENTRE DE VITESSE, degrés) 0,5 * } els{ (A :ANGLE DE DIRECTION DU CENTRE DE VITESSE, degrés) 0,5 * 200 + }</ANIM_CODE>
<ANIM_LENGTH>200</ANIM_LENGTH>
<ANIM_WRAP>1</ANIM_WRAP>
</UseTemplate>

</Composant>
</Comportements>

Je retourne tout encore et encore, et je ne trouve pas d'où vient ce problème !!
s'il vous plaît, aidez-moi s'il vous plaît
 
Last edited:
Doesn't it bother you that half of the code is in Latin Unicode, and the other is not? And the SDK documentation clearly states compliance with formatting, interpretation and syntax rules, as well as gestures. Characters "<" ">" are deprecated and are read-only in MODEL BEHAVIORS code you must use RPN and characters "&gt;" "&lt;". XML is also very sensitive to spaces and characters.
 
Thank you for your reply.
I don't know much about coding and I just copy paste existing files that work in MSFS.
the forum distorts the layout and my file looks more like this:
Capture d’écran 2023-11-14 213947.jpg
 
Try to write it this way Bypassing the Scroll <Behaviors> </Behaviors> and tie the turn of the rack.
XML:
    <Animation name="c_wheel"                 guid="BC935F16-43CD-4046-8EF3-06E44A5940AB" length="200" type="Sim" typeparam2="c_wheel" typeparam="AutoPlay" />

    <PartInfo>
        <Name>c_wheel</Name>
        <AnimLength>200</AnimLength>
        <Animation>
            <Parameter>
          <Code>
            (A:GEAR CENTER STEER ANGLE, grads) 0 &gt; if{ (A:GEAR CENTER STEER ANGLE, grads) 0.5 * } els{ (A:GEAR CENTER STEER ANGLE, grads) 0.5 * 200 + }
          </Code>
            </Parameter>
        </Animation>
        <MouseRect>
            <TooltipID>TOOLTIPTEXT_STEER_ANGLE</TooltipID>
        </MouseRect>
    </PartInfo>
 
Last edited:
Thank you
I'll try this as soon as possible and let you know
Try to write it this way Bypassing the Scroll <Behaviors> </Behaviors> and tie the turn of the rack.
XML:
    <Animation name="c_wheel"                 guid="BC935F16-43CD-4046-8EF3-06E44A5940AB" length="200" type="Sim" typeparam2="c_wheel" typeparam="AutoPlay" />

    <PartInfo>
        <Name>c_wheel</Name>
        <AnimLength>200</AnimLength>
        <Animation>
            <Parameter>
          <Code>
            (A:GEAR CENTER STEER ANGLE, grads) 0 &gt; if{ (A:GEAR CENTER STEER ANGLE, grads) 0.5 * } els{ (A:GEAR CENTER STEER ANGLE, grads) 0.5 * 200 + }
          </Code>
            </Parameter>
        </Animation>
        <MouseRect>
            <TooltipID>TOOLTIPTEXT_STEER_ANGLE</TooltipID>
        </MouseRect>
    </PartInfo>
sorry, but that doesn't work either:(
 
IMO it's not a XML code problem but the origin of this is in your Blender file.
The green line which appear just above GEAR CENTER, suggests that you are editing the animation. After editing, you should go back to Action Editor and click on the up arrow to validate these changes.
In the past, I have compiled models leaving the animation in modification and the result was very odd sometimes.

PS: A tip, do not hesitate to add polygons to your model, it will be prettier. There, some parts are a little angular at first glance (propeller cover). Smoothng is also very important (back windows)
 
HI Lagaffe thank you for your help
Happy to see you again
I'll try this WE
Yes my model is not finished, it is coming from FSX and it was made with Gmax.
I rebuild everything in blender and for now I do the animations. The cockpit is 75% finished, and I'm struggling with the animation of the nose gear, whereas on the flying flea it didn't pose a problem for me
 
Are you using the correct animation? GEAR_center appears to be for the suspension and you seem to have it on the suspension part but your animation code is for rotation, not position. GEAR_steering is for steering.

Or do you have rotation and position animations on the same part? Generally, that is something I try to avoid as it can be unpredictable.

It's difficult to see exactly how you have it set up because the parts are not in visible in the View Layer window on the right of the first screenshot.

Also, check you do not have scaling or rotation transforms active on the part.
 
thank you for the answer Anthony
GEAR_Center is the animation for the suspension and for the steering I put a helper and I link the entire train.
But my problem is that as soon as I put any animation, the front train disappears in MSFS while the left or right train works fine
 
After editing, you should go back to Action Editor and click on the up arrow to validate these changes
Hello Didier
De quelle flèche parles-tu?
J'ai encore fait plusieurs essais sans amélioration. Ce qui me gène le plus , c'est que le train priincipal fonctionne bien. J'ai comme l'impression que dès que j'écris c_gear ou GEAR_Center, ça bloque.
Une autre question, quelle différence y a t il entre "time line" et "dope sheet". pour moi les deux font la même chose au niveau des anim§ et le SDK n'est pas très clair la dessus
Capture d’écran 2023-11-18 142213.jpg
Capture d’écran 2023-11-18 142309.jpg
 
Sorry Pat but we are on an English forum so I would continue in English. at the interface level, you can use the French version but I prefer the English version because with the many tutorials that we find it is easier to navigate.

On the left side of your capture you have an area where it is marked Dope sheet it is a menuu in which you have the time line and where you can create your keyframes.
By clicking on Dope Sheet, you have a drop-down menu and you can select Action Editor. In this selection you have on the right the menus View, Select, Marker, Key and finally two arrows. By clicking on the one towards the bottom, the keyframes appear when an action is selected, which then allows to modify them. The up arrow allows you to "lock" the action. These are the arrows I was talking about.
To summarize, before exporting, I avoid leaving actions being modified and I click on the up arrow to "lock" them (the term is probably not adapted but I found that).
If in Action Editor you have "unlock" an action, and if you commute on Dope sheet, the keyframes are always present. If you lock un action Editor, theyr are not.
 
Sorry Didier
I translate the forum into French and I wasn't careful when responding
I didn't know these functions, I used the right click on the yellow animation bar of the selected object then on start editing actions to see the keys at the bottom. Then right click again and stop....
but your method is more practical, we don't have to search for the object in the list.
Coming back to my business, whatever the name of the anim, I even go so far as to copy and paste entire gear from other planes, it doesn't work. I wonder if there isn't something in the project that's blocking me only on the front gear. On the other hand, the wheels are well animated (still, blurred...)
I also tried to change the length of the animations... without success
I do not know what to do!!
Here are the previews of Blender and the xml file
Capture d’écran 2023-11-18 142213.jpg


Capture d’écran 2023-11-19 003946.jpg
 
Hi Pat,
First, before using a behavior model, I advise you to search in Official\Onestore the file that defines this model and read it well (even if it calls sub-templates that are also important to read).
A behavior model must have a NODE_ID and an ANIM_NAME that are respected.
Let’s take your first image on the previous post as a reference.
On the column at the left end there is:
- on the blue zone the name of the node NODE_ID (a triangle indicates a mesh, a star with 3 branches a dummy)
- below a brown area with No action generally, or the name of the animation when it is being modified
- still below a dark grey area which gives the name of the ANIM_NAME animation (5-pointed star)
Next to this column there is another one with green or yellow bars.

As for me, I create the animation in the Dope Sheet or the Action Editor, I apply the Linear interpolation property to the keyframes and I click on the Push down tab to save.
Then I toggle the NonLinear animation menu and I type the name of the animation instead of the default one in this green bar.
I do not know if it is fundamental but I enter once again in the dark gray bar (star 5 branches) the name of the animation.

After export, the animation should work if in the model behavior used and declared, you have used the right NODE_ID and the right ANIM_NAME: it is essential.
When a Model behavior only shows the ANIM_NAME, it is usually necessary to go back to its definition in Official\Onestore and in the Template definition you should see the name of the NODE_ID that is expected by default.
 
Hi Didier
I replaced the animation of the shock absorber as well as the steering of the front gear in the ext.xml with the following lines by removing the corresponding "use template"
Capture d’écran 2023-11-19 224728.jpg

no improvement!!!
On the other hand, for the shock absorber, when I animate it and name it as left shock absorber, it works, but still not the steering.
for the steering, if I animate it like the rudder, it works.
So I think that the problem does not come from Blender, but from the way the front axle is treated in MSFS.
My MFSF is under Steam and I don't have the "onestore" directory, but I find all the "templates" under: Official\Steam\fs-base-aircraft-common\ModelBehaviorDefs\Asobo\Common. I refer to it normally and generally the animations work well, but not this time.
I continue my investigations!!!:cool:
 
Hi
I did a test by replacing all the configuration files (.cfg and .flt) with the flying flea files, I only kept the model and texture folders of the Guépard, and it works, the front gear is orientated well and the shock absorber compresses!!!
All I have to do now is find out which file(s) it's stuck in.
To be continued.....:p
 
Back
Top