Корректировка скорости анимаций FBX

Для проекта игры на Unity необходимо обработать набор из 17 файлов анимаций в формате FBX. Основная задача - изменить скорость воспроизведения каждой анимации, умножив её на заданный коэффициент.

Суть проблемы

Изменение скорости анимации через параметр Speed в Animator Controller Unity приводит к некорректной работе Animation Events. Для стабильной работы событий необходимо, чтобы скорость состояния аниматора оставалась равной 1, а требуемая скорость была «зашита» в сами данные анимации FBX.

Техническое задание

Исходные данные

  • Архив с 17 файлами анимаций в формате FBX.
  • Текстовый файл со списком, где для каждой анимации указано:
    • Название файла (или анимации).
    • Числовой коэффициент изменения скорости.

Требования к обработке

  • Для анимации, где коэффициент больше 1 (например, 1.2), скорость должна быть увеличена в указанное число раз (ускорена).
  • Для анимации, где коэффициент меньше 1 (например, 0.7), скорость должна быть уменьшена в указанное число раз (замедлена).
  • Изменения должны быть применены к данным внутри файлов FBX. Ожидаемый результат - набор исправленных FBX-файлов, готовых к импорту в Unity.
  • При импорте таких файлов в Unity скорость состояния аниматора (Animator State Speed) должна оставаться равной 1, при этом анимация будет проигрываться с уже скорректированной скоростью.

Пример данных

Текстовый файл имеет формат:
НазваниеАнимации1: 1.2
НазваниеАнимации2: 0.7

Где HitReaction1: 1.2 означает ускорение анимации «HitReaction1» в 1.2 раза, а Jab: 0.7 - замедление анимации «Jab» в 0.7 раза (или ускорение в 0.7x от оригинальной скорости).

Цель работы

Получить исправленные FBX-файлы, в которых скорость анимации изменена навсегда. Это позволит использовать их в Unity с параметром скорости аниматора по умолчанию (=1), что гарантирует корректную работу Animation Events.