• 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.

MSFS20 [FIXED] Nose Wheel, Steer and Gear Animation not working in Simulator

Messages
97
Hello There everyone, I have made a simple wheel rotation and a gear press animation following the MSFS sdk guidelines the keyframes are how they should be 0-100 (360 degree rotation) for Wheel Animation, 0-200 for Steer Animation (360 Degree) and for Gear i have made the animation from 0-200 (0-100 key frames gear is static and its starts compressing from 100-200 keyframes) However using the Asobo center gear template none of these animations work in MSFS. They show up normally how they should in GltfViewer/MCX. And if assign the same anim name and node names in the left gear/wheel animations they start working however they show frozen on the center animations. I am stuck in this issue and have searched alot for the past 5 days but cant find any help. I have attached the code of my xml. Any help in this regard would be great!

1715600604205.png

<?xml version="1.0" encoding="utf-8"?>
<ModelInfo>
<LODS>
<LOD minSize="5" ModelFile="PILATUS_PC7_EXT.gltf"/>
</LODS>
<Behaviors>
<!-- Includes ###################################### -->
<Include ModelBehaviorFile="Asobo\Common.xml"/>
<Include ModelBehaviorFile="Asobo\Exterior.xml"/>
<Include ModelBehaviorFile="Asobo\Generic\FX.xml"/>
<!-- ###################################### -->
<Component ID="HANDLING">
<UseTemplate Name="ASOBO_HANDLING_Elevator_Template">
<ANIM_NAME>Elevator_anim</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Elevator_Template">
<ANIM_NAME_TRIM>trimtab_elevator_key</ANIM_NAME_TRIM>
<TRIM_ONLY>True</TRIM_ONLY>
<INVERT_ANIM>True</INVERT_ANIM>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Aileron_Template">
<ANIM_NAME_LEFT>Aileron_L_anim</ANIM_NAME_LEFT>
<ANIM_NAME_RIGHT>Aileron_R_anim</ANIM_NAME_RIGHT>
<USE_INTEGRATED_TRIM>True</USE_INTEGRATED_TRIM>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Flaps_Template">
<ANIM_NAME_LEFT>Flaps_L_anim</ANIM_NAME_LEFT>
<ANIM_NAME_RIGHT>Flaps_R_anim</ANIM_NAME_RIGHT>
</UseTemplate>
<UseTemplate Name="ASOBO_HANDLING_Rudder_Template">
<ANIM_NAME>rudder_anim</ANIM_NAME>
<USE_INTEGRATED_TRIM>True</USE_INTEGRATED_TRIM>

</Component>
<Component ID="GEARS">
<UseTemplate Name="ASOBO_GEAR_Center_Template">
<ANIM_NAME>Gear_F_anim</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Left_Template">
<ANIM_NAME>Gear_L_anim</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Right_Template">
<ANIM_NAME>Gear_R_anim</ANIM_NAME>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Center_Tire_Template">
<ANIM_NAME>Tyre_F_Rotate</ANIM_NAME>
<NODE_ID_STILL>gear_WHEEL_front</NODE_ID_STILL>
<NODE_ID_BLURRED>gear_WHEEL_front_blurred</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Left_Tire_Template">
<ANIM_NAME>Tyre_L_Rotate</ANIM_NAME>
<NODE_ID_STILL>gear_WHEEL_rear_left</NODE_ID_STILL>
<NODE_ID_BLURRED>gear_WHEEL_rear_left_blurred</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Right_Tire_Template">
<ANIM_NAME>Tyre_R_Rotate</ANIM_NAME>
<NODE_ID_STILL>gear_WHEEL_rear_right</NODE_ID_STILL>
<NODE_ID_BLURRED>gear_WHEEL_rear_right_blurred</NODE_ID_BLURRED>
</UseTemplate>
<UseTemplate Name="ASOBO_GEAR_Steering_Template">
<ANIM_NAME>Tyre_F_Steer</ANIM_NAME>
<NODE_ID>gear_STEER_pneumatic_front</NODE_ID>
</UseTemplate>
</Component>
<Component ID="LANDING_FX">
<UseTemplate Name="ASOBO_LANDING_FX"/>
</Component>
</Behaviors>

</ModelInfo>
 
