glTF exporter: add some checks on animation data, fixing error with weird files
This commit is contained in:
parent
26c53aa581
commit
72599842ab
|
@ -15,7 +15,7 @@
|
|||
bl_info = {
|
||||
'name': 'glTF 2.0 format',
|
||||
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
|
||||
"version": (0, 9, 44),
|
||||
"version": (0, 9, 45),
|
||||
'blender': (2, 80, 0),
|
||||
'location': 'File > Import-Export',
|
||||
'description': 'Import-Export as glTF 2.0',
|
||||
|
|
|
@ -148,6 +148,9 @@ def __gather_target(channels: typing.Tuple[bpy.types.FCurve],
|
|||
def __get_channel_groups(blender_action: bpy.types.Action, blender_object: bpy.types.Object, export_settings):
|
||||
targets = {}
|
||||
for fcurve in blender_action.fcurves:
|
||||
# In some invalid files, channel hasn't any keyframes ... this channel need to be ignored
|
||||
if len(fcurve.keyframe_points) == 0:
|
||||
continue
|
||||
try:
|
||||
target_property = get_target_property_name(fcurve.data_path)
|
||||
except:
|
||||
|
|
|
@ -181,6 +181,8 @@ def gather_keyframes(blender_object_if_armature: typing.Optional[bpy.types.Objec
|
|||
else:
|
||||
# Just use the keyframes as they are specified in blender
|
||||
frames = [keyframe.co[0] for keyframe in channels[0].keyframe_points]
|
||||
# some weird files have duplicate frame at same time, removed them
|
||||
frames = sorted(set(frames))
|
||||
for i, frame in enumerate(frames):
|
||||
key = Keyframe(channels, frame, bake_channel)
|
||||
# key.value = [c.keyframe_points[i].co[0] for c in action_group.channels]
|
||||
|
|
Loading…
Reference in New Issue