Создание воды на карте
Вода — Очень сложный шейдер в движке Source. Вода может быть: анимированная, отражающая, мутная, искажающая отражение и использует бамп, поэтому нужно знать определенные правила и ограничения по размещению воды, и какую воду использовать в разных случаях.

Введение
Чтобы вода правильно работала, имеется несколько правил по её размещению и использованию на карте:

Поверхность воды никогда не должна склоняться по оси Z, она всегда должна быть параллельна линии горизонта на карте.

При создании воды нужно покрасить в текстуру воды только верх браша, который будет использоваться в качестве воды на карте. Боковые стороны и низ браша воды не окрашивается в текстуру воды, эти стороны должны быть окрашены в текстуру: tools\toolsnodraw

Entity под названием: water_lod_control — Контролирует дистанцию мутной воды. Например, игрок на вашей карте заплыл очень далеко и чем дальше игрок заплывёт, тем мутнее будет вода.

Entity под названием: env_cubemap — Должна присутствовать над брашем воды, чтобы правильно отображать на аппаратных средствах: sub-DX9

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

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

1. Создаём браш с текстурой: tools/toolsnodraw:



2. Далее открываем обозреватель текстур, для этого нажмите на иконку:

Перед вами появится вот такое окно:



В этом окне нажмите кнопку: Browse...



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



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

Теперь воспользуемся фильтром и отфильтруем нужные нам текстуры для более быстрого нахождения.

Фильтр текстур находится снизу:



В поле Filter введите слово: water — Далее фильтр отобразит все текстуры в которых присутствует слово: water. Смотрим результат:



Мы написали слово water в поле фильтра и теперь нам показывает только текстуры воды или все те текстуры, в которых присутствует слово: water

Далее выбираем самую первую текстуру или же текстуру под названием: dev/dev_water2. Кликните по текстуре дважды левой клавишей мышки, чтобы выбрать её.

После выбора текстуры вас перекинет в предыдущее окошко, но уже с выбранной нами текстурой воды:



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



Теперь осталось сделать форму для браша воды. Вот здесь очень внимательно! Вода не будет работать без стен и пола вокруг неё.
Представим себе ситуацию, у вас в руках стакан с водой. Если стакан исчезнет, то вы не сможете удержать воду в руке, правильно? Вода разольётся на пол и обрызгает не только вас, но и всё, что находится рядом с вами.

Вы не поверите, но именно по этому принципу разработчики сделали воду в Source играх, но вот только разливаться вода по карте не будет, она не будет отображаться.
По этому, чтобы вода отображалась нормально и в неё смог прыгнуть игрок и плавать по этому брашу воду, нам нужно вокруг этого браша создать стены и пол, смотрите, что нужно сделать:



Теперь нам осталось покрасить браши и добавить пол + стены с потолком для тестирования и завершения карты.

Ещё раз нажимаем на вот этот инструмент: и докрашиваем браши вокруг воды, но только со стороны глаз игрока, то есть только сверху и сбоку. Смотрим:



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





Не забываем про точку появления игрока, создаём в любом месте карты entity под названием: info_player_start



Всё готово! Теперь давайте запустим Garry's Mod и убедимся, что вода работает правильно.
Проверка отображения воды на карте




Как видим всё работает, а если не работает значит вы где-то допустили ошибку. Пробегитесь по пунктам ещё раз, перепроверьте себя и исправьте все свои ошибки.

Когда ошибки будут исправлены вода будет отображаться на карте.
Создание env_cubeman и привязка к брашу с водой
Для создания env_cubemap выберите из списка инструментов слева — Entity Tool:

Затем в списке Entity нужно найти: env_cubemap



Теперь создаём entity под названием: env_cubemap и размещаем его строго над брашем воды. Entity под названием env_cubemap всегда должно располагаться над брашем воды.



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

Entity под названием env_cubemap не содержит в себе большое количество настроек и по этому это entity очень легко настраивать.

Перед вами откроется вот такое окошко:



В этом окошке вам понадобится настроить только 1 параметр — Brush faces. Этот параметр отвечает за лицевую сторону браша воды, то есть за ту сторону, которую видит игрок находясь на карте с водой.

Для настройки параметра Brush faces:

1. Нажмите кнопочку: Pick... — Ваш курсор мышки изменится на иконку Пипетки.
2. Затем кликните на лицевую сторону браша воды.
3. Сохраните изменения нажав кнопку: Применить.

Смотрим, что нужно сделать:



После настройки env_cubemap — Вы увидите линию, которая будет отвечать за соединение env_cubemap с брашем воды, к которому вы привязали env_cubemap.

Вы так же можете использовать несколько env_cubemap, если у вас на карте вода находится в нескольких местах.
Скачать заготовку карты Вернуться в каталог статей