Connection between wheel contact point numbers, gear animation IDs, order of animations in glTF, etc?

Could somebody explain how these things hang together:

  • The numbering of wheel contact points in flight_model.cfg.
  • The ID parameter passed to ASOBO_GEAR_Base_Template
  • The wheel numbering in the Dev Mode’s Debug > Wheels window
  • The order of animations in the glTF file
  • The order of calls to ASOBO_GEAR_Base_Template in the model XML file

The logical thing would if the first wheel mentioned in flight_model.cfg would
correspond to the ID=0 animation, that is the GEAR ANIMATION POSITION:0
simvar, the second to ID=1, etc, and that the order of animations in the glTF
and the order of the gear template calls in the XML file would not matter. But
is this how it is? Does it matter whether left and right hand side wheels are
in arbitrary order or should one first have the center one(s), if any, then
the left ones, then the right ones, or something like that? And why does the
Debug > Wheel window in Dev Mode number the wheels from 1, not 0? But is it so
that what that window calls wheel #1 is the first wheel contact point, wheel
#2 is the second, etc? Finally, is there perhaps some undocumented internal
restriction in the simulator that makes having more than three wheel contact
points work a bit oddly?

Could it be that the simulator code has only really been tested thoroughly for
an aircraft with the normal three landing gears, and for instance the code
that calculates how much of the weight is on each gear is broken if there are
four (or more) landing gears? (I am using my dummy “flying brick” aircraft for
quick experimentation and it has four wheels (well, legs). But maybe that is
actually a bad idea, if it exercises uncharted territory in the sim, and I
should switch it to have just three wheels (legs)…)

I may be able to answer some of these questions based on my experiments with
my fire truck chassis. The only place I found that references the actual
contact point IDs is the “ASOBO_Contact_Point_Template” that will play the
compression/extension animation for each wheel’s suspension based on the ID
number of the contact point (from flight_model.cfg). For wheel rotation you’re
stuck with either left/right/center, and only the center wheel rotation is
sent over multiplayer (I have filed a bug report for this). The rotation value
for the left/right/center position is determined from the rotation value of a
contact point placed on the left side, right side or dead center, so you can’t
do accurate wheel rotation for each wheel. The Dev mode debug window shows the
wheels in the order of their ID’s. Wheel 1 is the first ID that is a contact
point of type wheel. I hope this helps. Example: 6 wheel truck:

0
Wide_L1_gear
True


1
Wide_R1_gear
True


2
Wide_lf_gear
True


3
Wide_rf_gear
True


10
Wide_L2_gear
True


11
Wide_R2_gear
True





Wide_L1_tire_anim
LEFT_WHEEL
LEFT_WHEEL_BLURRED
true


Wide_R1_tire_anim
RIGHT_WHEEL
RIGHT_WHEEL_BLURRED
true


l_tire_anim
LEFT_WHEEL
LEFT_WHEEL_BLURRED
true


r_tire_anim
RIGHT_WHEEL
RIGHT_WHEEL_BLURRED
true


Wide_L2_tire_anim
LEFT_WHEEL
LEFT_WHEEL_BLURRED
true


Wide_R2_tire_anim
RIGHT_WHEEL
RIGHT_WHEEL_BLURRED
true

By the way, I now think I notice that if I set the last parameter of the wheel
point. n parameters (the vaguely documented exponential constant for
springs)
to 2 __ instead of 1 (which is claimed to be a safe and default
value), the test aircraft behaves much better on the ground. With 1, it seemed
very unstable, any random small perturbation (wind?) very easily made it start
to tilt more and more, and eventually it would even fall over…

For the suspension try ASOBO_Contact_Point_Template, which works with many
wheels.

Ah, I now noticed at least one PEBKAC problem: I had used the wrong values for
the “static compression” column of the point.n parameters. That explains why
some wheels were mysteriously too deep in the ground. But it doesn’t really
help with the basic questions here, I am looking for official documentation
how the numberings hang together.