This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Skinned Mesh

  Skinned Mesh - это объект, который может содержать как геометрию меша, так и данные анимации. Обычно он используется для рендеринга персонажей с анимацией на основе костей или целевой анимацией морфинга (также известной как blend shapes).

Данные анимации и геометрия меша могут храниться в одном файле .mesh или в отдельных файлах .mesh и .anim. Отдельные файлы обычно используются для сложных объектов с несколькими анимациями (например, персонажей), один файл обычно используется для простых объектов (например, дверей лифта).

Skinned Mesh создается в сторонних графических программах (таких как 3ds Max, Maya и т.д.)

Большинство операций со Skinned Mesh выполняется через код, но вы можете сделать некоторые из них через UnigineEditor:

В UNIGINE установлены следующие ограничения для мешей:

Максимальное количество вершин на меш 4 294 967 295
Максимальное количество поверхностей на меш 32 768
Максимальное количество весов на вершину 4
Максимальное количество костей на поверхность 128
Максимальное количество активных morph targets на поверхность 7 для DX11 и OpenGL; неограниченное количество для DX12 и Vulkan (по умолчанию задано 100)

Смотрите также#

Добавление Skinned Mesh#

Чтобы добавить Skinned Mesh в сцену в UnigineEditor, сделайте следующее:

  1. Запустите UnigineEditor.
  2. В строке меню нажмите Create → Mesh → Skinned .

  3. В открывшемся диалоговом окне выберите путь к файлу .mesh.
  4. Разместите объект где-нибудь в мире.
Примечание
Вы можете изменить путь к мешу в любое время на вкладке MeshSkinned.

Загрузка Skinned Mesh и анимации#

Чтобы заменить загруженный Skinned Mesh на новый, сделайте следующее:

  1. Выберите меш в окне World Hierarchy и перейдите на вкладку Node окна Parameters.
  2. В разделе Mesh Skinned выберите путь к новому файлу .mesh в поле Mesh.

Чтобы добавить анимацию или заменить существующую на новую в UnigineEditor, выполните следующие действия:

  1. Выберите меш в окне World Hierarchy и перейдите на вкладку Node окна Parameters.
  2. В разделе Mesh Skinned выберите путь к новому файлу .anim в поле Preview Animation.

Настройка анимации#

Вы можете выполнять следующие операции с анимацией Skinned Mesh в UnigineEditor:

Вкладка Mesh Skinned
Loop Воспроизвести анимацию в цикле.
Quaternion Включает и выключает режим скиннинга на основе двойного кватерниона. Модель на основе двойного кватерниона - это точный, эффективный с вычислительной точки зрения, надежный и гибкий метод представления жестких преобразований, который используется в скелетной анимации.
Controlled Установите флаг, определяющий, что анимация сетки управляется родительской сеткой со скелетом.
Time Установите время анимации в кадрах анимации. Отсчет времени начинается с нулевого кадра. Если установлено время между кадрами, анимация смешивается. Если время установлено вне диапазона кадров анимации, анимация зацикливается.
Playback Speed Множитель времени воспроизведения анимации.
Preview Animation Путь к файлу с анимацией (.anim) для воспроизведения.
Play Запустить воспроизведение анимации.
Stop Остановить воспроизведение анимации.

Настройка костей#

Иерархия костей вашего объекта Skinned Mesh отображается в разделе Bones окна Parameters.

Каждая кость Skinned Mesh может быть привязана к отдельной ноде для управления ее трансформациями, что дает вам большую гибкость. Например, вы можете анимировать эти нодв с помощью инструмента Tracker или включить физический контроль над костями Skinned Mesh, привязывая их к нодам, управляемым физикой.

