Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Базовий XR Locomotion
Для базового пересування ми продовжуватимемо використовувати нашу бібліотеку інструментів Godot XR. Бібліотека містить як основні функції руху, так і більш розширені функції.
Додаємо тіло гравця
Перший крок, який нам потрібно зробити, це додати допоміжний вузол до нашого вузла XROrigin3D. Оскільки XR підтримує відстеження масштабу приміщення, ви не можете просто додати налаштування XR до вузла CharacterBody3D і очікувати, що все працюватиме. Ви зіткнетеся з проблемами, коли користувач пересувається своїм фізичним простором і більше не стоїть у центрі своєї кімнати. Godot XR Tools вбудовує необхідну логіку в допоміжний вузол під назвою PlayerBody.
Виберіть вузол XROrigin3D і натисніть кнопку , щоб додати дочірню сцену. Виберіть addons/godot-xr-tools/player/player_body.tscn і додайте цей вузол.
Додавання поверху
Цей вузол керує рухом вашого персонажа в грі та негайно реагує на гравітацію. Отже, щоб запобігти нескінченному падінню нашого гравця, ми швидко додамо підлогу до нашої сцени.
Почнемо з додавання вузла StaticBody3D до нашого кореневого вузла та перейменуємо його на Floor. Додамо вузол MeshInstance3D як дочірній вузол для нашого Floor. Потім створимо новий PlaneMesh як його сітку. Наразі ми встановлюємо розмір сітки на 100 x 100 метрів. Далі ми додаємо вузол CollisionShape3D як дочірній вузол для нашого Floor. Потім створимо BoxShape як нашу фігуру. Ми встановлюємо розмір цієї фігури прямокутника на 100 x 1 x 100 метрів. Нам також потрібно змістити нашу фігуру зіткнення вниз на 0,5 метра, щоб верх нашого прямокутника був на одному рівні з підлогою.
Щоб було легше побачити, що ми насправді рухаємося по нашому світу, білої підлоги тут не буде. Створіть текстуру за допомогою чудового безкоштовного генератора текстур Wahooneys. Після створення текстури додайте її до свого проєкту. Потім створіть новий матеріал для вузла MeshInstance3D, додайте свою текстуру як альбедо та увімкніть Triplaner у розділі UV1 у властивостях матеріалу.
Прямий рух
Ми збираємося почати додавати базові прямі рухи до нашої установки. Це дозволяє користувачеві переміщатися віртуальним світом за допомогою джойстика.
Примітка
Важливо зауважити, що пересування віртуальним світом, коли гравець стоїть на місці в реальному світі, може викликати нудоту, особливо у гравців, які тільки починають знайомитися з 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.