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/ |