Скелетная анимация: Введение
Автор: Sergei Shaykin
Страшная сказка про мертвецов. Это первая сказка из сборника сказок про разбор скелетов по костям. Рекомендуется читать на ночь страшным хрипящим голосом, тараща глаза и лёжа в деревянном ящике, наполненным гнилыми опилками и плавно ползающей склизкой живностью, дабы прочувствовать весь смак своим нутром.
— Разве это всё может быть правдой? — изумились дети.
— Ну, это же сказка, дети!
(анекдот про сказку про девочку)
Анимация в играх.
Скелет, как иерархия трансформаций.
Скелетный расчёт.
Управление структурой объектов, при помощи скелета.
Вершинная деформация объектов.
Skinning. Деформация полигональной модели скелетом.
Анимация персонажей.
Преимущества скелетной анимации.
Эффективное использование скелетной анимации.
Заключение.
Анимация в играх.
Почти во всех играх присутствует всевозможная анимация, без которой игры немыслимы. Мы взаимодействуем с движущимися объектами, падающими на дно стакана, играем персонажами, которые могут перемещаться, двигать частями тела, приседать, прыгать, бегать, взмахивать руками и т.д. Анимация оживляет игру. Качественная анимация делает игру красивым шедевром. Понятное дело, что у разработчиков компьютерных игр возникают вопросы, как реализовать ту или иную анимацию, как её задать, как экспортировать в свой движок и как приводить весь этот мир в движение.
Игровой движок может реализовать различные типы анимации, от простой, где происходит обычное перемещение объекта из одного места в другое, до более сложной, где реализуется анимированная деформация объектов. Конечно, некоторые деформации можно очень просто сделать, например, легко реализовать сжатие объекта по какой-нибудь оси, используя матрицу масштабирования. Однако существуют более сложные деформации, в которых методы задания нуждаются в управлении отдельно взятыми вершинами. К примеру, лицевая анимация, где мимика персонажа реализуется через изменение взаимного расположение некоторых вершин, а не всего объекта.
Скелет, как иерархия трансформаций.
Иерархией объектов, можно назвать систему объектов, в которой одни объекты своим расположением в пространстве влияют на расположение других объектов. Вводится понятие родительских и дочерних объектов и взаимосвязей между ними. Нас интересуют именно взаимодействие трансформаций этих объектов. То есть, когда мы говорим о скелете, мы говорим об иерархии трансформаций; сами объекты называют костями. Другими словами, скелет можно определить как совокупность костей. Именно поэтому скелетную анимацию также называют костевой.
Многие заумные маги, неожиданно увидев перед собой мертвецки приятного скелета, быстро произносят, путаясь в словах, следующее заклинание:
Абсолютная трансформация родительской кости порождает некую координатную систему. Эта координатная система является локальной для дочерней кости. Дочерняя кость задаётся локальной трансформацией в этой системе. Поэтому изменение трансформации родительской кости влечёт влияние на абсолютную трансформацию дочерней.
Дочерняя кость, в свою очередь, может иметь свою дочернюю кость, причем не одну, относительно которой она уже является родительской. Ясно, что и родительская кость, тоже может иметь своего родителя. Родитель, который не имеет родителя, является корневым (root), а его локальная система координат является абсолютной. Например, условно в скелете двуногого за корневую кость выбрана тазовая кость.
Оторопев от такого поворота, многие скелеты, просто рассыпаются в тряске, потеряв всю целостность своих иерархий.
Ясно, что движение родительской кости порождает движение дочерней кости. Например, если вы даёте вращение шее, то голова тоже поворачивается. В этом примере родителем для головы является шея. В свою очередь спина является родителем для шеи, то есть если мы согнём спину, то шея и голова поменяют своё положение.
Скелетный расчёт.
Все кости в скелете задаются своими локальными трансформациями. Но для конечного использования нам необходимо вычислить все абсолютные трансформации. Это и есть просчёт скелета.
Трансформации в 3-х мерной графике принято задавать матрицами. Обычно это матрицы размерности 4x4 или 4x3.