Существует два способа добавить воду на уровень: включение глобальной воды и создание локальных водных областей.
Глобальная вода распространяется на весь уровень и заполняет водой все, что находятся ниже высоты 0. Чтобы включить глобальную воду, необходимо перейти в свойства мира, установите значение параметра environmentParameters -> disableWaterShader как false.
По умолчанию этот параметр установлен как true, что означает отключение рендеринга воды на уровне.
Важно помнить, что если значение этого параметра установить как true, это отключит весь рендеринг воды на уровне, включая те локальные водные области, которые были созданы вручную.
Локальная вода используется для создания озер, рек, луж и болот на других уровнях высоты, отличных от глобальной воды. Этот способ позволяет точно контролировать расположение и форму водных объектов.
По сути область локальной воды поднимает уровень глобальной воды к нужной высоте в определенной области, заполняя водой все пространство от локальной зоны воды до нижней границы мира.
Это означает, что вода не может существовать в одних координатах на разных уровнях. Например, если у вас есть озеро наверху, а под ним пещера, в которой тоже должно быть озеро, это невозможно.
Для создания локальной воды сначала выберите слой, на котором будет размещаться объект водной области, сделав двойной клик по нужному слою. Затем перейдите в окно просмотра уровня и нажмите правой кнопкой мыши. В появившемся меню выберите Graphics -> Add Local Water Area.
После этого на уровне появится объект воды, который можно перемещать и изменять по своему усмотрению.
Чтобы включить отображение визуальных границ области локальной воды, включите отображение областей в режиме отладки.
Локальная вода также позволяет осушать определенные участки глобальной воды. Например, если пещера уходит ниже уровня глобальной воды (уровня 0), локальная вода может быть использована для осушения той зоны глобальной воды, где будет располагаться пещера или другой объект уходящий ниже уровня нуля.
Лужи представляют собой Entity Template, которые используются для создания визуального эффекта воды на поверхности. Эти лужи не влияют на геймплей и предназначены только для визуализации воды под ногами игрока.
Entity Template лужи состоит из двух компонентов: плоского меша лужи (CMeshComponent) и области физического материала (CStandPhysicalMaterialAreaComponent) с эффектом water_shallow, который определяет эффект и звук что должен воспроизводиться если игрок находится в этой области, в данном случае звук воды и эффект брызг под ногами.
Для создания лужи сначала выберите слой, на который хотите разместить лужу, далее перетащите шаблон сущности лужи из Asset Browser на выбранный слой.
Шаблоны луж хранятся в следующих папках:
environment\decorations\water\puddles\
environment\water\
Чтобы создать новую лужу с уникальным внешним видом, необходимо:
Скопировать меш и шаблон существующий лужи.
Настроить материал в скопированном меше лужи под вид который вам необходим. Все меши луж используют материал transperent_reflective. Параметры этого материала можно настроить в соответствии с вашими потребностями.
Заменить меш в скопированном шаблоне сущности на тот который вы скопировали и отредактировали.
Реки представляют собой меши, аналогичные мешам луж, но имеющие извилистую форму и другие материалы. Реки, как и лужи, представляют собой чисто визуальные объекты. Они расположены под ногами игрока и являются тонкими мешами, не влияющими на геймплей. В отличие от луж, ручьи не имеют шаблона сущности (Entity Template), который позволял бы разместить их вместе с областью физического материала (CStandPhysicalMaterialAreaComponent). Область физического материала необходимо рисовать вручную по форме реки с помощью Vertex Editor.
Каждая река уникальна по своей форме, поэтому переиспользовать меши существующих рек вряд ли удастся, так как под них нужно подгонять ландшафт. Для каждой реки необходимо создавать свой меш.
fx\environment\rivers\