В производственных средах аниматоры используют специализированные инструменты, такие как Autodesk 3DS Max, для создания ключевых кадров анимации 3D-моделей. Для каждой анимации для каждой модели аниматор создает несколько поз для модели, называемых ключевыми кадрами , которые затем экспортируются в формат данных игры.
Затем игра загружает эти ключевые кадры, и для анимации модели в определенное время она выбирает два ближайших ключевых кадра и интерполирует между ними, чтобы обеспечить плавную анимацию даже с небольшим количеством ключевых кадров.
Анимированные модели обычно строятся с иерархией костей. Существует корневая кость, которая контролирует расположение и ориентацию модели в игровом мире. Все остальные кости определяются относительно некоторой родительской кости для создания дерева. Каждая вершина модели привязана к конкретной кости, поэтому модель можно контролировать с помощью гораздо меньшего числа параметров: относительных положений, ориентаций и масштабов каждой кости.
Сглаживание - это техника, используемая для улучшения качества анимации. При гладком скининге вершина не привязывается только к одной кости, но она может быть привязана к нескольким костям (обычно устанавливается жесткий предел, например 4; вершинам редко требуется больше 3) с соответствующими весами. Это усложняет работу аниматора, поскольку ему приходится выполнять гораздо больше работы с вершинами рядом с суставами, но в результате получается гораздо более плавная анимация с меньшим искажением вокруг суставов.
В качестве альтернативы, некоторые игры используют процедурную анимацию , в результате чего данные анимации создаются во время выполнения. Положение и ориентация кости вычисляются согласно некоторому алгоритму, такому как обратная кинематика или физика Рэгдолла . Конечно, есть и другие варианты, но они должны быть закодированы программистами.
Вместо процедурной анимации костей и использования прямой кинематики для определения местоположения всех вершин модели, другой вариант - просто процедурно генерировать положение каждой вершины отдельно. Это позволяет создавать более сложные анимации, которые не связаны иерархиями костей, но, конечно, это гораздо сложнее и намного сложнее делать хорошо.