Вкладка Mesh Skinned
Visualize Bones Включите визуализатор для костей и их базовых векторов, чтобы контролировать процесс настройки. Визуализатор отображается, даже если Skinned Mesh не выбран в иерархии World Nodes, позволяя отображать позиции костей для нескольких мешей одновременно.
Примечание
Глобальный визуализатор включается автоматически, когда вы выбираете эту опцию.
Create Dummy Hierarchy Создает для Skinned Mesh иерархию из Node Dummy , где каждая нода имеет то же имя и трансформацию, что и соответствующая кость, и привязана к нему с настройками по умолчанию.
Примечание
Иерархию также можно создать только для выбранных костей.
Bind Node Нода, трансформация которой используется для управления трансформацией кости.
Node Transform Basis Определяет, в какой системе координат трансформации связанной ноды (World или Local) должны использоваться для перегрузки трансформаций выбранной кости.
Bone Transform Basis Определяет, какая трансформация выбранной кости должна перегружаться трансформацией ноды:
  • Мировые координаты
  • Координаты относительно объекта Skinned Mesh
  • Координаты родительской кости
Bind Mode Определяет тип смешивания трансформаций ноды и кости:
  • Override - заменить трансформацию кости трансформацией ноды.
  • Additive - трансформация ноды добавляется к текущей трансформации кости.
Position Offset Перенос - часть дополнительной матрицы трансформации применительно к трансформации ноды перед применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации ноды для основы кости.
Rotation Offset Поворот - часть дополнительной матрицы трансформации, применяемая к трансформации ноды перед применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации ноды для основы кости.
Scale Offset Масштабирование - часть дополнительной матрицы трансформации, применяемой к трансформации ноды, перед применением к трансформации кости. Этот параметр служит для дополнительной коррекции трансформации ноды для основы кости.
Reset Node Transform Сбрасывает исходную трансформацию ноды.
Reset Bone Transform Сбросить трансформацию кости. Эта кнопка используется для восстановления первоначальной трансформации кости после ее изменения с помощью связанной ноды .

Оптимизация воспроизведения анимации#

Обновление каждого кадра огромного количества объектов, расположенных далеко от камеры, которые трудно различить или наблюдать как массу, является пустой тратой ресурсов.

Чтобы улучшить производительность и избежать чрезмерной нагрузки, воспроизведение анимации может быть обновлено с уменьшенной частотой кадров . Когда игрок находится за пределами области, указанной параметром Update Distance Limit, анимация перестает обновляться и статически зависает.

Набор частот кадров позволяет вам указать, как часто следует обновлять воспроизведение анимации, когда объект виден, когда видна только тень Skinned Mesh или когда она не видна вообще.

Вкладка Parameters → раздел Periodic Update
FPS When Object Is Rendered To Viewport Значение частоты обновления для случая, когда объект отображается в области просмотра.
FPS When Only Object Shadows Are Rendered Значение частоты обновления, когда сам объект находится за пределами области просмотра, и только его тень отображается в области просмотра.
FPS When Object Is Not Rendered At All Значение частоты обновления, когда объект и его тень не отображаются в области просмотра.
Update Distance Limit Расстояние от камеры, до которого необходимо обновить объект.
Примечание
Эти значения не являются фиксированными и могут быть изменены двигателем в любое время для обеспечения наилучшей производительности.

Эта функция включена с настройками по умолчанию, обеспечивающими оптимальную производительность, и может быть настроена для каждого объекта в UnigineEditor или через API во время выполнения.

Внимание
Помните, что использование пониженной частоты кадров обновления для объекта должно быть тщательно продумано в логике вашего приложения, так как это может привести к различным проблемам с рендерингом Skinned / Dynamic Meshes (мерцание из-за несовпадения, например, в случае прикрепления ткани к Skinned Mesh ).

Управление Morph Targets#

Для мешей, которые содержат morph targets, во вкладке Parameters доступен список Morph Targets Preview. Этот набор параметров в Редакторе позволяет визуализировать вид модели с примененными к ней morph target. Фактическое применение morph target и их весов осуществляется через код.

Для каждого target есть ползунок, позволяющий настроить его вес — степень влияния morph target на окончательный вид модели.

Basis представляет собой исходное положение всех вершин меша, и его ползунок показан для справки.

Последнее обновление: 19.04.2024
Build: ()