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

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

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

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

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

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

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

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

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

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

19K19K показов
2K2K открытий
35 комментариев

Офигеть, чувак, ты крутой!
PS: было бы неплохо, если б ты в началае поста добавлял краткую инфу о том, что делаешь собственный движок, какие у него цели и особенности. А то так, если не читал предыдущих постов, приходится понимать по контексту.

Ответить

Ок, спасибо, учту! ;)

Ответить

Комментарий недоступен

Ответить

Хех! Это и есть реальная игра 2000х - Thief 2, только запущенная на моем движке. Мой проект - это как раз создание собственного движка, который во многом будет использовать те же механики, поэтому, в качестве ресурсов при разработке я использую ресурсы игр на Dark Engine - это Thief 1 / 2 и System Shock 2.

С недавних пор, вот, добавилась поддержка других моделей, но это не приоритетная цель пока.

А вообще, очень показательно, как четко читается реальная графика 2000х, а любые закосы под ретро всё-таки выдают себя какими-то упущенными деталями. У меня есть соображения на этот счёт, что раньше графику вытягивали по максимуму, опираясь на существующие на тот момент возможности, делая её максимально качественнее. Сейчас же все закосы под ретро искусственно ухудшают её, делая гротескно-некрасивой или излишне грубой. Отсюда и ощущение неестественности, возникающее при взгляде на них.

P.S. Действительно, пожалуй, пришла пора написать материал с информацией о проекте и давать ссылку на него в начале публикации... :)

Ответить

Круто!
Чувачок очень напоминает стражников из первых Thief.
Удачи с движком!
UPD: О, я угадал) прочитал коммент выше

Ответить

Это он и есть ;). Спасибо!

Ответить

Комментарий недоступен

Ответить