This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Objects
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
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
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Skinned Mesh

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

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

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

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

Примечание
  • Максимальное количество костей на поверхность 128.
  • Максимальное количество активных morph targets - 7.
  • Максимальное количество поверхностей, организованных в иерархию в Skinned Mesh, равно 32768.
  • Максимальное количество весов на одну вершину равно 4.

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

Добавление 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 ).
Последнее обновление: 24.08.2021
Build: ()