• 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 Animating treads on SimObjects

Messages
1,040
Country
ca-ontario
Hi everyone!

I am trying to figure out how to animate a chain of linked treads (yes, as in, tank treads) so that they work as wheels on SimObjects. Even simple SimObjects can have the wheels rigged so that they move properly, depending on speed. I want them implemented on my Crawler Transporter (CT), which is a SimObject in my KSC Scenery, carrying a platform and a shuttle to the launch pad (as in the pic attached).

After initially thinking "all I need to do is animate them and give them a perimeter size, and they will follow the ground precisely", I am now realizing it is not that simple. First of all, the SDK animates wheels using 5 frames, where each frame rotates 90 degrees. This is all that is needed for circular wheels, but my treads are obviously not moving in a circle, but in a specific path, for which I need far more than 5 frames.

Then, I was thinking to animate it as a "standard", looping animation. In that case, it would work, however, the treads would keep looping even when the CT is stopped, which would be annoying. For that, I'd need to find a way to stop and start them on demand, and I suppose I can do that using an LVAR that I can set from either from WASM or XML. but I have to do a bit of research on how to conditionally start/stop an animation on SimObject (I saw a hangar door tutorial somewhere here and on YT so I guess I can look into that). As for speed, luckily, CT has only 2 speeds: loaded and empty, and mine is moving on a slower speed, around 3.7 km/h because it is always loaded. So, for speed, I can time my animation to 3.7 km/h.

Finally, I was thinking about the Sim "wheel" approach again, but this time perhaps fine tune my animation so that it is indeed only 5 frames. Since the tread chain is composed of identical links (cleats), the 5 frames would be between the two adjacent cleats, where rear cleat falls precisely into the position of the front cleat on 5th frame, thus creating a seamless sequence of the whole chain. Then, I would have to calculate the circumference of my tread so that the sim ties the animation speed to the object speed. However, I am not sure how the internal FS calculations are done on the wheels. I may have to do a simple experiment on this before I commit to the whole thing ;)

Can anyone share some advice or experience on the above?


BG025.PNG
 
Hi Misho:

Wow, that looks great. :D

I'll bet Federico Pinotti (aka "mamu") might have some ideas on how to do that track animation. :idea:

GaryGB
 
First of all, the SDK animates wheels using 5 frames, where each frame rotates 90 degrees. This is all that is needed for circular wheels, but my treads are obviously not moving in a circle, but in a specific path, for which I need far more than 5 frames.
You're interpreting the SDK too literally. It's actually incredibly flexible in terms of keys, for example I do all my rotations at 0-12-24-36, 120 degree arcs, which includes wheels and tires and to create the animation below I started with a basic bend and then I just kept throwing in keys, played the animation a bit, decided I don't like the way it's bending, move a key or a few manually, throw in another key to lock in that adjustment, maybe slide a few keys or even transpose them to get the right effect. I wouldn't hesitate to use 100 or even 1000 keys to achieve the desired fidelity. You can always get what you want with 1000 keys and then scale that whole range down to whatever maximum you want 100, 25, or even 5 in the timeline.


Each tread can be a single skinned mesh and that should be pretty straightforward. You could also use the paths follow technique but you'd have to make each individual tread tile a node, all your bogies and then you'd have to record that all the the timeline, it seems pretty extreme for what is really wheels on a scenery prop. Also I don't think you could rig it as a simobject vehicle that way, you'd have to make out it's path, make a single animation and then play that based on whatever, proximity or time of day, yoke visibility.
Skinned mesh can cover a multitude of sins imo, you have four or 8 rotating potato shaped things and you're good to go. In the end, you're best "ambulate" it as a simobject imo, you can get your treads to act like wheels that way, so you won't have to come with start and stop events, just drive it around like a ground vehicle or a taxiing airplane and the sim engine will do all the rest - but - then you have to come up with a driving event, a flight plan or something SimConnect related.
 
