Advanced: Тема повышенной сложности или важная.
Не могу в навмеше найти возможности для решения двух задач:
1) Мне нужно подойти к точке с определенной стороны. Как это реализовать используя встроенные возможности движка?
2) Мой персонаж не умеет мгновенно поворачиваться. Как мне построить путь с учетом этой особенности?
такого нет.
думаю нужно делать свой поиск пути но у меня руки не дошли ещё.
костыль который сейчас использую чтоб переместить лодочку из точки А в точку Б с нужным направлением скажем "конечный вектор" в точке Б, и К, я взял его как половина длинны объекта:
берём точку А и форвард вектор генерируем точку (А+форвард*К)
потом получаем предпоследнюю точку: (Б- конечный вектор*К)
находим точки пути от (А+форвард*К) до (Б-конечный вектор*К)
потом берём точку А добавляем в массив точек точки пути и точку Б получаем точки от А до Б без разворотов на старте и с нужным направлением в конце пути(при резких разворотах траектории всё равно происходит разворот на месте)
потом "гладим" траекторию или нет.
по хорошему нужно писать поиск пути человеческий но...но подобные вещи меня затягивают надолго и я пока воздержусь описанным костылём
Ну вот и у меня ощущение что нету. Но решил уточнить, вдруг просто не знаю.
Спасибо за информацию!
Для лодки важно понимать, что некоторые доступные пути ей просто не подходят в силу интерционных качеств, поэтому если делать как положено - надо думать сильно заранее куда пойдет судно, если же надо 100% проходимость везде - то надо делать хаки на физику.
Osiris
https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%B4%D0%BE%D0%B2%D0%B… 5%D0%BB%D1%8C
суда бывают разные :)
uss
Ну это частный случай)
всё судоходство пестрит частными случаями:
https://ru.wikipedia.org/wiki/%D0%91%D1%83%D1%80%D0%BB%D0%B0%D0%BA
uss
Сдаюсь))) Надо доабвлять поиск пути на суше еще для бурлаков
@!!ex
> 1) Мне нужно подойти к точке с определенной стороны. Как это реализовать
> используя встроенные возможности движка?
Строить маршрут не к финальной точке, а к промежуточной, с которой потом двигаться куда надо.
@!!ex
> 2) Мой персонаж не умеет мгновенно поворачиваться. Как мне построить путь с
> учетом этой особенности?
Звучит немного абстрактно. Это гуманоид или вообще автомобиль? Проблема в том что он не успевает довернуться по направлению движения или в том что бьётся об стены? Как вариант, можно попробовать с помощью find path выдернуть контрольные точки, сверять угол поворота персонажа с направлением на контрольную точку и, если они не совпадают с точностью в 5-10 градусов, снижать максимальную скорость.
Bodrin
Ситуаиця такая, что мне надо решить - использовать навмеш или своё решение.
Промежуточные точки и вот это всё - это костыли, которые сводят всё к решению не использовать нав меш.
Bodrin
> Это гуманоид или вообще автомобиль?
Это животное. У нас нет анимации поворота на месте. Поэтому он может двигаться только по дуге.
Мне вспоминается BDO, как там плывёт корабль по морю используя автопуть. Там тоже у корабля инерциальный поворот. Он просто доплывает не до самой точки, а до определенного радиуса вокруг этой точки, а потом интерполирует своё движение до следующей точки. Иногда корабль заносило так, что он не замечал точку и плыл к ней обратно. А еще он постоянно застревал обо всякую фигню, но это уже совсем другая история.
@!!ex
> Промежуточные точки и вот это всё - это костыли, которые сводят всё к решению
> не использовать нав меш.
Полностью рабочего решения "из коробки" для персонажей, движущихся по дуге, нет (ну или я его так и не увидел). Кое-что можно порешать через navigation raycast, увеличение размера nav agent и navigation query filters, но, я так понимаю, это тоже будет считаться костылями.