I found something interesting in the code and the export settings.
I now know what Rest & Ranges - the 'Limit to Playback Range" is.
If you have an animation - 0 to 60 Key Frames - and in the Blender Output Properties panel (on he right) - it will have a setting for “frame Range” - Start, End and Step.
Checking “Limit to Playback Range” will NOT pick up frame zero in the 0-60 Animation on the export. in this case Output Properties is 1 - 60 steps of 1 (not zero to 60)
The code
if bpy.app.version >= (3, 6, 0):
if export_settings['gltf_negative_frames'] == "CROP":
frames = [f for f in frames if f >= 0]
if export_settings['gltf_frame_range'] is True:
frames = [f for f in frames if f >= bpy.context.scene.frame_start and f <= bpy.context.scene.frame_end]
print("gather_fcurve_keyframes - frame range", frames)
use the Output properties frame values rather than the animation start and end values.
gather_material_actions - before test None
gather_material_actions - in the nla track <bpy_struct, NlaStrip("changeColor") at 0x000002778847E168>
gather_material_actions - in the nla track - append changeColor
gather_channels_fcurves <bpy_struct, FCurve at 0x000002778C197688>
gather_channels_fcurves - length found 4
gather_channels_fcurves - channels_map dict_values([[<io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.AsoboChannel object at 0x00000277814804F0>]])
gather_channels_fcurves - channels_map loop [<io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.AsoboChannel object at 0x00000277814804F0>]
gather_fcurve_keyframes <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.AsoboChannel object at 0x00000277814804F0>
gather_fcurve_keyframes - frames before [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frames after [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frame range [20.0, 40.0, 60.0]
gather_fcurve_keyframes - frame loop 20.0
gather_fcurve_keyframes - frame loop 40.0
gather_fcurve_keyframes - frame loop 60.0
gather_fcurve_keyframes - frame keys loop 20.0 <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.Keyframe object at 0x0000027781480430>
gather_fcurve_keyframes - frame keys loop 40.0 <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.Keyframe object at 0x0000027781482B30>
gather_fcurve_keyframes - frame keys loop 60.0 <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.Keyframe object at 0x0000027781482B60>
finalize_material_animation - material_channel <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.AsoboChannel object at 0x00000277814804F0>
finalize_material_animations - animation <io_scene_gltf2.io.com.gltf2_io.Animation object at 0x0000027781DCA4D0>
finalize_material_animation - material_channel <io_scene_gltf2_msfs_2024_for36.io.com.extensions.asobo_property_animation.AsoboChannel object at 0x00000277814804F0>
gather_gltf_extensions_hook fails on <io_scene_gltf2_msfs_2024_for36.glTF2ExportUserExtension object at 0x0000027781D7F1F0>
all my print statements in the code - Notice
gather_fcurve_keyframes - frames before [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frames after [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frame range [20.0, 40.0, 60.0]
there is no zero in the last line with playback checked.
However
gather_fcurve_keyframes - frames before [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frames after [0.0, 20.0, 40.0, 60.0]
gather_fcurve_keyframes - frame loop 0.0
gather_fcurve_keyframes - frame loop 20.0
gather_fcurve_keyframes - frame loop 40.0
gather_fcurve_keyframes - frame loop 60.0
there is if you uncheck it.
But this still does not get animated UVOffset to work.
Everyone should set up there Blender defaults to (startup blend file) with Output Properties Key Frame start set to zero (i think)