Захват, удержание и бросание с помощью Взаимодействуемых

Обзор

Mesh Interactionables — это система для настройки объектов с помощью скриптов Unity, определяющих взаимодействие с объектом или аватаром в среде выполнения. Скрипты определяют свойства объекта, с которыми можно взаимодействовать с помощью интеракторов XRI. Набор средств Сетки содержит скрипты различных типов объектов, которые можно определить. При запуске проекта он настраивает все необходимые префабы и параметры, необходимые для объектов или аватара, чтобы вести себя как определено. Если вы хотите увидеть приблизительную предварительную версию того, что будут выглядеть взаимодействующие объекты и чувствовать себя как при запуске в приложении Сетки, обязательно настройте режим воспроизведения с эмуляцией сетки. Обратите внимание, что функции IK, отображаемые в приложении Сетки, недоступны в режиме воспроизведения с эмуляцией сетки.

Компонент установки, взаимодействующий с сеткой

Чтобы сделать объект взаимодействуемым, необходимо добавить компонент установки сетки.

  1. В иерархии выберите объект.
  2. В инспекторе нажмите кнопку "Добавить компонент", а затем выберите "Настройка взаимодействия сетки".

Снимок экрана диалогового окна

Компонент добавляется и с его свойством типа объекта по умолчанию задано значение "Взаимодействие". (Типы объектов будут описаны в следующем разделе.)

Снимок экрана компонента установки сетки с типом объекта с параметром

Свойства для группы объектов, которые ведут себя одинаково, можно настроить с помощью родительского компонента установки Сетки. Свойства будут применяться ко всем дочерним элементам с жесткими телами во время выполнения путем автоматического добавления компонента "Взаимодействие сетки" к каждому дочернему объекту. Может потребоваться вручную добавить текст взаимодействия сетки для использования взаимодействия сетки с визуальным скриптом, например с событиями взаимодействия или изменением неуловимого целевого преобразования с помощью визуального скрипта.

Снимок экрана компонента

Примечания:

  • Текст, взаимодействующий с сеткой, позволяет каждому взаимодействовать независимо.

  • Жесткое тело должно быть добавлено к объекту, если вы хотите, чтобы он был включен в физику.

Типы взаимодействуемых объектов

Существует четыре типа объектов:

  • Пригодный для взаимодействия
  • Манипульируемая
  • Оборудование
  • Бросаемая

Чтобы выбрать тип объекта, выполните следующее:

  • В компоненте настройки сетки щелкните раскрывающийся список "Тип объекта" и выберите один из четырех вариантов.

Снимок экрана: параметры меню

Пригодный для взаимодействия

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

Манипульируемая

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

Снимок экрана: снимок взаимодействия сетки с кофе-горшком, управляемым.

Оборудование

Объект этого типа будет прикреплен к руке аватара. Элементы управления ПК для оснащения щелкают объект или нажимают клавишу F во время выбора объекта. Элементы управления Quest для оборудования нажимают кнопку "Захват" во время выбора объекта. Оснащенные объекты содержат параметры для целевых объектов IK для поза руки аватара, пока объект оснащен. Цели IK являются смещением от груди аватара; Это определяет, куда идет рука, пока объект удерживается или активируется.

Бросаемая

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

Снимок экрана игры с дартом схватить и прочитать, чтобы быть брошенным.

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

Создание объектов, взаимодействующих с визуальным скриптом

Если вы хотите настроить реакции на взаимодействие объекта с визуальным скриптом, можно использовать компонент "Взаимодействие сетки" внутри графа скрипта с узлом с доступным свойством, например OnHovered или OnSelected, подключен к узлу OnStateChanged. Например, следующий график скрипта включает цилиндр, пока кнопка нажимается и отключает ее при освобождении кнопки. Кнопка полностью взаимодействует, добавляя скрипт и коллидер; Вам не нужно делать ничего другого.

Снимок экрана графа скрипта с элементом

