Найти тему
Dligr

Как сделать комнату с предметами и освещением на Hammer

Оглавление

В этом руководстве я расскажу, как создать комнату с освещением и интерьером на Hammer.

В прошлом руководстве я уже рассказал о создании базовой геометрии и текстурировании комнат. Это руководство я начну с освещения.

Создание освещения

Итак, для начала необходимо создать энтити света (Как создавать энтити я рассказал в прошлом руководстве). Для это в поиск введите "light" (Без кавычек). Как вы видите, вышло множество различных энтити света. Я расскажу о нескольких основных:

  • light - обычный свет, испускает свет во всех направлениях.
  • light_environment - нужен для создания дневного света. Свет идёт от скайбокса (О том, что такое скайбокс я расскажу в одном из следующих руководств)
  • light_spot - испускает свет в определённом направлении (Как прожектор)

В этом руководстве мы будем использовать простой свет, как от лампочки, поэтому выберите просто light.

Утечка - тип ошибки, которая заключается в том, Hammer при компиляции не может определить, где находится наружная часть карты, а где внутренняя. Из-за этого Hammer не может правильно обрезать геометрию карты (Об этом я расскажу в одном из следующих руководств). Hammer определяет внутреннюю и внешнюю стороны по тому, где находятся энтити. Если энтити вне карты - он определяет и комнату, и наружное пространство как внутреннюю сторону и поэтому выдаёт ошибку. То же самое происходит если на карте есть дыры.

Изменение размера сетки. Слева - уменьшение, справа - увеличение.
Изменение размера сетки. Слева - уменьшение, справа - увеличение.

Что ж, теперь, когда свет находится примерно посередине комнаты, можно его настроить. Для этого подлетите к энтите света камерой и нажмите на неё дважды. Также можно нажать правой кнопкой в любом 2D виде и выбрать Properties.

Если вы всё сделали правильно, то откроется меню с параметрами света. Вам понадобятся только 2: Brightness и Constant.

Поле Brightness делится на 4 переменные. Первые 3 - RGB, т.е. Красный, зелёный и синий. Из настроить можно вручную или при помощи кнопки рядом. 4-ое значение - настройка яркости. Для многих комнат (Даже больших) достаточно 150-200 единиц.

Теперь переходим к полю Constant. Его стоит задать в зависимости от размера вышей комнаты. Для комнаты, как на фото достаточно примерно 3000 единиц. Чем больше комната - тем больше должно быть значение. С этим значением можно поэкспериментировать для создания хорошего освещения.

-2

Добавление предметов

Все предметы на карте - энтити. Введите в поиск по меню энтити "prop_" (Без кавычек). Выйдет множество энтити, однако необходимы сейчас только три:

prop_static - неподвижная модель, не может менять параметры во время игры

prop_dynamix - подвижная модель, может подвинута только посредством func_train и некоторых других энтити (О них речь пойдёт в следующих руководствах). Может менять параметры во время игры.

prop_physics - подвижная модель, имитирует физику (может двигать при помощи толчка со стороны игрока или предмета). Может менять параметры во время игры.

-3

Что ж, давайте поставим пару prop_static на карту. Теперь выберите один из них и перейдите в параметры двойным кликом мыши в 3D виде. Теперь выберите поле World Model и справа нажмите кнопку "Browse..." Выйдет меню моделей. Снизу будет надпись Filter, там вы можете ввести любое ключевое слово для поиска модели. Например, введите desk (Письменный стол) и выберите любую понравившуюся модель. Нажмите OK и выйдите из меню параметров. Выровняйте модель, чтобы она стояла ровно на полу. Таким же образом сделайте лампу над энтитей света (Ключевое слово - light или lamp).

Примечание: Будьте осторожны, не все модели подходят ко всем типам пропов. Чтобы узнать, какие типы пропов поддерживает та или иная модель - перейдите во вкладку Info в меню поиска моделей. Если тип пропа не поддерживается, модель просто не заспавнится на скомпилированной карте.

Как видно на картинке, эта модель поддерживает только prop_dynamic.
Как видно на картинке, эта модель поддерживает только prop_dynamic.

Текстурирование

Для продвинутого текстурирования выберите в левой панели инструмент, похожий на разноцветный кубик. Выйдет меню, в котором выберите необходимую текстуру (Справа будет кнопка "Browse..."). Далее, зажав Ctrl, выберите стороны брашей, которые хотите покрыть текстурой. Нажмите Apply.

Если же текстура смещена (Как показано на картинке ниже), снова откройте меню текстурирования (Перед этим выделите текстуры, которые нужно выровнять).

Демонстрация смещённой текстуры
Демонстрация смещённой текстуры

Теперь обратите внимание на настройку Texture Shift. X отвечает за смещение текстуры по горизонтали (Вправо-влево), а Y за смещение по вертикали (Вверх-вниз). Скорее всего, в данном случае придётся подбирать значение, однако чаще всего подходят числа, кратные 32 (64, 96, 128, 256, и т.д.). Также можно использовать стрелки.

Есть метод, позволяющий автоматизировать процесс, однако от подходит чаще всего для стен. Для наиболее удобного использования стена должна быть высотой в 128 юнитов. Чтобы узнать высоту стены выберите её в 2D виде сбоку или спереди (4 или 3 окно) и посмотрите на значение сбоку от стены. Если оно равно 128 - используйте этот метод. Для этого:

  1. Откройте меню текстурирования, выделив нужные стороны стен;
  2. Под надписью "Justify" нажмите Fit;
  3. Далее найдите Texture Scale по X и Y. Оба значения выставьте на 0.25.
  4. Готово! Текстура стены выровнена.

Итог и компиляция

Скомпилируйте карту (О компиляции я рассказал в прошлом руководстве). Если выходит ошибка - скорее всего, одна из энтити находится за пределами карты, либо где-то на карте дыра. Этот тип ошибки называется утечка. Чтобы её устранить необходимо перенести внутрь/удалить энтити за пределами карты или удалить дыру (В зависимости от ошибки). Об устранении утечек на более крупных картах я расскажу в одном из следующих руководств.

Утечка - тип ошибки, которая заключается в том, Hammer при компиляции не может определить, где находится наружная часть карты, а где внутренняя. Из-за этого Hammer не может правильно обрезать геометрию карты (Об этом я расскажу в одном из следующих руководств). Hammer определяет внутреннюю и внешнюю стороны по тому, где находятся энтити. Если энтити вне карты - он определяет и комнату, и наружное пространство как внутреннюю сторону и поэтому выдаёт ошибку. То же самое происходит если на карте есть дыры.

Что ж, подведём итог. Если разместить на карте достаточно моделей, можно создать примерно такую же комнату, как показано ниже. Однако, всё зависит от уровня мастерства.

В следующем руководстве я расскажу о всех инструментах в левой панели. Не забудьте поставить лайк и подписаться, если хотите ещё руководства по Hammer!

Возможный результат
Возможный результат