Unity 6.3
0 онлайн 97 гостей 3 в системе
Вход
Animation Шаг 18 из 74

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

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

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

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

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

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

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

Параметр Пересемплинг кривых на вкладке Анимации
Параметр Пересемплинг кривых на вкладке Анимации

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

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

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

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

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

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

Порядки Эйлера не по умолчанию в Transform Inspector

По умолчанию Unity применяет Эйлеровы углы, которые присутствуют в Transform Inspector в порядке Z,X,Y.

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

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

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

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