Как повернуть скелет, чтобы не испортилась анимация?
Собственно, сабж.
Анимация поворачивается без проблем только вокруг оси Z (т.е. вертикальной). Вокруг других осей - она портится. Даже в studiomdl есть опция поворота модели только вокруг Z.
Сначала я думал, что это просто недоработка компилятора - лень разрабам было делать другие опции поворота. Но потом понял, что дело гораздо серьезнее и отдает совершенно явственной чертовщиной
Зачем это нужно? Ну в частности конверта анимаций мз Сталкера в хл. Дело в том, что там другой порядок вершин - не XYZ, а XZY (в коорд. пр-ве халфы). Соотв. все анимации повернуты не так, как нужно.
Казалось бы, что проще - обменять Z и Y в том же studiomdl. Да не тут то было.
Оказывается, ключевые кадры анимации хранят относительные положения костей. То есть судя по описанию формата SMD, позиция кадра анимации уже является произведением матрицы кости и матрицы кадра. Чтобы изменить координаты, нужно восстановить изначальную матрицу. Да только вот трудное дело деление, особенно матрицы на матрицу
(((
Короче говоря, если не вдаваться в детали, можно поставить вопрос иначе.
Как повернуть долбаные сталкеровские анимации на 90 градусов вокруг оси оХ, чтобы анимация при этом не "пошла вразнос"?
Собственно, сабж.
Анимация поворачивается без проблем только вокруг оси Z (т.е. вертикальной). Вокруг других осей - она портится. Даже в studiomdl есть опция поворота модели только вокруг Z.
Сначала я думал, что это просто недоработка компилятора - лень разрабам было делать другие опции поворота. Но потом понял, что дело гораздо серьезнее и отдает совершенно явственной чертовщиной
Зачем это нужно? Ну в частности конверта анимаций мз Сталкера в хл. Дело в том, что там другой порядок вершин - не XYZ, а XZY (в коорд. пр-ве халфы). Соотв. все анимации повернуты не так, как нужно.
Казалось бы, что проще - обменять Z и Y в том же studiomdl. Да не тут то было.
Короче говоря, если не вдаваться в детали, можно поставить вопрос иначе.
Как повернуть долбаные сталкеровские анимации на 90 градусов вокруг оси оХ, чтобы анимация при этом не "пошла вразнос"?