Соседний тред про методы глобальной оптимизации сильно помог мне. Реализовал уже с десяток методов, каждый со своими сильными и слабыми сторонами. Также расширил сам алгоритм генерирования анимации
1) Теперь анимации можно блендить, причём не просто так, а генерируя для них анимацию-переход. То есть если робад умеет хорошо бегать вправо и влево, то он может сгенерировать тем же способом себе переходную анимацию - как максимально эффективно перейти от бега вправо к бегу влево. Выглядит неплохо.
2) Теперь анимации могут на лету адаптивно подстраиваться. Я считаю, это - существенный момент, так как раньше анимация генерилась в оффлайне раз и навсегда и если робад, например, запнулся, он бы упал и начал беспомощно дрыгать ножонками. Теперь он в процессе бега постоянно адаптивно подстраивает своё оптимальное решение под внешние условия. Адаптивность работает быстро, но не очень-то реалтайм. Фпс с адаптивным пересчётом - около 15, поэтому видео пока не пишу.
Но вообще с последними нововведениями подход выглядит достаточно солидно. Можно будет опробовать на реальном роботе, у друзей железки есть.
Suslik
Очень круто процедурная анимация реализована у товарища vap-а http://www.gamedev.ru/projects/forum/?id=132248
Я в курсе. Если целью стоит, чтобы в игре была круто выглядящая анимация, то, наверное, его путь - оптимальный. У меня же задача больше исследовательская, целью которой стоит сделать эту анимацию максимально честно, чтобы её можно было применять и на реальных роботах. Его способ с явно заданным движением ступней ирл, очевидно, неприменим.
Снова вернулся ктобывыдумали?! Волшебный кролик мой адский ходильщик.
Сбылась мечта идиота, я сделал управление этим чудом

Практика показала, что просто соединять различные сгенерённые анимации дополнительными переходными анимациями не достаточно. При таком подходе накапливается ошибка, которая в конце концов приводит к тому, что реальное положение вещей сильно расходится с запланированным и робад спотыкается. Тогда я добавил адаптацию решения на лету. Подтормаживания, которые можно заметить в видео выше - это и есть периоды, когда работает runtime адаптация. Она особенно актуальна именно во время переключений от одного действия к другому, поэтому я запускаю её в этим периоды на полсекунды.

Адаптация работает достаточно сильно даже для того, чтобы сгенерить управляющие импульсы, которые могут поднять упавшего робота. Решение также генерится в рантайме.
В принципе, написанное меня уже устраивает, но могу выделить пару пунктов, на которые ещё при случае обращу внимание. Сейчас процесс адаптации я запускаю руками(кнопка специальная), тогда, когда считаю нужным - неплохо бы этот процесс автоматизировать. Но, как нетрудно заметить, сейчас адаптация занимает около 100мс(фпс падает до 10 где-то). Если бы удалось ускорить это дело раза в три, то можно было бы вообще непрерывно гонять процесс адаптации, клёво же.
Fxd: и вот я добавил полностью адаптивное движение. Вся анимация генерится и адаптируется на лету. Работает круто. Видео снять не могу, так как адаптацию делаю каждый второй шаг физики, плюс фрапс снимает на 30фпс, отсюда всплывают серьёзные тормоза при записи видео.
Suslik
Fxd: и вот я добавил полностью адаптивное движение. Вся анимация генерится и адаптируется на лету. Работает круто. Видео снять не могу, так как адаптацию делаю каждый второй шаг физики, плюс фрапс снимает на 30фпс, отсюда всплывают серьёзные тормоза при записи видео.
Запиши нажатия клавиши в файл, а затем просто проиграй эти нажатия со скоростью 15FPS и запиши на видео. Ну и потом не забудь в каком-нибудь VirtualDub ускорь видео до нормальной скорости. ну пожалуйста :)
Тема в архиве.