Well a couple of things. Your keyframes as described don't appear to be ideal, the frame progressions are quite specific. Key "0" is a static key and is not part of the suspension frame sequence. If you review the SDK, you will see suspension keyframes run 0,1-100,101-200, as in zero alone, keys one through 100 and keys 101 through 200. Ok so small detail, your static key, the frame that is displayed in hangar view, is not ideal. Ultimately, the sim engine is extremely accommodating to different keyframe arrangements, but the code has to be fairly exact. You'll almost for sure need to "tune" your suspension to unfreeze the various animations.

It looks like you are using 3ds Max like me which is too bad, because otherwise I could show you a slick script they're sharing on Discord that sets suspension values algorithmically. After my own experience with this phenomenon, I don't know that I completely trust a script, but I think it would get you into the ballpark of working suspension range. First, I recommend is that you take each animation and drive it with component xml you know is already correct to eliminate uncertainty about what works and what does not.

By my hypothesis, you cannot test your various suspension component xml with this aircraft, because the aircraft flight_model.cfg has the suspension effectively "locked," but in perusal it all looks extremely well written, despite being nearly illegible to me without indents. You could however apply your components and animated parts to the xml of a default SDK project and test functionality that way.

Ok (clears throat) so my theory as to how this occurs, is a basic misunderstanding of how contact points work. It is yet a theory and bear in mind I fall into this category, but it is my belief that contact points don't have the same relationship with a model that hey had in FSX, so between that and the literal interpretation of contact point, people end up getting their suspensions effectively "jammed," trying to push the contact point to the ground surface. So in the Aircraft Editor I'd look for contact points that are significantly below the surface. It might be helpful to start a new tune following the SDK recommendation.

 
Well a couple of things. Your keyframes as described don't appear to be ideal, the frame progressions are quite specific. Key "0" is a static key and is not part of the suspension frame sequence. If you review the SDK, you will see suspension keyframes run 0,1-100,101-200, as in zero alone, keys one through 100 and keys 101 through 200. Ok so small detail, your static key, the frame that is displayed in hangar view, is not ideal. Ultimately, the sim engine is extremely accommodating to different keyframe arrangements, but the code has to be fairly exact. You'll almost for sure need to "tune" your suspension to unfreeze the various animations.

It looks like you are using 3ds Max like me which is too bad, because otherwise I could show you a slick script they're sharing on Discord that sets suspension values algorithmically. After my own experience with this phenomenon, I don't know that I completely trust a script, but I think it would get you into the ballpark of working suspension range. First, I recommend is that you take each animation and drive it with component xml you know is already correct to eliminate uncertainty about what works and what does not.

By my hypothesis, you cannot test your various suspension component xml with this aircraft, because the aircraft flight_model.cfg has the suspension effectively "locked," but in perusal it all looks extremely well written, despite being nearly illegible to me without indents. You could however apply your components and animated parts to the xml of a default SDK project and test functionality that way.

Ok (clears throat) so my theory as to how this occurs, is a basic misunderstanding of how contact points work. It is yet a theory and bear in mind I fall into this category, but it is my belief that contact points don't have the same relationship with a model that hey had in FSX, so between that and the literal interpretation of contact point, people end up getting their suspensions effectively "jammed," trying to push the contact point to the ground surface. So in the Aircraft Editor I'd look for contact points that are significantly below the surface. It might be helpful to start a new tune following the SDK recommendation.

Hey there i got some of your points youre mostly talking about suspension? Ill try figuring that out but i am confused as to why do the animations dont work when i use template asobo gear center and the same animation works fine if i added the anim in the code of asobo gear left or right gear.
 
I don't know how much you know about MSFS development history, but there was a period when helicopter steering was fully disabled. I am developing a rotorcraft, not exactly a heli and yes, I too was able to use left or right component xml to drive my animations, not useful for steering of course. My assumption had been that I had encountered leftover incompatibility between heli steering and the latest MSFS version. Indeed, at this moment, my steering component is driven by the tail rotor pedal position SimVar, despite this aircraft not using a tail rotor.

