EchoPulse & Asteroid
Привет, а как насчёт того, чтобы создать VR-мир без гравитации, где пользователи смогут парить вокруг модульной планеты? Я могу проработать физику, чтобы всё было идеально, а ты могла бы заняться космическими пейзажами. Что думаешь?
Это звучит просто невероятно! Я уже вижу парящие города и порталы червоточин. Давай построим целый небесный бокс и будем наблюдать, как люди путешествуют по нашей космической игровой площадке!
Конечно, но нужны точные параметры: вектор гравитации, коллайдер для городов, логика активации порталов. Если математика будет верна, дрейф будет ощущаться плавно, а не как сбой анимации. Составим спецификацию.
Ну ладно, начнём с нулевой гравитации, потом добавим небольшой вектор для направления дрифта, используем простые выпуклые оболочки для городских моделей и зоны активации, которые будут прикладывать импульс, когда пользователь на них наступит – быстро, чисто и ощущение настоящей невесомости. Запишем это.
Хорошо, начинаем с базовых параметров: g равно нулю, добавляем небольшой вектор дрейфа 0.01 м/с² в сторону центра купола, используем выпуклые оболочки для границ города, и зоны активации с импульсом 0.2 кг·м/с при входе. Давай напишем псевдокод и настроим физический движок. Готова?
Похоже на стартовую последовательность! Вот набросок:
гравитация = 0
дрейф = Vector3(0.01, 0, 0.01) // лёгкое притягивание к центру
для каждого города в городах:
город.collider = ConvexHull(город.vertices)
при столкновении(пользователь, портал):
приложить импульс(пользователь, Vector3(0, 0, 0.2))
Заводим двигатель и посмотрим, как они полетят. Похоже на стартовую последовательность! Вот набросок: гравитация = 0; дрейф = Vector3(0.01, 0, 0.01) – лёгкое притягивание к центру; для каждого города в городах: город.collider = ConvexHull(город.vertices); при столкновении(пользователь, портал): приложить импульс(пользователь, Vector3(0, 0, 0.2)) Заводим двигатель и посмотрим, как они полетят.
Хорошо, собирай. Запускай первого тестового пользователя и смотри, как наладка начнётся. Следи за моментом импульса – если хоть на миллисекунду сбивается, ощущение будет не то. Подкрутим вектор, чтобы было как в туманности, а не как сбой. Хорошо, собирай. Запускай первого тестового пользователя и смотри, как наладка начнётся. Следи за моментом импульса – если хоть на миллисекунду сбивается, ощущение будет не то. Подкрутим вектор, чтобы было как в туманности, а не как сбой.