Настройки

Параметры, распространенные для Manipulables, Equippables и Throwables

Снимок экрана компонента установки сетки с свойствами, общими для всех выделенных типов объектов.

Расстояние от радиуса взаимодействия с радиусом взаимодействия, аватар может взаимодействовать с этим объектом

Параметры IK наведения указателя мыши — параметры IK, используемые при наведении указателя мыши на объект

  • Фигура положения руки: фигура поз руки, чтобы поместить руку аватара в положение при наведении указателя мыши на объект
  • Размер руки: размер поз руки от 0 до 1.
  • Включение отслеживания IK: будет ли рука аватара достигнута к объекту при наведении указателя мыши с помощью целевого объекта IK.
    • Ограничивает IK сферический: если верно, arm IK будет выполнен на сфере. Это приведет к тому, что аватарная рука не вылипает прямо.

Параметры выделения

  • Наведите указатель мыши или выбрано: следует ли выделить объект, если он выделен или выбран.

  • Механизм выделения

    • Пункт меню 1. Свойства шейдера

      • Цвет выделения: цвет для задания свойств цвета материала при выделении объекта.
      • Выделение длительности перехода: время, затравляющее выделение при переходе.
      • Выделение свойств суммы: свойства материала, чтобы задать количество выделения при выделении. Это значение с плавающей запятой.
      • Свойства цвета выделения: свойства материала, чтобы задать цвет выделения при выделении. Это значение цвета.
    • Пункт меню 2. Структура сетки: добавляет автоматический контур указанного цвета или ширины к объектам.

      • Цвет выделения: цвет контура.
      • Выделение длительности перехода: время, затраченные на выделение контура при переходе.
      • Выделение ширины контура: как толстый (в метрах) должен быть контур. Переопределяет значение extrusion в материале "Графические инструменты/стандартный".
      • Пользовательский материал структуры: материал, используемый для отрисовки структуры.
      • Пользовательский материал для записи наборов элементов: материал, используемый для записи значения в буфер набора элементов
      • Режим исключения структуры: параметр фильтрации отрисовщиков, которые вы не хотите включить в структуру.
    • Пункт меню 3. Внутреннее свечение: применяет выделение с эффектом свечения с помощью заданных свойств.

      • Цвет выделения: цвет внутреннего свечения.
      • Выделение длительности перехода: время, затравляющее внутреннее свечение при переходе
      • Настраиваемый материал выделения: переопределение параметра, относящееся к этому объекту, чтобы задать материал, используемый для свечения. Если это не задано, будет использоваться материал по умолчанию из ресурса параметров.
      • Строка исключения: если это задано, из выделения будет исключен любой игровой объект с именем, содержащим строку исключения.

Параметры, эксклюзивные для Manipulables

