Я пытаюсь воспроизвести анимацию в написанной мной программе DirectX.Я использовал FBX SDK, чтобы получить данные Mesh.
У меня работает анимация.Это очень простая Idle Animation, и она отлично работает.У меня есть другая анимация с той же сеткой, но сетка действительно выглядит странно.
Я прикреплю картинки обеих анимаций.Анимация, которая не работает, является более сложной анимацией, чем неработающая анимация.Я рассчитываю свою позицию вершины для очищенной сетки, посылая массив «отложенных» матриц (каждая матрица в массиве для каждого соединения в сетке), а также другой массив матриц для соединений в позе связывания.,Матрицы позы связывания являются инвертированными.
В моем вершинном шейдере я умножаю положение вершины на матрицу перевернутой позы связывания, а затем умножаю матрицу "lerped" (т.е. матрицу, которую я вычисляю для соединения для перехода между ключевыми кадрами).) весом, чтобы получить новую позицию.
(Кроме того, нет ничего плохого в сетке)
Я не уверен, где я иду не так.Если я пропустил какие-либо детали, пожалуйста, дайте мне знать.
Редактировать: При дальнейшем осмотре я думаю, что другая анимация также не корректна, но так получилось, что она имеет минимальное движение и поэтому выглядит правильно.
Хорошо:
Плохо: