Скачать VR Jester API — Minecraft Моды — MetaMods

VR Jester API

Активный

Установок

20

Последнее обновление

1 год назад

Версии

1.16.5 — 1.20.2
Клиент
Fabric
Forge
Quilt
Игровые механики
Библиотеки
Утилиты

VR Jester API - API для распознавания жестов в Minecraft VR

Играете в Vivecraft или QuestCraft и любите моды? Хотите, чтобы моды лучше работали в виртуальной реальности? Это решение предназначено как для разработчиков, так и для игроков!

Данный API позволяет разработчикам модов для Minecraft легко добавлять поддержку жестов для совместимости с VR. Создавайте любые пользовательские жесты, которые можно привязать к любым клавишам и запускать события. Больше не нужно привязывать кнопки контроллера к клавишам клавиатуры - с этим API ваше тело становится контроллером.

Демонстрации:

Установка:

  1. Установите необходимые зависимости. Мод Questbind требуется только для использования с QuestCraft.
  2. Скачайте мод VR Jester API и поместите его в папку mods.
  3. Запустите Minecraft. Необходимые конфигурационные файлы создадутся автоматически при инициализации.

Использование:

  1. В Minecraft VR привяжите одну из кнопок контроллера к "Gesture Listener Trigger". Рекомендуется использовать кнопку захвата. Для Vivecraft это делается через меню привязок контроллера Steam VR, для QuestCraft - через QuestBind.

  2. Есть два способа создания жестов:

    • Использование команды /gesture
    • Прямое редактирование файла config/gesture_store.json, где хранятся жесты.

    Пример хранилища жестов:

"GESTURE 1": {
 "RIGHT_CONTROLLER|LEFT_CONTROLLER": [
   {
     "vrDevice": "RIGHT_CONTROLLER|LEFT_CONTROLLER",
     "movement": "forward",
     "elapsedTime": 0,
     "speed": 0.0,
     "direction": {
       "x": 0.0,
       "y": 0.0,
       "z": 0.0
     },
     "devicesInProximity": {}
   }
 ]
},
...
  1. После создания жестов вы можете привязать их к клавишам в файле config/VRJesterAPI.cfg, создавая объекты ключ-значение в поле "GESTURE_KEY_MAPPINGS". Имена привязок клавиш можно найти в файле .minecraft/options.txt. Поле "KEY_ACTION" определяет, будет ли распознанный жест вызывать однократное нажатие (click) или удержание (hold) клавиши. Удержание срабатывает, когда вы сохраняете позу жеста после его распознавания.
"GESTURE_KEY_MAPPINGS": {
"GESTURE 1": {
   "KEY_MAPPING": "examplemod.key.ability_1",
   "KEY_ACTION": "click"
},
"GESTURE 2": {
   "KEY_MAPPING": "key.hotbar.2,key.sneak",
   "KEY_ACTION": "hold"
},
"GESTURE 3": {
   "KEY_MAPPING": "key.keyboard.j",
   "KEY_ACTION": "click"
}
}

Информация:

  • Каждый объект в квадратных скобках [ ] представляет собой часть жеста. Вы можете добавлять несколько таких объектов GestureComponent. Этот API распознает жесты любой сложности! Однако чем сложнее жест, тем труднее его правильно выполнить для совпадения с сохраненным жестом.

  • Доступные значения для "movement": forward, back, left, right, up, down. Направление движения относительно вашего направления взгляда в момент нажатия Jester Trigger, который запускает распознаватель жестов. Простой пример: удар в том же направлении, куда вы смотрите, будет распознан как "forward".

  • Доступные значения для "vrDevice": RIGHT_CONTROLLER, LEFT_CONTROLLER, HEAD_MOUNTED_DISPLAY. Для распознавания жеста на нескольких VR-устройствах используйте логическое ИЛИ через символ |, например: RIGHT_CONTROLLER|LEFT_CONTROLLER|HEAD_MOUNTED_DISPLAY.

  • Поле "elapsedTime" указывается в миллисекундах. Значение 2000 означает, что эта часть жеста длится 2 секунды, что подходит для заряжаемых движений.

  • Поле "speed" представляет скорость GestureComponent в виде числа с плавающей точкой. Для распознавания скорости удара подходящим порогом будет 1500.0-2000.0 - экспериментируйте с значениями.

  • Поле "direction" принимает значения x,y,z с плавающей точкой, создающие нормализованный 3D-вектор. Например, {0.0, 1.0, 0.0} распознает, когда рука игрока направлена вверх. Есть определенный порог, поэтому точное совпадение не требуется.

  • Поле "devicesInProximity" форматируется так:

"devicesInProximity": {
    "LEFT_CONTROLLER": 20
}

Это означает, что vrDevice этого GestureComponent должен находиться вблизи левого контроллера в течение 20 тиков.

  • Для обработки событий, вызванных распознанным жестом, подпишитесь на шину событий (Forge) или зарегистрируйтесь в интерфейсе обратного вызова событий (Fabric).

Forge:

@SubscribeEvent
public void onGestureEvent(GestureEvent event) {
    // код обработки жеста здесь -> event.getGestureName()
}

Fabric:

public static void init() {
    GestureEventCallback.EVENT.register((gestureEvent) -> {
        // код обработки жеста здесь -> gestureEvent.getGestureName()
    });
}

Планы развития:

В будущем планируется добавить непрерывное распознавание жестов, больше настроек конфигурации и оптимизации.

Обновление от 27.03.2025 - Работа над модом продолжается, несмотря на временное отсутствие обновлений. Разработчик занят другими проектами, но планирует вернуться к этому моду.

Участники проекта
Caliburs

Caliburs

Разработчик

Создан: 4 дек 2023

ID: 7405