Снимок экрана компонента настройки сетки с отображаемыми параметрами Manipulable.

  • Режим принудительного применения: режим, используемый для принудительного выполнения объекта через пространство
    • По умолчанию: поведение MRTK по умолчанию, которое перемещает объект с помощью центра.
    • Point Spring: альтернативное поведение, которое перемещает объект путем применения силы в точке захвата (работает только для жестких тел)
  • Поворот (доступно только для режима по умолчанию)
    • Включено: можно ли повернуть объект во время обработки. Каждую ось можно задать по отдельности.
    • Логика поворота манипуляций
      • По умолчанию: при обработке объекта он будет поворачиваться вокруг камеры и оставаться в той же ориентации относительно камеры (фактические значения преобразования будут поворачиваться).
      • Ограничение. При обработке объекта он не будет поворачивать его преобразование и не будет оставаться в той же ориентации относительно камеры.
  • Преобразование (доступно только для режима по умолчанию) =Включено: можно ли преобразовать объект при обработке. Каждую ось можно задать по отдельности.
  • Point Spring (доступно только для режима Point Spring)
    • Сила весны: сила весны, которая вытягивает объект. Чем выше значение, тем быстрее он достигнет целевой точки.
    • Коэффициент деммпинга: Сколько демортизации применяется, чтобы предотвратить колебания вокруг точки захвата.
  • Изменение целевого преобразования: позволяет пользователю переопределить преобразование по умолчанию и задать требуемое положение и поворот объекта относительно камеры или аватара во время выбора объекта. Если для этого параметра задано значение "Включено", вы получите следующие три свойства:
    • Целевое пространство:
      • Локальное пространство камеры: следует ли указывать положение и поворот в локальном пространстве камеры.
      • Локальное пространство аватара: следует ли указывать положение и поворот в локальном пространстве аватара.
    • Новая целевая позиция: новая целевая позиция (z компонент — направление, в котором находится камера или аватар)
    • Новая целевая смена: смена нового целевого объекта
  • Аватар IK
    • Фигура поза руки: фигура поза руки, чтобы поместить руку аватара в управление объектом
    • Размер руки: размер поз руки от 0 до 1.
    • Включение отслеживания IK: будет ли рука аватара достичь объекта при управлении с помощью целевого объекта IK.
      • Ограничивает IK сферический: если верно, arm IK будет выполнен на сфере. Это приведет к тому, что аватарная рука не вылипает прямо.

Параметры, к которым предоставлен общий доступ с помощью Equippables и Throwables

Снимок экрана компонента установки сетки с параметрами, общими для Выделенных объектов и бросаемых объектов.

  • Смещение взаимодействия: положение и смещение поворота относительно руки аватара для размещения объекта.
  • Экипировка целевой позы
    • Позиция: расстояние от груди аватара, чтобы поместить руку, когда элемент оснащен.
    • Поворот: сумма поворота запястья при оснащении элемента.
  • Удерживаемая рука поз:
    • Фигура поза руки: это раскрывающийся список, который предоставляет диапазон фигур поза руки, чтобы положить руку аватара в то время, когда он оснащен. Вы также можете выбрать нет.
    • Размер руки: размер поз руки от 0 до 1.

Параметры, эксклюзивные для Equippables

Снимок экрана компонента установки сетки с отображаемыми параметрами Equippable.

  • Активация конфигурации
    • Тип активации: если задать элемент как активный. Не удается активировать вызываемые объекты и всегда будет иметь активированный тип, равный ни одному.
      • Нет: этот элемент не может быть активирован.
      • Переключатель: этот элемент переключается между активным или неактивным каждый раз, когда элемент управления активации щелкается.
      • Один: этот элемент активируется при щелчке элемента управления активации, а затем автоматически деактивирован после достижения последней целевой позиции.
    • Активация целевых поз: список целевых поз, используемых для размещения руки аватара при активации элемента. Каждая поза состоит из четырех свойств: положение, поворот, время интерполяции и кривая анимации. Положение и смещение поворота относительно груди аватара. Аватар будет интерполироваться с помощью кривой анимации из предыдущей позы к текущей последовательно вниз по списку в течение времени, определенного во время интерполяции, оставаясь в окончательной позе до деактивации. При деактивации позу аватара будет перемещаться назад по списку.

Параметры, эксклюзивные для throwables

Снимок экрана компонента установки сетки, взаимодействующего с ними, с отображаемыми параметрами.

Конфигурация цели:

  • Расширение руки на цель — сумма для расширения руки, когда в режиме цели.
  • Поза цели:
    • Фигура поза руки: фигура поза руки, чтобы положить руку аватара в прицеливание.
    • Размер руки: размер поз руки от 0 до 1.
  • Поворот рукой цели: поворот руки во время цели
  • Бросать позу руки:
    • Фигура поза руки: фигура поза руки, чтобы положить руку аватара в момент освобождения броска
    • Размер руки: размер поз руки от 0 до 1.
  • Vr Min Throw Скорость: минимальная скорость, применяемая к объекту при возникновении на Quest.
  • Vr Max Throw Скорость: максимальная скорость применения к объекту при возникновении в Quest. Это значение скорости, используемое на компьютере. На quest скорость будет масштабирована на основе физического движения руки пользователя.

