Blender 在导出为带有动画的 gltf (glb) 文件时抛出关键帧错误 - Key.path_resolve 无法解决

Blender throws keyframe error when exporting as gltf (glb) file with animations - Key.path_resolve could not be resolved

我对 blender、动画和 gltf 还很陌生。我已经成功创建了我的 3d 模型,并且能够将其导出为 glb 文件。目前,我正在尝试添加一个行走动画,但导出到带有动画的 gltf 不起作用。这是导出器抛出的错误:

Python: Traceback (most recent call last):
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\__init__.py", line 575, in execute
    return gltf2_blender_export.save(context, export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 46, in save
    json, buffer = __export(export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 63, in __export
    __gather_gltf(exporter, export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_export.py", line 72, in __gather_gltf
    active_scene_idx, scenes, animations = gltf2_blender_gather.gather_gltf2(export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather.py", line 39, in gather_gltf2
    animations += __gather_animations(blender_scene, export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather.py", line 83, in __gather_animations
    animations_, merged_tracks = gltf2_blender_gather_animations.gather_animations(_blender_object, merged_tracks, len(animations), export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animations.py", line 76, in gather_animations
    animation = __gather_animation(blender_action, blender_object, export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animations.py", line 114, in __gather_animation
    channels=__gather_channels(blender_action, blender_object, export_settings),
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animations.py", line 150, in __gather_channels
    blender_action, blender_object, export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_channels.py", line 83, in gather_animation_channels
    None)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_channels.py", line 202, in __gather_animation_channel
    sampler=__gather_sampler(channels, blender_object, export_settings, bake_bone, bake_channel, bake_range_start, bake_range_end, action_name, driver_obj),
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_channels.py", line 263, in __gather_sampler
    export_settings
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_samplers.py", line 65, in gather_animation_sampler
    bake_bone, bake_channel, bake_range_start, bake_range_end, action_name, driver_obj, export_settings),
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_samplers.py", line 240, in __gather_input
    export_settings)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_sampler_keyframes.py", line 240, in gather_keyframes
    step
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 90, in wrapper_bonecache
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_animation_sampler_keyframes.py", line 177, in get_bone_matrix
    drivers_to_manage = get_sk_drivers(obj_driver)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_cache.py", line 117, in wrapper_skdriverdiscover
    result = func(*args)
  File "E:\Applications\Blender.92\scripts\addons\io_scene_gltf2\blender\exp\gltf2_blender_gather_drivers.py", line 54, in get_sk_drivers
    sk_name = child.data.shape_keys.path_resolve(get_target_object_path(sk_c.data_path)).name
ValueError: Key.path_resolve("key_blocks["Key 1"]") could not be resolved

location: <unknown location>:-1

我想 gltf 导出器找不到我的关键帧,但我不知道如何解决该问题。 任何帮助深表感谢! 谢谢

我已经提交了 gltf 导出器的错误报告。您可以在这里查看:https://github.com/KhronosGroup/glTF-Blender-IO/issues/1401 删除无效的驱动程序可解决此问题。