Пишу скрипт для импорта скелета из неизвестного формата(ну т.е. формат игровой, а информации по нему тю-тю). В общем, блок с костями найти не проблема была, да и вытащить его тоже.
Итак, скелет вытащен, иерархия костей верная, теперь его осталось только развернуть.
Каждый сустав имеет 4 вектора: 3 единичных и 1 произвольный.
последний - координаты относительно родителя
а первые 3 стало быть определяются ориентацию
Что первое в голову пришло, так это matrix3, собственно так и сделал: определил вектора как матрицу, а затем представил ее как угол, на который и поворачивал суставы
Скелет на удивление развернулся верно, и вот все бы ничего, но.. наполовину, остальная - куда-то не в ту сторону, вернее вообще не по той оси свернула
Обновление сообщения автором
20.01.2014 в 21:32
Проблема в том, что суставы определяются матрицами, но для определения симметричных костей(руки, ноги), матрица не переворачивается, а отражается одна из осей. Получается, что оси расположены не в обычном порядке, и вот из-за этого угол матрицы определяется коряво... в итоге: половина нормально повернута, а половина - в разные стороны
Итак, скелет вытащен, иерархия костей верная, теперь его осталось только развернуть.
Каждый сустав имеет 4 вектора: 3 единичных и 1 произвольный.
последний - координаты относительно родителя
а первые 3 стало быть определяются ориентацию
Что первое в голову пришло, так это matrix3, собственно так и сделал: определил вектора как матрицу, а затем представил ее как угол, на который и поворачивал суставы
Скелет на удивление развернулся верно, и вот все бы ничего, но.. наполовину, остальная - куда-то не в ту сторону, вернее вообще не по той оси свернула
Обновление сообщения автором
20.01.2014 в 21:32
Проблема в том, что суставы определяются матрицами, но для определения симметричных костей(руки, ноги), матрица не переворачивается, а отражается одна из осей. Получается, что оси расположены не в обычном порядке, и вот из-за этого угол матрицы определяется коряво... в итоге: половина нормально повернута, а половина - в разные стороны