Как преобразовать плавную анимацию в ступенчатые ключи, сохранив движение
Чтобы преобразовать плавную анимацию в ступенчатые ключи, снимите значения исходного движения на кадрах, которые хотите сохранить, а затем задайте удержание каждой снятой позы до следующего ключа. Одно лишь изменение интерполяции у редких исходных ключей не сохраняет позы, которые раньше существовали между ними.
Это руководство предназначено для создателей персонажей, которые преобразуют существующую анимацию виртуального питомца или игрушки в намеренно удерживаемые позы. Практические шаги описаны для Maya; также приводится способ выбора кадров для выборки, который помогает сохранить важные жесты и тайминг. Здесь сохранение движения означает удержание выбранных поз, длительности действия и его ключевых моментов; движение между этими позами превращается в последовательность удержаний.
Почему изменение только тангентов меняет движение
Плавная анимационная кривая задаёт значения между ключами. Ступенчатый тангент Maya удерживает значение текущего ключа до появления следующего. Поэтому, если поворот головы персонажа задан ключами только на кадрах 1 и 13, прямое преобразование этих ключей в ступенчатые даст длительное удержание, а затем скачок. Промежуточные положения головы при этом не сохраняются. Autodesk описывает такое поведение в справке по меню Tangents редактора Graph Editor.
Решение состоит из двух отдельных операций: сначала снимите значения с плавного исходника, затем определите, как долго будет отображаться каждое снятое значение. Порядок важен. Если сначала изменить интерполяцию исходника на ступенчатую, выборка снимет существующие удержания, а не исходное плавное движение.
Для этого процесса сохраните нетронутую плавную версию и создайте отдельную сцену для преобразования. Так у вас останется образец, по которому можно восстановить жест, исчезнувший при сокращении числа поз.
Что сохранить до выбора интервала между ступенями?
Для начала просмотрите весь клип и определите моменты, благодаря которым действие легко читается. Например, для маленького персонажа, поворачивающегося к игрушке, это могут быть начало поворота, наибольший угол головы, момент, когда взгляд фиксируется, и возвращение в исходную позу.
Запишите номера кадров этих событий. Также зафиксируйте частоту кадров сцены, диапазон воспроизведения и границу зацикливания. Это условия для сравнения: просматривайте плавную и ступенчатую версии с одинаковой частотой кадров, через одну и ту же камеру и в одном и том же диапазоне.
Воспользуйтесь этой таблицей, чтобы выбрать начальный подход. Это рекомендации по редактированию на основе метода выборки и удержания, а не готовые настройки приложения.
| Что требуется от движения | Начальный подход | Что проверить |
|---|---|---|
| Равномерный ритм поз | Снимать позы через два кадра | Не оказались ли ключевые позы между кадрами выборки |
| Намеренно более долгое удержание | Оставить меньше поз в этом фрагменте | Начинается ли следующее изменение в нужный момент |
| Быстрый поворот или небольшой жест | Оставить соседние кадры вокруг события | Остаётся ли жест заметным |
| Зацикленная анимация покоя | Согласовать последнее удержание и перезапуск | Не возникает ли на стыке непредусмотренная пауза |
В одном клипе можно сочетать разные интервалы. Ритм с интервалом в два кадра — полезная отправная точка, но для сохранения короткого жеста может потребоваться акцент на одном кадре. Считайте кадры событий обязательными условиями, а равномерную сетку выборки — редактируемой отправной точкой.
Как снять вычисленное движение персонажа?
Прежде чем сокращать число поз, убедитесь, что анимацию можно представить каналами, которые вы собираетесь редактировать. Видимое движение рига может зависеть не только от имеющихся ключей. Autodesk указывает обратную кинематику, выражения и пути движения как примеры анимации, которую может потребоваться запечь в анимационные кривые. См. раздел Запекание симуляций.
Выберите цель запекания с учётом того, что вы готовите. Для простой игрушки, анимированной непосредственно с помощью трансформаций, это могут быть анимированные объекты. Для персонажа с ригом определите, нужна ли вам редактируемая анимация контроллеров или запечённый результат для суставов. Не предполагайте, что запекание одного контроллера сохранит все видимые части персонажа.
Операция Maya bakeResults заменяет влияющие на результат зависимости выборочными анимационными кривыми и позволяет задать диапазон выборки. Её параметр симуляции поддерживает анимацию, для которой требуется последовательное вычисление сцены. Эти возможности описаны в справке по команде bakeResults.
Для преобразования сначала создайте плотную эталонную запечённую анимацию с интервалом в один кадр. Сравните её с нетронутым исходником, прежде чем удалять ключи или менять интерполяцию. Проверьте корень, голову, конечности и любые отдельно анимируемые свойства лица. Если на этом этапе они различаются, сначала исправьте цель запекания или охват каналов: смена интервала между ступенями не восстановит движение, которое изначально не было снято.
Как создать ступенчатые ключи в Maya?
Далее предполагается, что временная единица сцены — кадры, а в копии для преобразования выбраны нужные объекты или каналы рига.
- В наборе меню Animation откройте окно параметров рядом с Key > Bake Simulation.
- Задайте явный диапазон Start/End, охватывающий клип.
- Установите флажки Hierarchy и Channels, чтобы запекание включало нужные объекты и атрибуты.
- Установите для Sample By значение 1, а для Oversampling Rate — 1. Отключите Smart Bake, чтобы получать равномерно расположенные отсчёты.
- Проверьте параметры Bake To и исходного слоя перед запуском запекания. Исходную сцену храните отдельно.
- Выполните запекание и сравните результат с плавным эталоном. Autodesk описывает эти параметры в разделе Параметры Bake Simulation.
Сохраните копию этого плотного запекания. В рабочей версии откройте Graph Editor, выделите запечённые ключи в пределах клипа и выберите Tangents > Stepped. Используйте обычный режим Stepped: Stepped Next сразу принимает значение следующего ключа, что меняет момент появления поз. В Maya также есть параметр Enable Stepped Preview для временного просмотра; его отключение восстанавливает исходные типы тангентов. См. меню Tangents редактора Graph Editor.
Теперь сократите число ключей в рабочей версии по выбранному расписанию кадров. Для ритма в два кадра, начинающегося с кадра 1, оставьте кадры 1, 3, 5 и так далее, а также любые необходимые ключи событий и конечные ключи. Удалите ненужные промежуточные ключи на каналах, которые должны меняться согласованно. Перед удалением проверьте номера выбранных кадров.
Сначала обработайте короткий диапазон. Если голова меняется на одном кадре, а связанные с ней каналы тела — на другом, результат может объединить значения, которые никогда не составляли одну снятую позу. Общий график сохраняемых кадров для таких каналов упрощает обнаружение этой проблемы.
Как сохранить жест, который не попал в выборку?
Рассмотрим условный пример: в клипе персонажа с частотой 24 кадра/с есть короткое подёргивание уха, максимальный угол которого достигается на кадре 8. Сетка с интервалом в два кадра, начинающаяся с кадра 1, охватывает кадры 1, 3, 5, 7, 9 и далее. Кадр 8 в неё не попадает.
При частоте 24 кадра/с равномерный рисунок удержаний через два кадра даёт 12 запланированных смен поз в секунду, а через три кадра — восемь. Это арифметическое описание расписания, а не оценка того, как выглядит клип.
| Кадр | Условный угол уха в плавном исходнике | Регулярная сетка через два кадра | Изменённая сетка |
|---|---|---|---|
| 7 | 10° | Оставить | Оставить |
| 8 | 25° | Пропустить | Оставить |
| 9 | 12° | Оставить | Оставить |
Сохранение кадра 8 позволяет оставить максимальный угол в исходный момент времени. Кадр 7 тогда удерживается один кадр, кадр 8 — один кадр, после чего можно вернуться к регулярному ритму с кадра 9. Жест остаётся в анимации, а остальное действие не сдвигается.
Восстановите этот кадр из нетронутого исходника или плотного запекания. Если вставить ключ в уже сокращённую ступенчатую кривую, он просто запишет текущее удерживаемое значение и не восстановит пропущенный угол. В этом и состоит главное преимущество плотного эталона, который хранится до завершения выбора поз.
Достаточно ли ступенчатого модификатора или нужны настоящие ключи?
Процедурный эффект ступенчатой анимации помогает проверить ритм до того, как вы зафиксируете расписание ключей. Например, руководство для создателей Bforartists описывает модификатор F-Curve Stepped Interpolation с параметрами Step Size, Offset и диапазоном кадров. Система модификаторов позволяет настраивать эффекты и отключать их. См. руководство Graph Editor — Sidebar — Modifiers Tab.
Это различие важно, если задача требует именно ступенчатых ключей. Проверьте данные анимации: на сохранённых моментах выборки должны стоять ключи, между которыми позы удерживаются. Один лишь ступенчатый вид предпросмотра не подтверждает, что такие ключи существуют. При необходимости используйте модификатор, чтобы изучить тайминг, а затем проверьте итоговые данные ключей, прежде чем считать преобразование завершённым.
Как проверить, что ступенчатая версия сохраняет действие?
Проверьте результат в два этапа. Сначала сравните исходного и преобразованного персонажа на каждом сохранённом кадре. Пози на этих кадрах должны совпадать, если это предусмотрено. Если они различаются, проверьте, все ли нужные каналы выбраны, правильно ли задана цель запекания и не влияют ли на результат другие части рига или слои. В документации Maya отмечено, что запекание в существующий слой назначения может изменить итоговую комбинацию анимации; при поиске причины расхождения проверьте поведение слоёв. См. справку о целевом слое для bakeResults.
Затем воспроизведите весь клип с заданной скоростью. Перемотка помогает проверять отдельные позы, а воспроизведение показывает, передают ли их удержания действие. Используйте эту последовательность для диагностики:
- Жест исчез: восстановите определяющий его кадр из плотного эталона.
- Переход кажется запоздалым: проверьте, когда начинается следующая поза, и сократите предыдущее удержание.
- Силуэт меняется слишком резко: сохраните ещё одну исходную позу между существующими отсчётами.
- Часть тела продолжает смещаться: проверьте каналы или зависимости, которые не вошли в преобразованный набор.
- На стыке цикла возникает пауза: проверьте, не повторяются ли конечная и начальная позы дольше, чем требуется.
Завершите работу, когда сохранённые позы совпадают с исходником там, где это необходимо, ключевые события происходят в нужное время, а удержания задают выбранный вами ритм персонажа. Храните плавный исходник и плотное запекание вместе со ступенчатой версией: так при дальнейшей настройке тайминга можно будет восстановить исходные позы, а не приблизительно их воссоздавать.