You're interpreting the SDK too literally. It's actually incredibly flexible in terms of keys, for example I do all my rotations at 0-12-24-36, 120 degree arcs, which includes wheels and tires and to create the animation below I started with a basic bend and then I just kept throwing in keys, played the animation a bit, decided I don't like the way it's bending, move a key or a few manually, throw in another key to lock in that adjustment, maybe slide a few keys or even transpose them to get the right effect. I wouldn't hesitate to use 100 or even 1000 keys to achieve the desired fidelity. You can always get what you want with 1000 keys and then scale that whole range down to whatever maximum you want 100, 25, or even 5 in the timeline.


Each tread can be a single skinned mesh and that should be pretty straightforward. You could also use the paths follow technique but you'd have to make each individual tread tile a node, all your bogies and then you'd have to record that all the the timeline, it seems pretty extreme for what is really wheels on a scenery prop. Also I don't think you could rig it as a simobject vehicle that way, you'd have to make out it's path, make a single animation and then play that based on whatever, proximity or time of day, yoke visibility.
Skinned mesh can cover a multitude of sins imo, you have four or 8 rotating potato shaped things and you're good to go. In the end, you're best "ambulate" it as a simobject imo, you can get your treads to act like wheels that way, so you won't have to come with start and stop events, just drive it around like a ground vehicle or a taxiing airplane and the sim engine will do all the rest - but - then you have to come up with a driving event, a flight plan or something SimConnect related.
Thanks Rick! Interesting! I have the "rig" working already - it is a SimObject "GroundVehicle" type (like a fire truck in the examples), and my WASM controller sends it a "flight plan". what you see in that screenshot is moving (I should make a video). I have a full control of it through my WASM controller (as in spawning, positioning, sending flight plans, and deleting, and, if needed setting LVARS on it). Right now, as the flight is loaded, WASM spawns the object, gives it a flight path, and off the thing goes at 3.7 km/h :D The only thing is, it is dragging the treads/tracks along the ground, and it just looks odd and underwhelming.

The 3DS MAX animation part I think can do, I found a pretty good 3-part tutorial on YT:

But to get it to work as a wheel, so that the treads are synchronized with speed, that is what I am trying to figure out. Are you saying that ANY animation that I call "RightWheel/LeftWheel/CenterWheel" and give it a perimeter value, will be seen by the sim as a wheel on the ground and will have the frame playback adjusted according to the speed of the SimObject?

Or, should I ask it this way:
  • can I have a human 3D figure animated (in 3DSMAX or Blender) with two steps (right and left foot, but in place, not moving forward)
  • measure the length of these 2 strides, call that a "perimeter", length of a complete cycle,
  • make a "GroundVehicle" SimObject out of it
  • spawn it, give it a flight path
and now this figure will be walking along the flight path at the correct "stride"? (although it may look funny if the speed is too slow or too fast for normal walk animation)
 
Last edited:
can I have a human 3D figure animated (in 3DSMAX or Blender) with two steps (right and left foot, but in place, not moving forward)
  • measure the length of these 2 strides, call that a "perimeter", length of a complete cycle,
  • make a "GroundVehicle" SimObject out of it
  • spawn it, give it a flight path
and now this figure will be walking along the flight path at the correct "stride"? (although it may look funny if the speed is too slow or too fast for normal walk animation)
I am commenting that you can take a model of a human and - here's a cool idea, animate the bone chains slightly differently. Really, go wild, it will all work out. Then when you compile it as a simobject and start "driving" it around your scene, it will have a very convincing "gait." See the thing is, we can tune in all the non rotational animations with the anim lag, anim length, etc controls. So if your model is doing the Sylvester scramble, or the Road Runner watusi, just lag the animation a bit to match up the pace to the terrain speed. With wheels and anything rolling it is downright Euclidean, wheel radius matters and the sim drives those meshes along the ground like a rolling pin. I mean it looks downlight weird when you mess up an animation and the rolling speed doesn't mesh. These are some of the hidden gems buried within the sim engine that keeps it alive in the 21st century. Animate a car and drop it into Unreal it's just going to sit there looking pathetic, but do the same thing in MSFS and you'll be driving it by the end of the day. I say get some before the other guys inevitably realize how to simulate a flight simulator.

Speaking of which, you know 2024 includes tire marks, right? I was thinking it might be about time to develop a drifting rig to test out this new feature! Finally an opportunity to really leverage those tire slow and tire blur animations.
 
Back
Top