Руководство по физике в «Вердж3Д»

«Вердж3Д» включает в себя физический движок, наделяющий ваши 3Д-объекты свойствами из реального мира. Эта функция будет особенно полезна при создании 3Д-игр и приложений виртуальной и дополненной реальности.

В качестве физического бэкенда мы используем физический движок «Буллет» с открытым исходным кодом, веб-версия которого называется «Аммо-Джей-Эс».

Содержание

Начало работы с физикой

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

Кроме того, вы можете добавить модуль физики в уже существующее приложение. Для этого скопируйте файлы ammo.wasm.js и ammo.wasm.wasm из папки build дистрибутива в папку вашего приложения.

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

Ознакомьтесь с пазлами физики.

Общие рекомендации

Создание персонажа от первого лица

Режим персонажа от первого лица может быть удобен не только для шутеров и RPG-игр, но и для любых приложений, требующих исследования больших пространств. Это может быть визуализация архитектуры, приложения для электронного обучения и интерактивные гиды, музеи и другие культурные объекты, и даже виртуальные 3Д-рынки. Кроме того, вы можете интегрировать персонажа от первого лица в ваше ВР-приложение, сделав его гораздо более реалистичным и увлекательным!

Существует множество возможных способов реализации режима FPS, но для неопытных пользователей «Вердж3Д» мы рекомендуем вам следовать этому краткому руководству для более быстрого достижения результатов.

Создайте объект в форме капсулы, который символизирует вашего персонажа. Настройте его высоту и ширину, чтобы он выглядел более реалистично. Убедитесь, что вы правильно установили центр объекта.

В пазлах, назначьте персонажу dynamic capsule (капсулообразное) тело и отключите его вращение. Таким образом, вы позволите персонажу двигаться, но не вращаться. Также примените disable deactivation к вашей капсуле.

Поскольку персонажу нужен пол (+стены) или земля, чтобы ходить, создайте такие тела, используя соответствующие пазлы create physics body.

Следующий шаг - настройка камеры. Камере не будет назначена физика, поскольку она нужна нам только для того, чтобы быть нашими "глазами". Установите на него элементы управления First-Person, но не назначайте материал коллизии (мы будем использовать полнофункциональное обнаружение коллизий, предоставляемое физическим движком, а не базовую симуляцию пола/стен). Также, уберите галку с параметра Allow Panning , а параметр Movement Speed поставьте на ноль:

Теперь нам нужно прикрепить камеру к "голове" персонажа. Нет необходимости создавать модель головы, добавьте в сцену пустой объект под названием "Голова" и прикрепите его к верхней части модели капсулы. Таким образом, "голова" будет двигаться вместе с персонажем.

С помощью дополнительного объекта "Голова" вы можете прикреплять/откреплять камеру к персонажу. Чтобы прикрепить камеру, используйте parent и snap to object пазлы:

Чтобы открепить камеру, используйте пазл parent с пустым полем to object .

Персонаж создан! Теперь пришло время заставить его двигаться в вашей сцене. В самом простом случае нам нужно двигаться вперед, когда пользователь нажимает клавишу со стрелкой вверх. Для этого примените к персонажу вектор linear velocity, который рассчитывается на основе горизонтального направления камеры. Чтобы сделать симуляцию более достоверной, всегда применяйте векторы, используя пазл on simulation tick .

Для перемещения персонажа на мобильном устройстве вам понадобятся дополнительные элементы "контроллера". Вы можете создать их с помощью 3Д-объектов, родительских по отношению к камере или с помощью ХТМЛ-элементов.

Для перемещения персонажа в режиме ВР вы можете использовать пазл get controller property и пазл get gamepad property для получения статуса кнопок/осей контроллера ВР.

Симуляция физики автомобиля

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

Данная функциональность используется в демо-приложении «Аркадные гонки» (качайте в магазине ассетов).

Остались вопросы?

Задайте их на нашем форуме!