I see that you are developing an aircraft and this expands my understanding of the glitch, you could start a ticket at devsupport.com, but considering the fact we have other triggers to use, SU15 is throwing them for loops and MSFS 2024 is nearly halfway into its launch year, I doubt you'd get a workable solution in time to complete this current project. To me, the signs are unmistakable, the situation is confuddling but manageable and consider you've spent 5, maybe 7 days on it at this point? I have spent easily 100 hours on this suspension, if not double that. By and large, the overwhelming portion of that time was spent isolating steering. I may be slow, but I estimate I have saved you at least 20 minutes, if not much, much more, just getting to possible solutions. So there's a plus.

That is another solution by the way, you could just drive the steering with the rudder pct SimVar, but I think that if your steering SimVar is showing up in SimVar Watcher, it really behooves you to tune in the suspension. I strongly believe that frozen animations result from out of range settings.
 
Last edited:
I don't know how much you know about MSFS development history, but there was a period when helicopter steering was fully disabled. I am developing a rotorcraft, not exactly a heli and yes, I too was able to use left or right component xml to drive my animations, not useful for steering of course. My assumption had been that I had encountered leftover incompatibility between heli steering and the latest MSFS version. Indeed, at this moment, my steering component is driven by the tail rotor pedal position SimVar, despite this aircraft not using a tail rotor.

I see that you are developing an aircraft and this expands my understanding of the glitch, you could start a ticket at devsupport.com, but considering the fact we have other triggers to use, SU15 is throwing them for loops and MSFS 2024 is nearly halfway into its launch year, I doubt you'd get a workable solution in time to complete this current project. To me, the signs are unmistakable, the situation is confuddling but manageable and consider you've spent 5, maybe 7 days on it at this point? I have spent easily 100 hours on this suspension, if not double that. By and large, the overwhelming portion of that time was spent isolating steering. I may be slow, but I estimate I have saved you at least 20 minutes, if not much, much more, just getting to possible solutions. So there's a plus.

That is another solution by the way, you could just drive the steering with the rudder pct SimVar, but I think that if your steering SimVar is showing up in SimVar Watcher, it really behooves you to tune in the suspension. I strongly believe that frozen animations result from out of range settings.
I have tried modifying the keyframes as you asked unfortunately no luck none of the animations work using the templates for center gear
 
If this is the same situation I have encountered, the suspension settings will prevent any other edits from working. You'd want to get away from your current flight_model.cfg settings.
 
I am pretty much clueless at this point. This is my first time on an aircraft so thats one reason. What exactly do i need to look at in my flight model cfg settings?
 
Can't say exactly. I would ditch the entire contact point section and set it up following the directions on the page I linked above.
 
Can't say exactly. I would ditch the entire contact point section and set it up following the directions on the page I linked above.
Unfortunately that didnt work either. i reset the contact points as per the document in MSFS SDK you shared. Theres just something wrong with the Nose wheel, The Left and Right gear work perfectly fine. If i load the nosegear animation in the Left/Right Gear template the compression and nosewheel animation works too just not in the Center gear Template. Ill contact the dev support.
 
Did you try driving the steering animation with the rudder pct SimVar? Link me to the support report and I can provide specific documents that create and remove the suspension locking to help the devs isolate the issue.
 
Did you try driving the steering animation with the rudder pct SimVar? Link me to the support report and I can provide specific documents that create and remove the suspension locking to help the devs isolate the issue.
So i finally fixed the issue after getting some help from devsupport. All i had to do was set X value of the the center gear contact point to 0. This has fixed all the animations of the nose gear i-e wheel rotation, Compression and Steering.

 
👍 It's logical to assume that despite all my hours of testing the perfect ideal tune was really just a matter of centering the wheel.
 
Hi all!

I read through your posts and I have something similar problem. I got the animation to work by "resetting" the x-axis to zero (SU15 bug), the springing works, but unfortunately the steering doesn't work well, no matter where I turn on the ground with my aircraft, the nose wheel will only turn to the right, even if I turn left with the aircraft.

I used the Asobo XML Template (ASOBO_GEAR_Center_Template and ASOBO_GEAR_Steering_Template) code.

I tried several animation methods, the result was almost the same. I tried between 0-100 frames motionless, then between 101-200 turns left 360 degrees. Didn't work either when turning left 180 degrees between 0-180 frames and then another 180 degrees until 360 frames.
How did you animate the nose wheel steering to work?

