glTF exporter: Fix regression exporting animated camera

Was introduced bu KHR_animation_pointer
This commit is contained in:
Julien Duroure
2024-10-31 14:15:24 +01:00
committed by Philipp Oeser
parent 8112c2da0b
commit aa8fd273cd
2 changed files with 49 additions and 49 deletions
@@ -5,7 +5,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
"version": (4, 2, 77),
"version": (4, 2, 78),
'blender': (4, 2, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
@@ -148,67 +148,67 @@ def gather_scene_animations(export_settings):
total_channels = []
# Export now KHR_animation_pointer for lights
for light in export_settings['KHR_animation_pointer']['lights'].keys():
if len(export_settings['KHR_animation_pointer']['lights'][light]['paths']) == 0:
continue
# Export now KHR_animation_pointer for lights
for light in export_settings['KHR_animation_pointer']['lights'].keys():
if len(export_settings['KHR_animation_pointer']['lights'][light]['paths']) == 0:
continue
blender_light = [l for l in bpy.data.lights if id(l) == light][0]
blender_light = [l for l in bpy.data.lights if id(l) == light][0]
export_settings['ranges'][id(blender_light)] = {}
export_settings['ranges'][id(blender_light)][id(blender_light)] = {'start': start_frame, 'end': end_frame}
export_settings['ranges'][id(blender_light)] = {}
export_settings['ranges'][id(blender_light)][id(blender_light)] = {'start': start_frame, 'end': end_frame}
if export_settings['gltf_anim_slide_to_zero'] is True and start_frame > 0:
add_slide_data(start_frame, light, light, export_settings, add_drivers=False)
if export_settings['gltf_anim_slide_to_zero'] is True and start_frame > 0:
add_slide_data(start_frame, light, light, export_settings, add_drivers=False)
channels = gather_data_sampled_channels('lights', light, light, None, export_settings)
if channels is not None:
total_channels.extend(channels)
channels = gather_data_sampled_channels('lights', light, light, None, export_settings)
if channels is not None:
total_channels.extend(channels)
if export_settings['gltf_anim_scene_split_object'] is True:
if len(total_channels) > 0:
animation = gltf2_io.Animation(
channels=total_channels,
extensions=None,
extras=__gather_extras(blender_light, export_settings),
name=blender_light.name,
samplers=[]
)
link_samplers(animation, export_settings)
animations.append(animation)
if export_settings['gltf_anim_scene_split_object'] is True:
if len(total_channels) > 0:
animation = gltf2_io.Animation(
channels=total_channels,
extensions=None,
extras=__gather_extras(blender_light, export_settings),
name=blender_light.name,
samplers=[]
)
link_samplers(animation, export_settings)
animations.append(animation)
total_channels = []
total_channels = []
# Export now KHR_animation_pointer for cameras
for cam in export_settings['KHR_animation_pointer']['cameras'].keys():
if len(export_settings['KHR_animation_pointer']['cameras'][cam]['paths']) == 0:
continue
# Export now KHR_animation_pointer for cameras
for cam in export_settings['KHR_animation_pointer']['cameras'].keys():
if len(export_settings['KHR_animation_pointer']['cameras'][cam]['paths']) == 0:
continue
blender_camera = [l for l in bpy.data.cameras if id(l) == cam][0]
blender_camera = [l for l in bpy.data.cameras if id(l) == cam][0]
export_settings['ranges'][id(blender_camera)] = {}
export_settings['ranges'][id(blender_camera)][id(blender_camera)] = {'start': start_frame, 'end': end_frame}
export_settings['ranges'][id(blender_camera)] = {}
export_settings['ranges'][id(blender_camera)][id(blender_camera)] = {'start': start_frame, 'end': end_frame}
if export_settings['gltf_anim_slide_to_zero'] is True and start_frame > 0:
add_slide_data(start_frame, cam, cam, export_settings, add_drivers=False)
if export_settings['gltf_anim_slide_to_zero'] is True and start_frame > 0:
add_slide_data(start_frame, cam, cam, export_settings, add_drivers=False)
channels = gather_data_sampled_channels('cameras', cam, cam, None, export_settings)
if channels is not None:
total_channels.extend(channels)
channels = gather_data_sampled_channels('cameras', cam, cam, None, export_settings)
if channels is not None:
total_channels.extend(channels)
if export_settings['gltf_anim_scene_split_object'] is True:
if len(total_channels) > 0:
animation = gltf2_io.Animation(
channels=total_channels,
extensions=None,
extras=__gather_extras(blender_camera, export_settings),
name=blender_camera.name,
samplers=[]
)
link_samplers(animation, export_settings)
animations.append(animation)
if export_settings['gltf_anim_scene_split_object'] is True:
if len(total_channels) > 0:
animation = gltf2_io.Animation(
channels=total_channels,
extensions=None,
extras=__gather_extras(blender_camera, export_settings),
name=blender_camera.name,
samplers=[]
)
link_samplers(animation, export_settings)
animations.append(animation)
total_channels = []
total_channels = []
if export_settings['gltf_anim_scene_split_object'] is False:
if len(total_channels) > 0: