Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Повторная выборка кривой Эйлера

Повороты в 3D-приложениях обычно представляются как кватернионыстандартный способ Unity для представления поворотов как данных. При написании кода, имеющего дело с поворотами, обычно следует использовать класс Quaternion и его методы. Подробнее
См. Словарь
или углы Эйлера. По большей части Unity внутренне представляет повороты как кватернионы; однако важно иметь общее представление о повороте и ориентации в Unity.

При импорте файлов, содержащих анимацию из внешних источников, импортированные файлы обычно содержат ключевой кадркадр, отмечающий начало или конечная точка перехода в анимации. Кадры между ключевыми кадрами называются промежуточными.
См. в Словарь
анимацию в формате Эйлера. Поведение Unity по умолчанию — передискретизировать эти анимации как значения Quaternion и генерировать новый ключевой кадр Quaternion для каждого кадра анимации. Это сводит к минимуму различия между исходной анимацией и тем, как она выглядит в Unity.

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

Примечание. Кривые Эйлера следует использовать только в крайнем случае, если интерполяция Quaternion по умолчанию между кадрами дает плохие результаты и вызывает проблемы.

Сохранение исходных кривых Эйлера в импортированных анимациях

Чтобы использовать исходные значения кривой Эйлера в файле анимации, снимите флажок Resample Curves на вкладке "Анимация":

Параметр Resample Curves на вкладке Animations
Параметр Resample Curves на вкладке Animations

Если вы отключите этот параметр, Unity сохранит кривую вращения с исходными ключевыми кадрами в режиме Эйлера или кватерниона в зависимости от типа кривой.

Примечание. FBX SDK автоматически выполняет передискретизацию любой кривой вращения в сочлененииФизический компонент, позволяющий динамическая связь между компонентами Rigidbody, обычно допускающая некоторую степень движения, например шарнир. Подробнее
Посмотрите в Словарь
, где есть пре- или постротация. Это означает, что Unity автоматически импортирует их как кривые Quaternion.

Unity поддерживает большое количество импортируемых файлов и пытается максимально приблизить импортированные кривые к оригиналу. Для этого Unity поддерживает все обычные (неповторяющиеся) эйлеровы порядки вращения и импортирует кривые в исходном порядке вращения.

Значения Эйлера и движок Unity

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

Когда вы отключаете параметр Resample Curves, Unity сохраняет значения поворота как значения Эйлера до тех пор, пока они не будут применены к GameObjectОсновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь
. Это означает, что конечный результат должен выглядеть так же хорошо, как и оригинал, но с улучшением памяти, поскольку кривые вращения, которые не были запечены в программном обеспечении для разработки, занимают меньше памяти.

Ордера Эйлера не по умолчанию в инспекторе преобразования

По умолчанию Unity применяет углы Эйлера, которые отображаются в Инспектореокна Unity, в котором отображается информация о выбранном в данный момент GameObject, активы или настройки проекта, позволяющие просматривать и редактировать значения. Дополнительная информация
См. в Словарь
в порядке Z,X,Y.

При воспроизведении или редактировании импортированных анимаций, содержащих кривые Эйлера с порядком вращения, отличным от установленного в Unity по умолчанию, Unity отображает индикатор разницы рядом с полями поворота:

Инспектор показывает, что для анимации вращения этого объекта используется порядок вращения, отличный от стандартного.
Инспектор показывает, что для анимации вращения этого объекта используется порядок вращения, отличный от стандартного.

При редактировании нескольких преобразований с разным порядком вращения Unity отображает предупреждающее сообщение о том, что одно и то же примененное вращение Эйлера даст разные результаты на кривых с разным порядком вращения:

Инспектор, показывающий, что для анимации вращения выбранной группы объектов используется смесь порядков вращения.
Инспектор, показывающий, что для анимации вращения выбранной группы объектов используется смесь порядков вращения.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3