Есть анимированная арматура, но порядок вращения Эйлера некоторых костей необходимо изменить из-за блокировки карданного подвеса. Можно ли изменить порядок вращения существующей анимации без изменения исходной анимации? Я пробовал, но анимация выглядит странно. это не похоже на оригинальную анимацию.

2
Yokomizo 8 Янв 2022 в 21:29

1 ответ

Лучший ответ

Таким образом, в 3D блокировка карданного подвеса на самом деле не является какой-то блокировкой, которая происходит в одной конкретной ориентации, как в инженерном деле, откуда и произошел этот термин. На самом деле это просто шаткая интерполяция Эйлера, которая существует при всех ориентациях, но наиболее заметна при определенных ориентациях. Это не что-то особенное, что иногда случается; это происходит всегда, и именно так интерполирует Эйлер.

Таким образом, вы не можете изменить порядок вращения только для случаев блокировки подвеса, не влияя на интерполяцию на других кадрах. Вы можете запечь вращение кости с другим режимом вращения, а затем удалить лишние ключевые кадры, но это изменит вашу интерполяцию для всех кадров, а не только для тех, которые вы идентифицировали как заблокированные.

Что мы можем сделать, так это указать кости использовать другой порядок вращения для промежутка в несколько ключевых кадров с помощью копирования ограничений поворота и визуальных преобразований.

enter image description here

Мы собираемся начать с кости Эйлера XYZ с интерполяцией, которая нам не нравится, между двумя ключевыми кадрами. (Здесь мы вращаем от 0,0,0 до 180,90,180.) Мы добавим пустое значение, установим для него режим вращения, какой захотим (здесь обычно лучше всего подходит кватернион, на самом деле никому не нужна интерполяция Эйлера interpolation< /em>, им нужно управление по осям), а затем задайте для него ограничение вращения копии, мир->мир, ориентируясь на кость, которую мы хотим.

Затем мы перейдем к расположению каждого из ключевых кадров нашей кости, выберем пустой, применим визуальное преобразование и вращение ключевого кадра. Затем мы удалим ограничение.

Теперь мы можем связать кость с нашей пустой. Мы дадим ему ограничение вращения копии, нацеленное на пустой мир->мир. В наших текущих ключевых кадрах поворота мы установим это ограничение на 1,0; на один кадр раньше первого ключевого кадра и на один кадр позже последнего ключевого кадра мы установим его на 0.0.

enter image description here

Теперь наш XYZ Euler использует кватернионную интерполяцию (из пустых ключевых кадров) для этого отрезка нашей анимации.

Если бы мы хотели, мы могли бы запечь этот отрезок анимации с визуальным ключом и четкими ограничениями, чтобы мы больше не зависели от пустого места. Это создаст ключевой кадр в каждом кадре, чтобы мы больше не полагались на интерполяцию Эйлера:

enter image description here

2
Nathan 8 Янв 2022 в 22:01
Ваша информация полезна, но то, что я хочу сделать, это не изменить порядок вращения для нескольких ключевых кадров, а я хочу, чтобы он был полностью изменен. Прямо сейчас я анимировал плечевую кость персонажей, используя неправильный порядок вращения XZY, но это вызывает блокировку карданного подвеса, потому что мне нужно повернуть ось Z более чем на 90 градусов, поэтому я хочу изменить XZY на ZYX. Является ли это возможным? Я просто изменил порядок вращения, но это не работает.
 – 
Yokomizo
8 Янв 2022 в 23:08
Сколько ключевых кадров? Вы можете сделать то же самое, что я описал, но по всем ключевым кадрам, если хотите. Если есть много ключевых кадров, это может быть громоздко, и скрипт (или аддон, если вы можете его найти) упростит задачу. Но имейте в виду, что это изменит ваши интерполяции между ключевыми кадрами; в конце концов, в этом весь смысл.
 – 
Nathan
8 Янв 2022 в 23:24
Это анимация из 50 кадров, но в ней всего 3 ключевых кадра. кадр 1, кадр 25 и кадр 50, но у него интерполяция Безье, и мне нужно изменить плечо, предплечье и руку. Если не сложно переделаю все вручную. однако сделать такую ​​же кривую Безье будет невозможно.
 – 
Yokomizo
8 Янв 2022 в 23:41
Создайте пустой с соответствующим режимом, скопируйте вращение в него local->world, запеките ключевые кадры в пустом, удалите все ключевые кадры, кроме 1, 25 и 50, измените вращение на своей кости, скопируйте и вставьте ключевые кадры из пустого. Да, вы правы, ручки пользовательской f-кривой будут потеряны; они просто не имеют смысла с точки зрения другого режима вращения/порядка Эйлера.
 – 
Nathan
9 Янв 2022 в 00:02
В порядке. Я скопирую и вставлю анимацию, используя ограничение вращения копии + пусто. Спасибо!
 – 
Yokomizo
9 Янв 2022 в 16:52