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