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

Общие вопросы по разработке на UE4

Страницы: 1 2 Следующая »
#0
13:19, 23 апр. 2020

Так уж сложилось что я решил завязать с движкописательством и начать делать игры.
Многие меня не поймут и осудят, но чему быть того не миновать.

Итак по ходу пьесы, то и дело возникают как маленькие вопросики, так и вопросы касательно архитектуры построения проектов на данном движке.
Про это все данная тема.

#1
13:24, 23 апр. 2020

Есть карта на которой стоят домики, в некоторые из них можно зайти.
Интерьер это отдельная локация, которая по размеру больше чем домик на общей карте.
Как сделать вход в домик без смены локации( избавиться от загрузки в момент перехода ) ?
Ну и соответственно выход обратно на улицу.

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

#2
14:11, 23 апр. 2020

emptiness_rain
> Но как то глаз режет такая конструкция, может есть способ поэлегантнее?
Что не устраивает в стримнге?

#3
14:22, 23 апр. 2020

@!!ex
> Что не устраивает в стримнге?
Что нужно где то хранить на карте интерьер, да еще и управлять глобальными настройками освещения например.
В идеале был бы вариант, когда уровень подгружается в память, инитится и запускается но он совершенно изолирован от того на котором игрок.

+ Неясен момент как быть с несколькими картами.
Вот к примеру есть 2 поселка, каждый является как бы хабом для перехода в домики и отдельно интерьеры.
Та вот эти 2 поселка нужно объединять в общий мир или это независимые миры?
Хотелось бы сделать чтобы были независимые и между ними переход уже с загрузкой.

#4
14:56, 23 апр. 2020

emptiness_rain
> + Неясен момент как быть с несколькими картами.
> Вот к примеру есть 2 поселка, каждый является как бы хабом для перехода в
> домики и отдельно интерьеры.
> Та вот эти 2 поселка нужно объединять в общий мир или это независимые миры?
> Хотелось бы сделать чтобы были независимые и между ними переход уже с
> загрузкой.
Возможно, я неправильно понял вопрос. Но если правильно, то: до тех пор, пока в рамках проекта в UE не включена функция World Composition каждый сектор - это отдельный уровень, в рамках которого могут совершенно разные настройки глобального освещения. Каждый дом изнутри также может быть представлен как отдельный сектор, который будет загружаться при триггере перехода.

#5
15:49, 23 апр. 2020

Johnny Wild
> Но если правильно, то: до тех пор, пока в рамках проекта в UE не включена
> функция World Composition
Но без этого не будет работать левел стриминг. Или способ есть?

#6
16:19, 23 апр. 2020

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

#7
(Правка: 3:50) 3:22, 24 апр. 2020

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

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

а там где нет стриминга делают просто в жопе мира и телепорт туда обратно
самый адекватный вариант чтобы без задержек
задержки можно пофиксить предварительной загрузкой, это не сложно поидее

#8
10:53, 24 апр. 2020

mitroxa
> а там где нет стриминга делают просто в жопе мира и телепорт туда обратно
Ну изначально я так и сделал.
> задержки можно пофиксить предварительной загрузкой, это не сложно поидее
Вот когда начал искать как делается предварительная загрузка, все на левел стриминг ведет, другого пути не нашел.

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

#9
12:05, 24 апр. 2020

Ну так стриминг это и есть предварительная загрузка.
ГРузишь левел, при этом оставляешь его скрытым. Когда нужно - один скрываешь, второй показываешь.
По идее когда уровень скрыт - его настройки глобального света не влияют.

#10
12:06, 24 апр. 2020

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

#11
(Правка: 13:14) 13:12, 24 апр. 2020

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

еще стоит глянуть насчет отложенной загрузки акторов, вроде было что-то такое

#12
15:07, 24 апр. 2020

mitroxa
Ты по сути предлагаешь от построения левелов в редакторе. Это так себе вариант.

#13
(Правка: 15:19) 15:17, 24 апр. 2020

@!!ex
ну я же написал что велосипед посути
для этих целей сделан стриминг уровней

но если у тебя комната которую ты загружаешь просто кусок геометрии
с несколькими отдельными предметами, то можно через спавн актора сделать

#14
8:57, 25 апр. 2020

@!!ex
> ГРузишь левел, при этом оставляешь его скрытым. Когда нужно - один скрываешь,
> второй показываешь.
В итоге так и сделал, со своей логикой управления загрузкой и выгрузкой.

> По идее когда уровень скрыт - его настройки глобального света не влияют.
Сейчас руками выключаю свет, но надо попробовать перенести источники из Persistent Level в какой то из подуровней.

Страницы: 1 2 Следующая »
Unreal EngineФорумОбщее