Базовий XR Locomotion
Для базового пересування ми продовжуватимемо використовувати нашу бібліотеку інструментів Godot XR. Бібліотека містить як основні функції руху, так і більш розширені функції.
Додаємо тіло гравця
Перший крок, який нам потрібно зробити, це додати допоміжний вузол до нашого вузла XROrigin3D. Оскільки XR підтримує відстеження масштабу приміщення, ви не можете просто додати налаштування XR до вузла CharacterBody3D і очікувати, що все працюватиме. Ви зіткнетеся з проблемами, коли користувач пересувається своїм фізичним простором і більше не стоїть у центрі своєї кімнати. Godot XR Tools вбудовує необхідну логіку в допоміжний вузол під назвою PlayerBody.
Виберіть вузол XROrigin3D і натисніть кнопку створити дочірню сцену, щоб додати дочірню сцену. Виберіть addons/godot-xr-tools/player/player_body.tscn і додайте цей вузол.
Додавання поверху
Цей вузол керує рухом вашого персонажа в грі та негайно реагує на гравітацію. Отже, щоб запобігти нескінченному падінню нашого гравця, ми швидко додамо підлогу до нашої сцени.
Ми починаємо з додавання вузла StaticBody3D до нашого кореневого вузла і перейменуємо його на Поверх. Ми додаємо вузол MeshInstance3D як дочірній вузол для нашого Поверху. Потім створіть новий PlaneMesh як його сітку. Наразі ми встановили розмір сітки 100 х 100 метрів. Далі ми додаємо вузол CollisionShape3D як дочірній вузол для нашого Поверху. Потім створіть BoxShape як нашу форму. Ми встановили розмір цієї форми ящика 100 x 1 x 100 метрів. Нам також потрібно перемістити нашу форму зіткнення вниз на 0,5 метра, щоб верх нашої коробки був на одному рівні з підлогою.
To make it easier to see that we're actually moving around our world, a white floor isn't going to do it. Create a texture using Wahooneys excellent free texture generator. Once you've created the texture add it to your project. Then create a new material for the MeshInstance3D node, add your texture as the albedo, and enable Triplaner under UV1 in the material properties.
Прямий рух
Ми збираємося почати додавати базові прямі рухи до нашої установки. Це дозволяє користувачеві переміщатися віртуальним світом за допомогою джойстика.
Примітка
Важливо зауважити, що пересування віртуальним світом, коли гравець стоїть на місці в реальному світі, може викликати нудоту, особливо у гравців, які тільки починають знайомитися з VR. Налаштування за замовчуванням для наших функцій руху є досить консервативними. Ми рекомендуємо вам дотримуватися цих параметрів за замовчуванням, але пропонуємо функції в грі, щоб увімкнути менш зручні налаштування для більш досвідчених користувачів, які звикли грати в ігри VR.
Ми хочемо ввімкнути це на правому контролері. Ми робимо це, додаючи підсцену до правого вузла XRController3D. Виберіть addons/godot-xr-tools/functions/movement_direct.tscn як сцену для додавання.
Ця функція додає гравцеві рух вперед і назад за допомогою джойстика на контролері правої руки. Він також має можливість додати лівий/правий стрейф, але за замовчуванням це вимкнено.
Натомість ми збираємося додати гравцеві можливість повертатися за допомогою цього джойстика. Ми додамо іншу підсцену до нашого вузла контролера, виберіть для цього addons/godot-xr-tools/functions/movement_turn.tscn.
Система повороту за замовчуванням використовує підхід миттєвого повороту. Це означає, що поворот відбувається поетапно. Це може здатися жахливим, однак це випробуваний метод боротьби з заколисуванням. Ви можете легко переключитися на режим, який пропонує плавний поворот, змінивши властивість mode у вузлі turn.
Якщо ви запустите свою гру в цей момент часу, ви побачите, що можете вільно пересуватися світом, використовуючи правий джойстик.
Телепорт
Альтернативою прямому переміщенню, яку деякі користувачі вважають більш приємною, є можливість телепортації в інше місце у вашому ігровому світі. Godot XR Tools підтримує це через функцію телепорту, і ми додамо це до нашого лівого контролера.
Додайте нову дочірню сцену до лівого вузла XRController3D, вибравши сцену addons/godot-xr-tools/functions/function_teleport.tscn.
З додаванням цієї сцени гравець зможе телепортуватися по всьому світу, натиснувши курок на лівому контролері, вказавши, куди він хоче піти, а потім відпустивши курок. Гравець також може регулювати орієнтацію за допомогою лівого джойстика контролера.
Якщо ви правильно виконали всі інструкції, ваша сцена має виглядати приблизно так:
Більш розширені функції руху
Godot XR Tools додає багато інших рухових функцій, таких як ковзання, реалізація грейферного гака, реактивний ранець, механізми скелелазіння тощо.
Більшість працює подібно до основних функцій руху, з якими ми працювали досі, просто додайте відповідну підсцену з плагіна до контролера, який його реалізує.
Ми розглянемо деякі з них більш детально пізніше в цьому підручнику, якщо потрібне додаткове налаштування (наприклад, скелелазіння), але для інших подробиць дивіться власні сторінки довідки Godot XR Tools.