VR Jester API
API распознавания жестов виртуальной реальности для Vivecraft и QuestCraft
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 19,1 тыс.
- Подписчиков на Modrinth
- 27
- версии
- 53
- Обновлён
- 4 августа 20264 авг.
- Опубликован
- в 2023
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
API распознавания жестов виртуальной реальности для Minecraft VR
Играете в Vivecraft или QuestCraft? Любите моды? Когда-нибудь хотели, чтобы моды были более совместимы с VR? Больше не ждите. Это решение как для разработчиков, так и для игроков!
Этот API позволяет разработчикам модов для Minecraft легко добавить поддержку своего мода для большей совместимости с VR. Создавайте любые пользовательские жесты, привязанные к любым клавишам, и запускайте события. Больше не нужно привязывать кнопки контроллера к клавишам клавиатуры. С этим API ваше тело — это контроллер.
Демо:
- https://imgur.com/a/UYaVFCj
- https://imgur.com/a/sYXcike
- https://i.imgur.com/kBD1TIU.mp4
- https://imgur.com/a/0fpiQ9a
- https://i.imgur.com/6xUNF6k.mp4
Установка:
- Установите необходимые моды-зависимости. Обратите внимание, что Questbind требуется только для использования QuestCraft.
- Скачайте мод VR Jester API и поместите его в папку
mods. - Запустите Minecraft. Необходимые файлы конфигурации создадутся при инициализации.
Использование:
- Находясь в 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": {} } ] }, ...- Используя команду
- После создания жестов вы можете привязать их к клавишам в
config/VRJesterAPI.cfg, создав объекты ключ-значение в поле "GESTURE_KEY_MAPPINGS". Названия привязок клавиш можно найти в.minecraft/options.txt. (Примечание: фактическая строка KeyMapping отдельной привязки клавиши в этом файле находится между key_ и двоеточием. Например: key_key.inventory:18) Поле "KEY_ACTION" определяет, вызывает ли распознанный жест одиночное нажатие клавиши или удержание клавиши. Удержание срабатывает, когда вы удерживаете жест на месте после его распознавания.
"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"
}
}Скачать: ![modrinth] ![curseforge]
Информация:
- Считайте каждый объект внутри квадратных скобок [ ] всего лишь частью жеста. Вы можете добавить несколько таких объектов 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" — это значение типа float, представляющее скорость этого GestureComponent. Приличный порог для распознавания скорости удара будет
1500.0-2000.0, и не стесняйтесь экспериментировать со значениями сколько угодно. - Поле "direction" принимает значения типа float
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) {
// gesture handler code here -> event.getGestureName()
}Fabric:
public static void init() {
GestureEventCallback.EVENT.register((gestureEvent) -> {
// gesture handler code here -> gestureEvent.getGestureName()
});
}В планах:
В будущем добавлю распознавание непрерывных жестов, больше настроек и оптимизации.
*Обновление 27.03.2025* — знаю, что давно не обновлял, но я полностью намерен вернуться к этому моду. Я работал над другими проектами. Извиняюсь за неудобства.
Частые вопросы
Как установить VR Jester API?
Установите Fabric под свою версию Minecraft, скачайте VR Jester API под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть VR Jester API?
У VR Jester API есть сборки для Minecraft 1.18.2, 1.19.2–1.19.4, 1.20.1–1.20.2, 1.21.1 ….
Нужен ли VR Jester API на сервере?
Ставится только в игру; на сервер ставить не нужно