Skinned Mesh
Skinned Mesh - это объект, который может содержать как геометрию меша, так и данные анимации. Обычно он используется для рендеринга персонажей с анимацией на основе костей или целевой анимацией морфинга (также известной как blend shapes).
Данные анимации и геометрия меша могут храниться в одном файле .mesh или в отдельных файлах .mesh и .anim. Отдельные файлы обычно используются для сложных объектов с несколькими анимациями (например, персонажей), один файл обычно используется для простых объектов (например, дверей лифта).
Skinned Mesh создается в сторонних графических программах (таких как 3ds Max, Maya и т.д.)
Большинство операций со Skinned Mesh выполняется через код, но вы можете сделать некоторые из них через UnigineEditor:
- Добавление Skinned Mesh.
- Загрузка Skinned Mesh и анимация.
- Настройка параметров анимации.
- Максимальное количество костей на поверхность 128.
- Максимальное количество активных morph targets - 7.
- Максимальное количество поверхностей, организованных в иерархию в Skinned Mesh, равно 32768.
- Максимальное количество весов на одну вершину равно 4.
Смотрите также#
- Статья Добавление morph targets, чтобы узнать, как добавлять morph targets в Unigine
- Статья Формат файла сетки, чтобы узнать больше о форматах .mesh и .anim
- ObjectMeshSkinned класс для редактирования Skinned Mesh через API
Добавление Skinned Mesh#
Чтобы добавить Skinned Mesh в сцену в UnigineEditor, сделайте следующее:
- Запустите UnigineEditor.
- В строке меню нажмите Create → Mesh → Skinned .
- В открывшемся диалоговом окне выберите путь к файлу .mesh.
- Разместите объект где-нибудь в мире.
Загрузка Skinned Mesh и анимации#
Чтобы заменить загруженный Skinned Mesh на новый, сделайте следующее:
- Выберите меш в окне World Hierarchy и перейдите на вкладку Node окна Parameters.
- В разделе Mesh Skinned выберите путь к новому файлу .mesh в поле Mesh.
Чтобы добавить анимацию или заменить существующую на новую в UnigineEditor, выполните следующие действия:
- Выберите меш в окне World Hierarchy и перейдите на вкладку Node окна Parameters.
- В разделе Mesh Skinned выберите путь к новому файлу .anim в поле Preview Animation.
Настройка анимации#
Вы можете выполнять следующие операции с анимацией Skinned Mesh в UnigineEditor:
Loop | Воспроизвести анимацию в цикле. |
---|---|
Quaternion | Включает и выключает режим скиннинга на основе двойного кватерниона. Модель на основе двойного кватерниона - это точный, эффективный с вычислительной точки зрения, надежный и гибкий метод представления жестких преобразований, который используется в скелетной анимации. |
Controlled | Установите флаг, определяющий, что анимация сетки управляется родительской сеткой со скелетом. |
Time | Установите время анимации в кадрах анимации. Отсчет времени начинается с нулевого кадра. Если установлено время между кадрами, анимация смешивается. Если время установлено вне диапазона кадров анимации, анимация зацикливается. |
Playback Speed | Множитель времени воспроизведения анимации. |
Preview Animation | Путь к файлу с анимацией (.anim) для воспроизведения. |
Play | Запустить воспроизведение анимации. |
Stop | Остановить воспроизведение анимации. |
Настройка костей#
Иерархия костей вашего объекта Skinned Mesh отображается в разделе Bones окна Parameters.
Каждая кость Skinned Mesh может быть привязана к отдельному узлу для управления ее трансформациями, что дает вам большую гибкость. Например, вы можете анимировать эти узлы с помощью инструмента Tracker или включить физический контроль над костями Skinned Mesh, привязывая их к узлам, управляемым физикой.
Visualize Bones | Включите визуализатор для костей и их базовых векторов, чтобы контролировать процесс настройки. Визуализатор отображается, даже если Skinned Mesh не выбран в иерархии World Nodes, позволяя отображать позиции костей для нескольких мешей одновременно.
Примечание
Глобальный визуализатор включается автоматически, когда вы выбираете эту опцию. ![]() |
---|---|
Create Dummy Hierarchy | Создает для Skinned Mesh иерархию из Node Dummy , где каждый узел имеет то же имя и трансформацию, что и соответствующая кость, и привязан к нему с настройками по умолчанию. Примечание Иерархию также можно создать только для выбранных костей. |
Bind Node | Узел, трансформация которого используется для управления трансформацией кости. |
Node Transform Basis | Определяет, в какой системе координат трансформации связанного узла (World или Local) должны использоваться для перегрузки трансформаций выбранной кости. |
Bone Transform Basis | Определяет, какая трансформация выбранной кости должна перегружаться транйформацией узла:
|
Bind Mode | Определяет тип смешивания трансформаций узла и кости:
|
Position Offset | Перенос - часть дополнительной матрицы трансформации применительно к трансформации узла перед его применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации узла для основы кости. |
Rotation Offset | Поворот - часть дополнительной матрицы трансформации, применяемая к трансформации узла перед его применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации узла для основы кости. |
Scale Offset | Масштабирование - часть дополнительной матрицы трансформации, применяемой к трансформации узла, перед его применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации узла для основы кости. |
Reset Node Transform | Сбрасывает исходную трансформацию узла. |
Reset Bone Transform | Сбросить трансформацию кости. Эта кнопка используется для восстановления первоначальной трансформации кости после ее изменения с помощью связанный узел . |
Оптимизация воспроизведения анимации#
Обновление каждого кадра огромного количества объектов, расположенных далеко от камеры, которые трудно различить или наблюдать как массу, является пустой тратой ресурсов.
Чтобы улучшить производительность и избежать чрезмерной нагрузки, воспроизведение анимации может быть обновлено с уменьшенной частотой кадров . Когда игрок находится за пределами области, указанной параметром Update Distance Limit, анимация перестает обновляться и статически зависает.
Набор частот кадров позволяет вам указать, как часто следует обновлять воспроизведение анимации, когда объект виден, когда видна только тень Skinned Mesh или когда она не видна вообще.
Эта функция включена с настройками по умолчанию, обеспечивающими оптимальную производительность, и может быть настроена для каждого объекта в UnigineEditor или через API во время выполнения.