Редактор воды
Last updated
Last updated
Редактор воды [water]
является встроенным инструментом Редактора карт.
Используется для создания на картах водоемов: озер, рек, моря.
Переключиться в Редактор воды можно двумя способами:
нажать на иконку water бокового меню Редактора Карт;
нажать клавишу 3 на клавиатуре.
Бассейн - один цельный меш поверхности воды. Примеры бассейнов:
река
озеро,
море,
река, впадающая в озеро.
Список всех Бассейнов карты находится в окне Pools
.
Значение параметра Altitude
задает высоту уровня поверхности воды для выделенного в списке Бассейна.
Бассейны воды со значениями параметра Altitude
в пределах 10 игровых единиц (0.5м) при рендере будут объединены в один уровень воды с целью оптимизации.
Рендер в Gem RTS поддерживает до 16 различных уровней поверхности воды.
При создании нескольких уровней воды необходимо учитывать, что рендер каждого уровня эквивалентен рендеру целой сцены, и, соответственно, сказывается на fps. Хорошей практикой при проектировании карты является обоснование необходимости различных уровней воды с точки зрения игрового дизайна.
Если водные поверхности не соединены между собой (например, 2 озера), то рекомендуется делать их разными бассейнами
Рукава рек с разным течением допускается делать разными бассейнами (подробности описаны ниже)
Каждый уровень воды должен быть обоснован игровым дизайном
Прежде, чем приступить к созданию Бассейна, рекомендуется при помощи инструментов Редактора ландшафта [Land] подготовить рельеф поверхности земли на месте предполагаемого водоема.
Вызвать контекстное меню ПКМ на пустом месте окна Pools
Выбрать пункт Add...INSERT
Ввести имя Бассейна в открывшемся окне Input
и нажать кнопку Ok.
Имя Бассейна появится в списке окна Pools.
Принцип создания меша водной поверхности аналогичен созданию и редактированию полигонов меша поверхности земли в Редакторе полигонов.
Выбрать в списке окна Pools имя Бассейна, для которого необходимо создать или отредактировать меш поверхности воды
Установить значение параметра Altitude
Возпользоваться кистью Polygons
для создания и редактирования меша поверхности воды
При создании и редактировании меша поверхности воды необходимо следить, чтобы полигоны меша воды пересекались в мешем поверхности земли в местах предполагаемого побережья, чтобы не возникало дыр между поверхностями.
Бассейн можно озвучить с помощью Объекта area
Кисть Polygons используется для создания и редактирования меша поверхности воды Бассейна. Движение мыши с зажатой ЛКМ приводит к добавлению полигонов меша поверхности воды, с зажатой ПКМ - полигоны удаляются.
Флажок Wireframe
Включить/выключить отображение полигональной сетки меша поверхности воды
Level
Дробность полигональной сетки меша поверхности воды
На поворотах русла Бассейна реки рекомендуется разбивать полигоны на более мелкие , чтобы текстура материала воды более плавно накладывалась на меш поверхности
Инструмент для создания течения в Бассейнах рек.
Выставить направляющие точки для Кривой течения - движок сформирует текстурные координаты для создания видимости течения.
Отредактировать положение точек кривой так, чтобы образовалась плавная линия, соотвествующая руслу и течению реки
Создание
Активируется при отсутствии кривой. Каждый ЛКМ на карту добавляет точку-узел. Клик ПКМ - добавляет последнюю точку и выходит из режима создания.
Редактирование
Активируется при наведении на существующую линию или точку.
ЛКМ на кривой (не в точку) создает новую точку на кривой.
Зажатый ЛКМ на точке кривой позволяет перемещать выбранную точку кривой по карте.
ПКМ на точке кривой удаляет точку.
Начальная и конечная точки должны немного выступать за видимую часть реки (заходить в берега или за край карты)
На поворотах рекомендуется располагать точку кривой Flow ближе к внутреннему углу русла, чтобы анимация течения выглядела более естественной
В местах смены направления течения воды рекомендуется делать более дробный меш (воспользоваться кистью Polygons level 5) для более плавного смешивания анимаций движения воды
Ограничений на количество точек кривой и длины кривой нет
Soft-Sharp
и Slow-Fast
Положением слайдеров Soft-Sharp
и Slow-Fast
задаются плавность и скорость работы кистей Colors и Materials Редактора воды.
Кисть для подкраски вертексов меша воды. Работает аналогично кисти Colors Редактора ландшафта.
При использовании кисти Color рекомендуется выставить в свойствах материала воды параметр сolor равный белому цвету, так как во время подкрашивания кистью Color цвета вертексов меша и материала воды перемножаются, поэтому дефолтный цвет вертексов в схеме материала будет нивелировать цвет из кисточки.
Кисть Materials предназначена для разукрашивания поверхности воды. Каждый бассейн содержит свой список материалов. Добавлять материалы в выбранный Бассейн можно с помощью кнопки Add. Доступен импорт материалов из других бассейнов или карт по нажатию кнопки Import.
Окно настройки параметров материала воды открывается при выборе соответствующего материала из списка на вкладке Materials.
Параметр land_texture_basis
присутствует во всех материалах карты и задает значение базового тайла материала земли.
По умолчанию установлено значение 15.
Материалы воды делятся на два вида:
однослойные;
двухслойные.
Базовая схема, определяющая количество слоев в материале, выбирается из списка в строке с именем материала.
При добавлении нового материала воды по умолчанию в материале используется схема однослойного материала water/flow
.
SDL файл схемы находится в ресурсах по ссылке:
\resource\entity\service\water\water.mtl
Значения параметров материала можно настраивать непосредственно в Редакторе воды на вкладке Materials, выбрав соответствующий материал в списке.
textures
В блоке textures необходимо выбрать текстуры для шума (bumpvolume_noise) и волн (bumpvolume_wave). Текстуры не должны быть одинаковыми
color
Цвет меша поверхности воды
Синий
specular_power
Степень блеска поверхности, влияет на размер пятна спекуляра от "Солнца"
3000
bumpiness_noise
Степень рельефности текстуры ряби
1
specular_amount
Величина спекуляра
soft_attenuation
Влияет на размытость краев воды и косвенно на соотношение refract/reflect. Этот параметр надо менять совместно с fresnel_power
0.1
refraction_scale
Коэффициент искажения refract-составляющей колебаниями воды (0 - не искажается совсем).
0.1
density
Коэффициент соотношения color/refract для иммитации прозрачности воды.
Чем больше значение, тем больше кажущаяся толща воды и меньше видно дно
0.002
reflection_scale
Коэффициент искажения reflect-составляющей колебаниями воды (0 - не искажается совсем).
0.1
fresnel_power
Коэффициент соотношения refract/reflect - отражающая способность поверхности воды. Чем больше значение, тем менее отражающей будет поверхность воды.
2
fresnel_scale
Коэффициент усиления Френеля
1.2
bumpiness_wave
Степень выраженности неровностей текстуры волн, рельефность волн
0.05
period_wave
Частота колебаний волн
1
tile_wave
Растянутость текстуры волн. На больших плоскостях воды нельзя использовать большое значение tile_wave, иначе будут видны тайлы текстуры.
1
period_noise
Частота колебаний ряби. Параметр period_noise нужно настроить так, чтобы его значение не было равно значению period_wave
1
tile_noise
Растянутость текстуры ряби. Необходимо настроить параметры tile_noise и tile_wave так, чтобы tile_noise был как минимум в 2 раза больше, чем tile_wave
2
speed_noise
Скорость проигрывания анимации на текстуре ряби
0.001
speed_wave
Скорость проигрывания анимации на текстуре, имитирующей течение воды
0.01
angle
Угол поворота текстуры при прокрашивании материалом
0
alpha_min
Минимальное значение альфа-канала
1
Двухслойные материалы water\layered_2
используются для создания визуально разной воды на разных участках в пределах одного Бассейна (например, река впадает в озеро)
Принцип настройки двухслойного материала
В первом слое настроить параметры материала, аналогично одному однослойному материалу (например, реки)
Во втором слое настроить параметры материала, аналогично второму материалу (озера)
Параметры для каждого слоя аналогичны параметрам однослойного материала.
Переходы между материалами воды делаются аналогично тому, как делаются переходы между материалами на поверхности земли.
Переход между однослойными материалами необходимо прокрасить двухслойным материалом так, чтобы материалы двухслойного материала стыковались с соответствующими материалами каждого из двух стыкуемых однослойных материалов. При раскрашивании использовать ЛКМ и ПКМ для материалов из слоя 1 и 2 соответственно.
ПКМ с зажатым Ctrl (‘pick’ feature) выбирает материал воды в точке клика, при этом возможны следующие варианты:
если это материал из текущего бассейна, то он станет активным в списке материалов;
если текущий бассейн пустой (в бассейне еще нет полигонов), материал со сцены заменит текущий материал;
иначе материал добавится в список материалов текущего бассейна.
Пятна с иными свойствами воды можно сделать с помощью двухслойного материала water/layered_2
:
первый слой в точности повторяет настройки основного материала бассейна, но значение параметра alpha_min=1
второй слой настроить согласно визуальным требованиям пятна иной воды и выставить значение параметра alpha_min=1
Пятна иной воды красить с зажатой ПКМ
Если необходимо создать разное направление течения воды на разных участках водной поверхности, то это можно сделать несколькими способами.
С помощью двухслойного материала, с разными значениями параметра angle
в слоях
С помощью создания нескольких бассейнов, с последующим визуальным объединением бассейнов
Если необходимо визуально объединить несколько бассейнов с разными кривыми течения, то бленд материалов воды в бассейнах удобно делать с использованием материала water\flow
с параметром alpha_min = 0
Чтобы места соединения Бассейнов не мерцали, необходимо установить параметры Altitude
бассейнов с разницей высоты в 0.001
.
Цвет воды состоит из следующих составляющих:
reflect - отражение (берется из текстуры отражений)
refract - дно (берется из текстуры сцены)
color - цвет толщи воды, к нему применяется освещение источниками света
specular - блики на поверхности от источников света
Параметры воды, влияющие на ее цвет:
color
density
fresnel_power
specular_power
soft_attenuation
Параметры воды, влияющие на ее внешний вид:
bumpiness
tile
period
refraction_scale
reflection_scale