2

Всплытие. Нужно решение

Серия GameDev на коленке

Неделю бьюсь, меня подходы. Не выходит. Может подскажет пикабу.
имеется: поверхность воды в игровом движке. Unigine. Вода условно стоит в 0 по высоте, но волны меняют поверхность физически. Шторм регулируется, так что перепады волн между отрицательными и положительными значениями летают. Ну, разве что 12-ть баллов я не делаю, там уж совсем катавасия выходит. Могу получить точку поверхности на воде. Которая, соответственно гуляет вверх-вниз. Ок, и второй объект , с которым как раз проблема. А именно то, что он может всплыть, но не должен покидать поверхность. И обладает некоторыми скоростями в пространстве (т.е управляем). И вот найти решение всплытия только до уровня текущей воды - не выходит. Или волна проходит ниже положения - улетел. Набрал скорость выше, пролетел поверхность - обратно никак. Или прилипает к поверхности так, что потом не оторвать (обнуляются скорости). А ведь обратное погружение нужно даже больше, чем всплытие.
Нужно какое то не сильно сложное решение. Хотя бы логику действий, дальше уж попробую C# напрягать. Чатгпт не сильно помог (

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

0
Автор поста оценил этот комментарий

Это какето требование в проекте использовать этот движок? Почему не unity или анрил?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну...
1) тут красивая вода и шейлер воды. Сразу с нуля. Ну и мелочи вроде облаков, света, пресетов погоды... Без муторной настройки, плагинов и покупки ассета. Просто есть сразу. Я глянул както воду в юнити/анрил.... Это както совсем уж убого.
2) на работе используют именно unigine. Потому что он условно "отечественный". Так что изучать лучше то, что есть под рукой. И в чем уже есть опыт по графике и визуалу. Остальное я знаю только на уровне загрузки моделей, текстур ...
3) удобный интерфейс. Анрил вызывает легкую панику с тяжелой эпилепсией.
0
Автор поста оценил этот комментарий

Так бес физики это еще проше. Двигай обьект к точке на поверхности пока он не достигнет ее и все.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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


@Ariox41, @DrZolberg,

вчера под вечер удалось решить тупым способом: точка воды при движении вниз тянет за собой (перехват положения дрона по вертикали) сам дрон, а при движении вверх - освобождает. поэтому дрон не может подпрыгнуть выше уровня положения воды. А для внесения помех в управление в зависимости от уровня волнения - углы положения дрона в пространстве притягиваю к нормали положения точки на воде. так что чем ближе к поверхности - тем сложнее управлять. Топорно конечно, но ...это по сути заглушка от любопытства игроков. Ну а чтобы положение точки на воде было хотя бы приблизительно к визуализации - пришлось поднять уровень расчета коллизий воды.

пока это выглядит как-то так

https://rutube.ru/video/fbf7d452b4ae5958f48ddef3c7740ba2/


почему не физика: потому что разработчики "забили болт" на локальное применение сил поворотов. и они идут в глобальных координатах. можно конечно пытаться применять силу с смещением,...но это тоже не работает. поэтому нужно через матрицы превращения локальных в глобальные. И это придется делать для всех дронов, с учетом расчета возможности изменения массы перевозимых грузов....Что для месячного изучения языка пока выше моего уровня. я на удобоваримые столкновения-то неделю убил.

(PS: на вода динамическая, постоянно выбирается некоторое случайное значение шторма и меняется уровень волн)

Предпросмотр
RuTube3:04
показать ответы
0
Автор поста оценил этот комментарий

Правильно понимаю, вы хотите, чтобы бот колебался вверх и вниз вместе с волной, но при вылете за пределы воды падал обратно? Если модель не физичная - значит ускорения нет, на каждом шаге расчета есть скорость, которая обычно меняется элементами управления пользователя. Все, что вам нужно - менять эту скорость в соответвии с волной. В каждый момент времени (на каждом шагетрасчета) вам известна текущая высота волны по условному центру бота, и вы можете запомнить высоту волны на предыдущем шаге. Тогда на текущем шаге вы можете делать прибавку скорости исходя из разницы волн на текущем и предыдущем шаге, умножая на коэффициент.

Если бот поднялся над водой - просто добавляйте вертикальную скорость, направленную вниз, до тех пор, пока бот не окажется под водой. Чем выше бот, тем больше прибавка к скорости.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

0
Автор поста оценил этот комментарий

Для него важно только колебание по высоте, или угловое вращение тоже нужно?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Угловые не нужны. Пусть хоть болтается как говно а проруби. Чай не физический симулятор. Поверхность больше сделана на случай если игрок полезет вверх. Ну и на воду посмотреть.
показать ответы
0
ИндоПакистанский кот
Автор поста оценил этот комментарий
Игра про подводную лодку?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Ну скорее бота, дрона... ROV, только без кабеля и катушки )
показать ответы
1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Проблему несколько решил поиском точки пересечения воды и условного луча в координатах объекта. И последующее движение к прошлой точке и учету изменения дельты нового и прошлого положения. Это позволило волне при движении вниз всегда "бить" объект вниз и не тянуть его вверх. Ну и понижение качество просчета динамической поверхности волн. В результате а расчет шои только сильные колебания, без учета вторичных.
0
Автор поста оценил этот комментарий

Вот. Гуглить не стесняйтесь. https://github.com/ZauronDark/Unity-Simple-Water-Buoyancy

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества