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

Ограничения области движения частиц(без физики)
https://uengine.ru/forum/viewtopic.php?f=3&t=75282
Страница 1 из 1

Автор:  ProRock [ 05 окт 2020, 08:02 ]
Заголовок сообщения:  Ограничения области движения частиц(без физики)

Здравствуйте! Есть актер, который движется произвольно, но бывает так, что он выходит за пределы экрана. Подскажите, пожалуйста, способ этого избежать?

Я не хочу использовать коллизии, что бы столкновения не просчитывались через них.

Автор:  Agny [ 05 окт 2020, 16:29 ]
Заголовок сообщения: 

viewtopic.php?f=3&t=5533

Но есть один проблема.
Коллизия работает жестко.
А вот через математические вычисления работает как бы мягко.
Можно выдавить персонажа за пределы экрана.

Автор:  ProRock [ 06 окт 2020, 11:56 ]
Заголовок сообщения: 

Тут дела не в самом персонаже. Есть отдельный маленький актер, который движется, сравнимо с молекулой, хаотично. Коллизии он не имеет, а все столкновения просчитываются через вектора. Да и столкновений как таковых там нет, просто пересечения друг с другом.

Кажется Я нашел способ по проще:
- создать отдельный актор с кубической коллизией(платформой) и подогнать её под размер экрана. Это и будет наши рамки, за которые нельзя выходить
- эту платформу разбить на ячейки
- актор при движении будет использовать координаты любой выбранной ячейки

Здесь есть минусы. Первый, актеры могут выбрать одну ячейку. Для меня это не критично, но выглядеть будет не очень. Второй, актер будет преодолевать просто огромное расстояние. А это для меня уже не приемлемо. Как можно заставить его использовать ячейки рядом с собой?

Автор:  icms [ 07 окт 2020, 02:44 ]
Заголовок сообщения: 

Блин перечитал два раза, задачу не понял. Может визуально изобразите?

Автор:  Prytaleks [ 07 окт 2020, 05:25 ]
Заголовок сообщения: 

тут даже не указано каким способом задается движение

Автор:  ProRock [ 07 окт 2020, 07:28 ]
Заголовок сообщения: 

Про ячейки и всё такое разбиралось тут

https://uengine.ru/forum/viewtopic.php?f=3&t=75198

Первоначально перемещение было так:

Изображение

Само собой из за такого рандома актор мог уйти за пределы вселенной.

Сейчас это выглядит так:

Изображение

Движения идет по зеленым квадратам, берутся координаты одного из них и актор движется туда. Опять же, с того края актор может ломануться на другой край со скоростью света.

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

1. Определить минимальный и максимальный X и Y. это лимиты - константы.
2. Определить разницу между текущим положением актора, и лимитами константами, полученные данные это динамические лимиты.

Их использовать как clamp для рандома.

Очень грубо, но примерно это должно выглядеть так, что от чего отнимать, это ты уже и методом тыка можешь разобраться, мне думать и проверять лень.
https://picua.org/images/2020/10/07/05c ... 251c5d.png

по второму вопросу, если хочешь что бы актор двигался всегда с одной скоростью, нужно использовать ноду Lerp. Скорость должна быть зависимой от растояния, вот так пользоваться лерпом.
https://picua.org/images/2020/10/07/e7b ... dd1b76.jpg

Обрати внимание, главное отличие лерпа от интерпа, тем что к А подключается заранее определенное число, а не текущее положение актора.
Хотя это число должно являться текущим положением актора до начала лерпа

Что бы скорость была зависимой от расстояния, это можно сделать подобным образом - https://picua.org/images/2020/10/07/5ce ... 3c47a8.jpg

также ты можешь направлять актора случайно сразу от цента твоего экрана, например твой центр в 0, это будет выглядеть так - https://picua.org/images/2020/10/07/c14 ... 14fc96.jpg
если использовать указанные выше приемы(лерп и мап), это один из лучших(простых) вариантов, ты сразу укажешь нужные лимиты и этого будет достаточно.

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