В Quest скорость, применяемая при создании объекта, будет масштабироваться между минимальными и максимальными значениями, используя реальную скорость движения руки пользователя.

  • Параметры 2D
    • Скорость 2D-броска: скорость применения к объекту при возникновении на компьютере.
    • Смещение направления: направление смещения, применяемое к объекту при его создании на компьютере.
  • Бросать целевые позы: список целевых поз, используемых для размещения руки аватара при создании элемента. Положение и смещение поворота относительно положения руки аватара при инициировании броска. Аватар будет интерполироваться с помощью кривой анимации из предыдущей позы к текущей последовательно вниз по списку в течение времени, определенного во время интерполяции. Объект будет освобожден, и поза руки броска будет использоваться во втором до последнего целевого объекта.

Визуальное скриптирование

Для всех взаимодействуемых тел:

  • Свойства
    • IsHovered (только для чтения) — указывает, наведите ли ваш локальный аватар на объект.
    • IsSelected (только для чтения) — выбирает ли какой-либо аватар. При запуске в MeshBrowser это будет в сети.
    • IsSelectedLocally — указывает, выбирает ли локальный аватар.
    • IsMine (только для чтения) — значение для последнего аватара для выбора или оснащения объекта.

Для комплектных компонентов:

  • Свойства
    • EquippedAt (только для чтения) — где этот объект оснащен : None, DefaultHand, RightHand, LeftHand. При запуске в MeshBrowser это будет в сети.
    • EquipTime (только для чтения) — то время, когда этот объект был оснащен. При запуске в MeshBrowser это будет в сети.
    • IsActivated (только для чтения) — если этот объект находится в активированном состоянии. Допустимо только для объектов, которые не являются бросаемыми. При запуске в MeshBrowser это будет в сети.
    • IsAiming (только для чтения) — если локальный аватар находится в состоянии цели при удержании этого объекта. Допустимо только для бросаемых.
    • IsThrowing (только для чтения) — если локальный аватар активно создает объект. Допустимо только для бросаемых.
    • IsEquipped (только для чтения) (только для чтения) — если этот объект в настоящее время оснащен аватаром. При запуске в MeshBrowser это будет в сети.
    • IsThrowable — если этот объект можно вызвать.
    • ThrowVelocity — скорость создания объекта при его освобождении.

Для манипульируемых изменений целевой позиции:

  • Целевая позиция (только для чтения): целевая позиция тела при использовании режима принудительной силы по умолчанию в свойствах взаимодействия сетки
  • Поворот целевого объекта (только для чтения): целевой поворот тела при использовании режима принудительной силы по умолчанию в свойствах взаимодействия сетки
  • Положение удара Луча (только для чтения): положение отбрасываемого удара луча взаимодействия на теле
  • Поворот луча (только для чтения): поворот взаимодействия вокруг направления луча
  • Измененная целевая позиция (чтение и запись): используется для задания новой целевой позиции визуальным скриптом. Это переопределит целевую позицию по умолчанию. Рекомендуется переопределить это свойство:
    • Использование изменения состояния целевой позиции. В этом случае визуальный скрипт будет запускать поток только при изменении взаимодействия и новой позиции.
    • Использование в конце обновления. Если необходимо изменить целевое преобразование в каждом кадре, выполните его в конце обновления, чтобы новое целевое преобразование было доступно сразу в следующем кадре.
  • Измененная целевая смена (чтение и запись): используется для задания нового целевого поворота визуальным скриптом. Это переопределит целевую позицию по умолчанию.

Настройки

Изменение с помощью визуального скрипта. Это позволяет изменять целевое преобразование для неупуляемых тел с помощью визуального скрипта. Изменение с помощью визуального скрипта

Следующие шаги