Any help would be appreciated ☺️
 
The steering is animated in a 360° circle. If you want to animate zero-left-zero-right like a rudder, then use the rudder or rudder pedals template.
 
The steering is animated in a 360° circle. If you want to animate zero-left-zero-right like a rudder, then use the rudder or rudder pedals template.
Sorry maybe I was misunderstood. The total range of motion of my animations was 360 degrees in all cases, only the position of the keyframes was different. As I wrote, I also tried it with the gear motionless between 0-100 keyframes, then turn 360 degrees to the right between 101-200 keyframes. Then I also tried it with the gear turning 360 degrees to the right between 0 and 360 keyframes. Neither version worked.
Thanks for the idea, I will trying to link gear to the rudder template - maybe that will give the good result.
 
Sorry maybe I was misunderstood. The total range of motion of my animations was 360 degrees in all cases, only the position of the keyframes was different. As I wrote, I also tried it with the gear motionless between 0-100 keyframes, then turn 360 degrees to the right between 101-200 keyframes. Then I also tried it with the gear turning 360 degrees to the right between 0 and 360 keyframes. Neither version worked.
Thanks for the idea, I will trying to link gear to the rudder template - maybe that will give the good result.

All animations neutral (Gear Down, Strut Uncompressed, nose wheel pointing straight) = 0 Keyframe

Landing Gear Retraction From Up to Down = 1-101
Nose Gear 360 Degree Rotation Clock Wise = 1-201
Nose Gear Strut Compression = 101-201
 
Last edited:
I'm not sure if this has been actually solved or not and I really don't see anyone giving a decent explanation of what ASOBO_GEAR_Steering_Template does so here you go:

Code:
<Template Name="ASOBO_GEAR_Steering_Template">
    <DefaultTemplateParameters>
        <ANIM_NAME>GEAR_Steering</ANIM_NAME>
        <ID>0</ID>
    </DefaultTemplateParameters>
    <UseTemplate Name="ASOBO_GT_Anim">
        <ANIM_CODE>(A:GEAR STEER ANGLE:#ID#, degrees) dnor</ANIM_CODE>
        <ANIM_LENGTH>360</ANIM_LENGTH>
        <ANIM_WRAP>True</ANIM_WRAP>
    </UseTemplate>
</Template>

This template reads GEAR STEER ANGLE as degrees and applies the dnor math calculator to the variable. This means the following values are returned:

Straight ahead: gear steer angle 0, animation keyframe 0
Steer right: gear steer angle 45, animation keyframe 45
Steer hard right: gear steer angle 90, animation keyframe 90
Steer left: gear steer angle -45, animation keyframe 315
Steer hard left: gear steer angle -90, animation keyframe 270
pointing backwards: gear steer angle 180, animation keyframe 180

Note that these values are for nose wheel gear. If it's a tail dragger aircraft the left and right values will be swapped. In a tail dragger if the rear gear is pointing left it will turn the aircraft to the right.

The final thing to note (and this is probably the most important) IS THAT THE PLANE NEEDS TO BE IN MOTION for gear steer angle to work. If you are not moving and pushing the rudder pedals left and right then the nose wheel will not move because the gear steer angle variable does not change. If your aircraft has a direct linkage between the rudder pedals and the steering then this is somewhat unrealistic and you should be using the rudder template instead.
 
totally worked "point.0" on X=0 also check "reference_datum_position" will work like a charm
 
the steering should be animated 0-360 degrees on a single clockwise rotation (i use 360 frames for this as well)
you need a separate empty/helper/controller for this, then the angle is controlled by the flight_model.cfg (not rudder percent)
if done correctly it wont rotate unless your moving but the rudder will turn without moving

"Front Landing Gear

With the front landing gear, it would be set up using the same process as for the others, but we need to also add steering. For that we have to rotate the front fork a full 360 degrees in a clockwise direction (note that if you have arms/pistons attached to the front fork you'll also need to add a look-at constraint). "

done correctly all you need is
<UseTemplate Name="ASOBO_GEAR_Steering_Template"/>
provided you use the default sdk names
it looks funny in the modeller but works great ingame

a fairly minimal exterior.xml i made with a template for example
 
Last edited:
Back
Top