Pull to refresh

Comments 8

Отличная статья! Поделитесь, на каком размере чанка в итоге остановились и есть ли какие-то ограничения (количество памяти под чанк, количество акторов и т.п.)?
Спасибо! Мы остановились на размере чанков 64х64 метра, но размеры, количество объектов и разнообразие их сильно зависит от целевых платформ и игровых условий. У нас на одинаковых по размеру чанках сильно варьируется количество экторов в зависимости от того, город это или поля/леса.

Спасибо, потрясающая статья. Написано очень просто и понятно даже для людей, тесно незнакомых с движком UE4

Насколько я помню, ещё один минус world compositor - сложности его настройки для работы в сетевой игре

Да, все верно. Если я не ошибаюсь, в Fortnite он не используется, а сингл проектов с открытым миром довольно мало, из-за чего world composition особо не развивался все время своего существования и в итоге UE5 ему просто написали замену.
Не смотрел код загрузчика. А там только сфера/круг работает? Логично было бы подгружать то, что актор может увидеть — например только то, что попадает в поле зрения камеры и уменьшить радиус круга. Таким образом, если брать еще алгоритм с пограничными чанками, то это может еще сильней уменьшить нагрузку. Но появится артефакт, если актор остановился, повернулся, то необходимо загружать те чанки, которые не попадали в круг.
Можно пойти дальше и вычислять скорость передвижения актора — чем она больше, тем более «вытянутой» получается область загрузки (что-то наподобие яйца, где в узкой части актор, смотрящий в направлении широкой части). И когда актор замедляется, то яйцо снова превращается в круг и подгружаются необходимые чанки.

Подгрузка того, что игрок может увидеть слишком затратна. Однако вместо этого в UE базового включено отключение рендеринга того, что игрок не видет. На счёт изменения форму загрузки, если честно, не знаю.

Код, который отвечает за то, что и когда грузить мы переписывали в том числе, да, проверка там идет по сфере.

Загрузка по видимости не даст особого эффекта, потому что игрок может часто вращать камерой, либо быстро покидать закрытые участки и выходить на открытую местность. Загрузка + добавление в мир процесс порой довольно долгий и может занимать несколько секунд, так что чанки просто не будут успевать отображаться.
Мы думали про систему с зонами для загрузки, чтобы в итоге отказаться от World composition целиком, но она скорее подойдет для игр с более закрытыми пространствами.

Насчет учета направления, куда движется игрок, я упомянул, что мы это реализовали, но в итоге не использовали. Такой подход есть и в UE5 World Partition, берется вектор направления взгляда и делается скалярное произведение с направлением в сторону чанка. Получается множитель для приоритета, чтобы раньше грузить чанки, к которым игрок движется в данный момент. Это эффективнее, чем вытягивать сферу, потому что не цепляет чанки позади игрока.
Sign up to leave a comment.

Articles