Эластичная система — MRTK2

Elastic System

MRTK поставляется с эластичной системой моделирования, которая включает широкий спектр расширяемых и гибких подклассов, предлагая привязки для 4-мерных кватернионных источников, 3-мерных весен и простых линейных спринговых систем.

В настоящее время следующие компоненты MRTK, поддерживающие диспетчер эластичных баз данных , могут использовать функции эластичных баз данных:

Диспетчер эластичных баз данных

Elastic System2

Диспетчер эластичных баз данных передает преобразования и передает их в систему эластичных баз данных.

Включение эластичных баз данных для пользовательских компонентов можно выполнить двумя шагами:

  1. Вызов метода Initialize при запуске манипуляции, обновление системы с текущим преобразованием узла.
  2. Запрос ApplyHostTransform при каждом вычислении эластичных баз данных при обновленном целевом преобразовании.

Обратите внимание, что эластичные модули будут продолжать имитироваться после завершения манипуляции (через цикл обновления диспетчера эластичных баз данных). Чтобы заблокировать поведение, автоматическое обновление elastics EnableElasticsUpdate может иметь значение false.

По умолчанию компонент диспетчера эластичных эластичных баз данных при добавлении в игровой объект не будет включать эластичные элементы для любого типа преобразований. Поле Manipulation types using elastic feedback должно быть включено для определенных типов преобразования, чтобы создать конфигурацию и экстенты эластичных баз данных для выбранного типа.

Конфигурации эластичных баз данных

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

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

Диспетчер эластичных баз данных предлагает параметры объектов конфигурации для следующих типов преобразования, каждый из которых представлен объектом эластичной конфигурации:

  • Эластичная эластичная
  • Поворот эластичной эласти
  • Масштабирование эластичных баз данных

Объект эластичной конфигурации

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

  • Масса: масса смоделированного элемента осциллятора.
  • HandK: ручная весовая константа.
  • EndK: константа конца весны.
  • SnapK: константа весны точки привязки.
  • Перетаскивание: коэффициент перетаскивания и демпфера, пропорциональный скорости.

Экстенты эластичных баз данных

Параметры экстентов эластичных баз данных зависят от типа манипуляции. Преобразование и масштабирование представлены эластичными экстентами тома , а поворот представлен эластичным экстентом кватерниона.

Экстент эластичных томов

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

Elastic Volume Stretch Bounds

  • StretchBounds: представляет нижние границы эластичного пространства.
  • UseBounds: следует ли соблюдать границы растяжения системой. Если значение равно true, то при текущей итерации целевой позиции за пределами границ растяжения будет применена конечная сила.
  • SnapPoints: точки внутри пространства, к которому система будет прикреплена.
  • RepeatSnapPoints: повторяет точки привязки к бесконечности. Существующие точки прикрепления будут служить модулем, где фактические точки прикрепления сопоставляются с ближайшими целыми числами, кратными для каждой точки привязки.
  • SnapRadius: расстояние, с которого точки прикрепления начинают заставлять весну.

Elastic Volume Snap Grid

Эластичная экстентность кватерниона

Экстенты кватерниона определяют четырехмерное пространство поворота, в котором влажный гармоничный осциллятор свободен для поворота.

Elastic Rotation Example

  • SnapPoints: эйлер углов, к которым система будет привязывать.
  • RepeatSnapPoints: повторяет точки прикрепления. Существующие точки прикрепления будут служить модулем, где фактические точки прикрепления сопоставляются с ближайшими целыми числами, кратными для каждой точки привязки.
  • SnapRadius: угол дуги, с которого точки прикрепления начинают заставлять весну в градусах эйлеров.

Пример сцены elastics

Примеры конфигураций эластичных баз данных можно найти в сцене ElasticSystemExample .

Elastics Example Scene