Unreal Engine 4
http://uengine.ru/forum/

Помощь с турелью.
http://uengine.ru/forum/viewtopic.php?f=3&t=11846
Страница 1 из 2

Автор:  Kayaba Akihiko [ 04 окт 2017, 01:44 ]
Заголовок сообщения:  Помощь с турелью.

Всем привет. Помогите пожалуйста с решением данной ситуации: есть турель и цель, мне нужно узнать, смотрит ли турель в данный момент на цель. Разброс обзора к примеру как у обычной камеры.

Автор:  Prytaleks [ 04 окт 2017, 04:02 ]
Заголовок сообщения: 

1. запустить лайнтрэй от условного центра твоей турели по форвард вектору, можешь использовать arrow компонент для этого
или
2. Добавить коллизию нужной формы

Автор:  ХеруВам [ 04 окт 2017, 06:17 ]
Заголовок сообщения:  Re:

Prytaleks писал(а):
1. запустить лайнтрэй от условного центра твоей турели по форвард вектору, можешь использовать arrow компонент для этого
или
2. Добавить коллизию нужной формы

Что ты со своими стрингами и трейсами с булевой логикой суешься постоянно?! Изучи уже что-то новенькое. Оскомину набил уже...
Ты понимаешь разнице между СМОТРИТ и ВИДИТ?
Чел хочет узнать СМОТРИТ ли. Это нужно для того чтобы определиться с началом стрельбы..

По сабжу - нужно узнать угол между векторами: куда торрель смотрит и где относительно ее игрок.

Автор:  Snake [ 04 окт 2017, 07:03 ]
Заголовок сообщения: 

...
нужно 3 воодных вектора
положение тюрели V1
положение цели V2
и напрвление тюрели нормализованный dir
if ( acos(dotproduct(normalize(v2-v1),dir)) > maxAngle /*максимальный угол обнаружения*/)
{}

Автор:  Prytaleks [ 04 окт 2017, 07:11 ]
Заголовок сообщения:  Re: Re:

ХеруВам писал(а):
Что ты со своими стрингами и трейсами с булевой логикой суешься постоянно?

это лишь вариант, с помощью которых можно решить задачу без знаний триганометрии как у Снэйка например. Понимаю разницу, и между смотрит, и между видит, и есть ли между ними препятствия, а еще турель может быть какой угодно и гэймплэй такойже.

Автор:  Snake [ 04 окт 2017, 07:17 ]
Заголовок сообщения: 

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

Автор:  Snake [ 04 окт 2017, 07:22 ]
Заголовок сообщения: 

Prytaleks , а вот коллизии тут 300 лет не нужны... это не просто костыль, это костылище! такие советы ужасны...
коллизи - это целый комплекс "бесконечных математических вычислений"(на самом деле конечных но математических выражений и задействованных классов просто уйма)
нагуглить как померять угол между двумя веторами - любой нубас может. и математики там понт, эти два способа просто несоизмеримы.

Автор:  Prytaleks [ 04 окт 2017, 07:26 ]
Заголовок сообщения:  Re:

Snake писал(а):
Prytaleks , а вот коллизии тут 300 лет не нужны... это не просто костыль, это костылище


у этой коллизии могут быть и другие функции, у тебя разве взаимодействие с ботами происходит без коллизий?

p.s. в моем случае, без них не получится, у меня турели ходячие, и стараются целится в ближайших))

p.p.s. эти коллизии бесспорно садят фпс, на 5-10, в зависимости от колва мобов, но мне без них никак.

Автор:  Snake [ 04 окт 2017, 07:34 ]
Заголовок сообщения: 

эм... для прицеливания коллизии не нужны
(v1-v2).length - расстояние до цели
угол к цели ывше я описал.
видимость - трейс
больше нечего проверять для прицеливания.

если целей много тогда нужно иметь массив всех акторов для прицеливания, проверять находятся они на максимальной для прицеливания дистанции
все кто попадают в эту сферу (maxdistanse >(v1-v2).length) добавляем в массив. (эту функцию можно назвать коллизией, коллизией точки со сферой, но ее математика значительно проще чем комплексные коллизии, и не нужно запускать физически движек)
потом фильтруем массив по углу, потом ищем ближайшего.

Автор:  Prytaleks [ 04 окт 2017, 07:37 ]
Заголовок сообщения:  Re:

Snake писал(а):
если целей много тогда нужно иметь массив всех акторов для прицеливания, проверять находятся они на максимальной для прицеливания дистанции
все кто попадают в эту сферу (maxdistanse >(v1-v2).length) добавляем в массив.
потом фильтруем массив по углу, потом ищем ближайшего.

ну вот кто зашел в коллизию тот и добавился в массив, а если это товер дефенс какой нибудь, и сто акторов движется не всех же считать.

p.s. я думаю что само прицеливание можно организовать, find look at rotation + set control rotation.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/