Войти
Unreal EngineФорумОбщее

как одновременно заспавнить множество акторов?

#0
16:04, 16 янв. 2021

Есть потребность заспавнить одновременно множество (сотни) акторов с физикой, желательно внутри какого-то заранее заданного объёма. Через spawn actor и цикл делать не хочется т.к. это кажется слишком топорным и не правильным. Подскажите, какие ещё могут быть способы? Интересует метод именно через блупринты, т.к. сам я не программист.


#1
16:14, 16 янв. 2021

Я подпишусь на тему, хотя какие ещё способы в блупринтах? Спавнить с задержками, если ГГ не в гуще этих экторов, в фоне, пока игрок начинает в другом месте. Можно сначала заспавнить экторов этих в одной точке, а потом set actor location каждому в заданном Range. Я спавнил, помнится, звёзды на небе, плюс ошибся с количеством циклов, у меня игра просто вылетала при старте без ошибок (а иногда нет). Либо лагала первые секунды по полной программе. Ну, как вариант, сделать окно загрузки, например, через виджет, и сделать то, что требуется.

#2
16:21, 16 янв. 2021

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

#3
16:54, 16 янв. 2021

pildwell
Вполне вероятно, можно спавнить эти сотни с настроенной физикой без всяких проблем. У меня-то были проблемы с десятками тысяч одновременно генерируемых анимированных экторов. Тут ещё зависит от платформы сборки. Вы бы попробовали для начала, это несколько минут займёт, а если будут подлагивания в процессе, тогда уже писали сюда. "Не хочу, потому что кажется" - это больше подходит для записи в медицинской карточке психиатра.

#4
(Правка: 20:37) 20:37, 16 янв. 2021

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

Советую посмотреть это видео, особенно спавн актора из Ниагары на 29:50.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#5
17:50, 17 янв. 2021

Не знаю, можно ли сделать такое в UE и блупринтом, но в Юньке и кодом можно:

в редакторе (не в рантайме!) создаешь пустую сцену и спавнишь все туда. А в рантайме просто подгрузишь эту сцену к текущей. Наверное, такая подгрузка будет быстрее, чем спавнить всё поштучно.

А еще кури GPU-инстансинг. Я не пробовал еще, но он позволяет клонировать меши силами GPU.

#6
13:31, 18 янв. 2021

pildwell
> Через spawn actor и цикл делать не хочется т.к. это кажется слишком топорным и
> не правильным.


Если экторы - это единственно правильный путь.

#7
16:12, 18 янв. 2021

Спасибо всем за ответы! Думаю теперь как-нибудь решу вопрос :-)

#8
20:26, 18 янв. 2021

первый ответ https://answers.unrealengine.com/questions/729801/view.html
юзай Instanced

Unreal EngineФорумОбщее