Skinned Mesh
Skinned Mesh - это объект, который может содержать как геометрию меша, так и данные анимации. Обычно он используется для рендеринга персонажей с анимацией на основе костей или целевой анимацией морфинга (также известной как blend shapes).
Данные анимации и геометрия меша могут храниться в одном файле .mesh или в отдельных файлах .mesh и .anim. Отдельные файлы обычно используются для сложных объектов с несколькими анимациями (например, персонажей), один файл обычно используется для простых объектов (например, дверей лифта).
Skinned Mesh создается в сторонних графических программах (таких как 3ds Max, Maya и т.д.)
Большинство операций со Skinned Mesh выполняется через код, но вы можете сделать некоторые из них через UnigineEditor:
- Добавление Skinned Mesh.
- Загрузка Skinned Mesh и анимация.
- Настройка параметров анимации.
В UNIGINE установлены следующие ограничения для мешей:
Максимальное количество вершин на меш | 4 294 967 295 |
Максимальное количество поверхностей на меш | 32 768 |
Максимальное количество весов на вершину | 4 |
Смотрите также#
- Статья Добавление morph targets, чтобы узнать, как добавлять morph targets в Unigine
- Статья Формат файла сетки, чтобы узнать больше о форматах .mesh и .anim
- Пример Animation в наборе примеров C# Component Samples
- 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 во время выполнения.
Управление Morph Targets#
Для мешей, которые содержат morph targets, во вкладке Parameters доступен список Morph Targets Preview. Этот набор параметров в Редакторе позволяет визуализировать вид модели с примененными к ней morph target. Фактическое применение morph target и их весов осуществляется через код.
Для каждого target есть ползунок, позволяющий настроить его вес — степень влияния morph target на окончательный вид модели.
Basis представляет собой исходное положение всех вершин меша, и его ползунок показан для справки.