Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 183
В Маркетплэйсе появилась такая штука, как раз - на первый взгляд, правда - о чём-то подобном. https://www.unrealengine.com/marketplac ... -flying-ai
Но посмотреть в любом случае стоит, ибо сие выложено бесплатно.
Аватара пользователя
Пользователь
Сообщения: 102
Сия штуковина работает на вокселях, что очень неприлично сказывается на производительности, в виду огромных масштабов космического пространства и просчетов динамических объектов.

В общем, тема умерла потому, что я забивал болт на сию проблему в виду ее нерешаемости, как мне казалось.
НО!

У меня появились наработки, которые пока сложно конвертируются в Blueprint'ы.
Сейчас нарисую визуальную часть моего гениального плана и скину сюда.
Если кто поможет, присоеденится к обсуждению - буду весьма признателен!
Аватара пользователя
Пользователь
Сообщения: 102
https://drive.google.com/open?id=0B6zdZ ... lJHU0hDaW8

Соб-сно вот.
Понятного мало, знаю.
Сейчас обо всем по порядку:
Корабль имеет сферу обнаружения, которая записывает все объекты, попавшие в нее, в массив. Затем из массива ИИ достает все эти объекты, ищет вектор направления на них (Find Look At Rotation) и умножает полученный ротатор на -1. Тем самым получается вектор избегания препятствия.
Этот вектор - идеальное направление от цели. Но ИИ ведь еще надо и к цели попасть. Значит, он будет устанавливать свой вектор вращения таким образом, чтобы его направление было в интервале от направления на цель до направления вектора избегания. ИИ высчитывает свой вектор вращения посредством Lerp'а (линейной интерполяции). В "erp'е начальным вектором будет вектор на цель, конечным - избегание цели, а множителем - дистанция до цели. Чем меньше дистанция, тем больше поворачиваем от цели.
Таким образом, при приближении к цели ИИ будет отворачивать нос корабля от препятствия, а с момента равнения с препятствием - поворачиваться в сторону цели.

Как-то так. В теории - все отлично. На практике, пока еще не реализовал. Проблема - расчет общего вектора избегания(при наличии нескольких препятствий).

Если есть идеи, подсказки - прошу, не отмалчивайтесь!
Аватара пользователя
Пользователь
Сообщения: 4069
Любой более и менее сложный алгоритм тебе придется разрабатывать самому, сначала в голове, потом наброски на бумаге, а потом переносить это дело в код.
Аватара пользователя
Пользователь
Сообщения: 1341
в ии лучше использовать простые и быстрые решения

трейс вперед и несколько в небольшом радиусе(радиусах) от центра
_________________
прикрепленные картинки с radikal не смотрю.
Аватара пользователя
Пользователь
Сообщения: 2319
Цитата:


-это решение похоже на уже реализованную в анриале АИ движение толпы.
по сути мы получаем силовые поля которые отталкивают АИ от препятствия. может быть вполне годной реализацией почему нет. Нужно только вектор силы от препятствия чуть по другому расчитывать чем на картинке нарисовано, чтоб вектор не снижал скорость а только добавлял боковое смещение, и надо еще вращение АИ(куда он должен смотреть) во время маневра придумать как считать.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 102
Фактически, скорость изменяться не будет, она вообще в другом принте будет считаться. Так что в данном варианте будет считаться именно вектор вращения корабля.
А по поводу просчета вектора самого корабля - я писал, что вектор будет определяться Lerp'ом (между направлением на цель и вектором от препятствия, в зависимости от дистанции до препятствия.
Единственая проблема - как найти усредненный вектор из нескольких. Чтобы ИИ мог обходиьь группы препятствий.
Аватара пользователя
Пользователь
Сообщения: 102
На бумаге уже изрисовано листов 20, если не больше, пришло время кодить:D
Последний раз редактировалось aleksegg 12 май 2017, 10:21, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 102
А по поводу трейсов... Это очень неудобно. ОЧЕНЬ НЕУДОБНО!
Как решать проблему столкновения нескольких ИИ идущих по касательной?
Да и еще множество проблем, которые возникнут в ходе тестирования?
Мое решение выработано полугодовыми размышлениями и мозговыми штурмами. Я считаю,что оно поможет мне убить всех зайцев сразу, в области перемещения ИИ
Аватара пользователя
Пользователь
Сообщения: 1341
Важно сохранить плавность движения корабля, чтобы он резко не отпрыгивал увидев препятствие

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

убить всех зайцев сразу - как было показано в одном из примеров здесь - вместе с кораблем двигать сотню триггербоксов покрывающих пространство вокруг корабля и анализировать попадающие в них объекты, их размер, скорость, определять какие из триггеров будут заняты через некоторое время и строить путь по свободным
но главное чтобы это не тормозило обсчитываясь на каждом кадре :)
_________________
прикрепленные картинки с radikal не смотрю.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница