Russian Qt Forum
Март 28, 2024, 15:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Синхронизация анимаций  (Прочитано 3797 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Октябрь 07, 2019, 13:14 »

Добрый день

Вот получил новую задачу, обдумываю. Пример

- есть модель насекомого, пусть таракана. Она состоит из телв (body) и 6 ног. Юзер строит какой-то путь вдоль которого таракан движется. При этом двигается как тело так и все ноги (они чайлды тела). Ноги имеют еще и собственную анимацию - гнутся в коленях и.т.п., обычно это вращения для каждого компонента ноги. И вот нужно чтобы эта анимация прокручивалась в такт движению. Т.е. чем быстрее он бежит - тем быстрее перебирает лапками, и наоборот. Встал на месте - ну и лапки замерли.

Собсно это вся постановка что я получил Улыбающийся Формально анимация - это записанные позиция и вращения с шагом по времени (по кадрам).  Все анимации известны/даны (как ведущая так и ведомые). Требуется для заданного времени t найти время ведомой (напр t1)

Спасибо
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #1 : Октябрь 07, 2019, 18:03 »

Цитировать
Т.е. чем быстрее он бежит - тем быстрее перебирает лапками, и наоборот. Встал на месте - ну и лапки замерли.
Ну и возьмите самую простую линейную зависимость: скорость перебирания лапками = k * скорость таракана) А параметр k опытным путём подобрать можно)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Октябрь 09, 2019, 05:59 »

Ну и возьмите самую простую линейную зависимость: скорость перебирания лапками = k * скорость таракана) А параметр k опытным путём подобрать можно)
И что мне потом делать с этим k? И во что вольются опытные подборки? Опять Вы как-то все запутываете Плачущий

Мои соображения: очевидно задача определена не полностью. Напр маленькому таракану потребуется 200 шагов чтобы покрыть расстояние 1 метр, а какому-то "тараканищу" (с метровыми лапами) нужно сделать всего пару шагов. Надо как-то задать "крейсерскую скорость" (v). Думаю для этого лучше предложить юзеру ввести диапазон анимации. Напр он указал с кадра 10 по кадр 20, он знает/считает что на этом интервале "нормальное движение". За это время тело передвинулось на метр, значит  "крейсерская скорость" = 0.1 (метров на кадр). Дальше все просто

- известна позиция тела на каждом кадре - значит известен и пройденный им путь S на каждом кадре. К сожалению, его придется хранить вектором и пересчитывать всякий раз когда он изменился. Просто делим его на скорость t1 = S(t) / v, это время лапок. Или все-таки можно как-то "прямым доступом" без накопления пути? (я не вижу как)

Прелесть таких задачек в том что гугл не помогает - ну в самом деле, что искать-то?  Улыбающийся  
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 22.