Я пишу сценарий экспорта анимации для своей сцены, и мне нужно обнаружить только те фреймы, в которых появляются клавиши анимации для некоторых объектов сцены. Мне нужно экспортировать только часть (временной интервал) всей анимации.Получите все анимированные кадры в интервале эффективно
В настоящее время я использую код последующие
keys = #()
for o in objects do
(
join keys o.position.controller.keys
join keys o.rotation.controller.keys
join keys o.scale.controller.keys
)
собрать все ключи для всех объектов, а затем
timeValues = (for k in keys where k.time >= animationRange.start and k.time <= animationRange.end collect k.time) as array
timeValues = makeUniqueArray timeValues
для выбора интервала времени и падение дупликации.
Но проблема в том, что моя сцена содержит около 3000 кадров в общей сложности с множеством различных анимированных объектов с положением, поворотом и клавишами масштабирования. Так ключи дублируются много раз в моей коллекции «ключи» - всего около 1 000 000 ключей.
Мне нужно выбрать ключи за небольшой промежуток времени (около 50 кадров), но поскольку коллекция очень большая, потребовалось много времени (около минуты), чтобы выбрать нужные клавиши и удалить дубликаты.
Есть ли способ получить все кадры с анимационными клавишами за указанный промежуток времени более эффективно?