Blender выдает ошибку ключевого кадра при экспорте в виде файла gltf (glb) с анимацией — Ключ.path_resolve не удалось разрешить

#blender #gltf

Вопрос:

Я довольно новичок в blender, анимации и gltf. Я успешно создал свою 3d-модель и смог экспортировать ее в файл glb. В настоящее время я пытаюсь добавить анимацию ходьбы, но экспорт в gltf с анимацией не работает. Это ошибка, которую выдает экспортер:

 Python: Traceback (most recent call last):
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2__init__.py", line 575, in execute
    return gltf2_blender_export.save(context, export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_export.py", line 46, in save
    json, buffer = __export(export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_export.py", line 63, in __export
    __gather_gltf(exporter, export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_export.py", line 72, in __gather_gltf
    active_scene_idx, scenes, animations = gltf2_blender_gather.gather_gltf2(export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather.py", line 39, in gather_gltf2
    animations  = __gather_animations(blender_scene, export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_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:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animations.py", line 76, in gather_animations
    animation = __gather_animation(blender_action, blender_object, export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animations.py", line 114, in __gather_animation
    channels=__gather_channels(blender_action, blender_object, export_settings),
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animations.py", line 150, in __gather_channels
    blender_action, blender_object, export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animation_channels.py", line 83, in gather_animation_channels
    None)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_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:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animation_channels.py", line 263, in __gather_sampler
    export_settings
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_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:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animation_samplers.py", line 240, in __gather_input
    export_settings)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 65, in wrapper_cached
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animation_sampler_keyframes.py", line 240, in gather_keyframes
    step
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 90, in wrapper_bonecache
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_animation_sampler_keyframes.py", line 177, in get_bone_matrix
    drivers_to_manage = get_sk_drivers(obj_driver)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_blender_gather_cache.py", line 117, in wrapper_skdriverdiscover
    result = func(*args)
  File "E:ApplicationsBlender2.92scriptsaddonsio_scene_gltf2blenderexpgltf2_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 не может найти мои ключевые кадры, но я понятия не имею, как исправить эту проблему.
Любая помощь будет очень признательна!
Спасибо

Ответ №1:

Я отправил сообщение об ошибке для экспортера gltf. Вы можете посмотреть на это здесь: https://github.com/KhronosGroup/glTF-Blender-IO/issues/1401 Удаление недействительных драйверов устраняет проблему.