Наконец-то! Починил скелетную анимацию в своём движке

Удалось реализовать в Force Tech скелетную анимацию с корректным распределением весов вершин между костями! Теперь модели выглядят менее угловатыми, а изгибы тел - аккуратными.

Слева на видео изображена анимированная модель до внесения правок, справа - после.

Как писал ранее, пришлось прикрутить к движку библиотеку загрузки моделей Assimp, чтобы подсмотреть, как скелетная анимация реализуется в других проектах. Оказалось, что я изначально неправильно воспринимал сущность костей, как что-то самостоятельное, что может быть отрисовано отдельно, и вершины располагал в пространстве координат самих костей. Это было неправильно. Кости - это вспомогательная сущность, которая дополняет информацию об объекте и никак не влияет на хранение координат вершин. Отсюда - несколько иной подход к расчету их значений при анимации: координаты вершин всегда должны находиться в координатном пространстве объекта, отсчитываться от начала его системы координат.

Но надо сказать, что меня запутал формат хранения данных оригинальных игр Thief 1 / 2 и System Shock 2, чьи модели я рисую в своём движке. Именно там вершины хранятся в координатном пространстве костей, и я, по незнанию, взял за основу именно такой подход. Но, слава Богу, теперь разобрался и всё стало хорошо! :D

Наконец-то! Починил скелетную анимацию в своём движке

Не повторяйте чужих ошибок! Прежде чем что-то реализовывать, сверьтесь с авторитетными источниками информации. ;)

Что касается библиотеки Assimp - пока не решил, оставлять её в проекте или нет. Однозначно, нужно будет повозиться и попробовать сократить её в размерах, потому что в скомпилированном виде он превышает 180 Мегабайт! Для гита это крутовато...

P.S. Да, в прошлый раз, в комментариях, мне подсказали, что помимо моего, уже существует движок с названием Force Engine. Поэтому я решил идти до конца по пути вдохновения работами одной известной компании ;) и переименовать свой движок в Force Tech!

Подписывайтесь, чтобы не пропускать новости проекта!

100
35 комментариев