Как сделать свое граффити в халф лайф

Обновлено: 07.07.2024

Прошло уже немало времени с момента выхода безусловно шедевральной игры Half-Life 2. За это время мы не один раз заново пережили приключения вечно молчаливого доктора Фримена: пробежались по пыльным улицам Сити 17, заброшенной территории Пустошей, посетили жуткую тюрьму Нова Проспект и множество других незабываемых локаций. И, естественно, многие почувствовали искру модмейкерства в своих сердцах, зовущую, так сказать, творить: изменять любимую игру, создавать свой вариант ее продолжения либо и вовсе что-то совершенно новое. Тем из вас, кто относится к сей категории людей и желает попробовать свои силы в создании модов и посвящается эта статья.

Подготовка.

Так чем же, собственно говоря, мы будем заниматься? Нет, мы не будем перерисовывать оригинальные текстуры или же копаться в характеристиках оружия – оставьте это неблагородное занятие. Мы будем заниматься маппингом.

Что же такое маппинг? В нашем случае маппинг – это создание уровней (карт) под Half-Life 2, а если быть точным – под движок Source. Это вовсе не такое сложное занятие, как может показаться на первый взгляд.

Что же нам необходимо? Прежде всего, наличие лицензионной версии игры Half-Life 2 либо Half-life 2 – Episode One, Steam-аккаунта и доступа в Интернет. Будем исходить из того, что вы уже скачали через систему Steam и обновили (при необходимости) Source SDK (Software Development Kit) – набор инструментов от корпорации Valve для создания однопользовательских и многопользовательских модификаций к своим играм.

Создание карт для Half-Life 2: основы

Запустите SDK. Для начала нужно указать игру, под которую вы собираетесь создавать карты. Это делается в следующем выпадающем меню (рис.1).

Рис.1. Настройка конфигурации.

Ваше меню может отличаться от моего, однако это не страшно. Выберите здесь либо Half-Life 2, либо Half-Life 2: Episode One, в зависимости от того, какая игра у вас установлена.

Что ж, мы настроили конфигурацию SDK. Теперь можно спокойно разглядеть, какие инструменты нам предлагают.

Инструменты у нас находятся в разделе Applications:

Hammer Editor – основной инструмент маппера. В нем создается вся геометрия уровней, расставляются скрипты и прочие радости.
Model Viewer – утилита для просмотра моделей в формате mdl.
Face Poser – программа для создания лицевой анимации.

С этим разобрались. Идем дальше.

Запустите Hammer Editor. Если у вас вдруг появится окошко с ошибкой "the configuration for the game you're trying to edit is invalid or missing", нажимайте "cancel". В разделе Utilities найдите пункт "Reset Game Configurations", запустите его и нажмите "reset". Если это не поможет, проверьте, установлена ли у вас игра, под которую вы собираетесь маппить.

Интерфейс редактора Hammer Editor.

Запустив редактор, создайте новую карту (File>New) и посмотрите на то, с чем нам придется иметь дело. Выглядит удручающе, не правда ли? ;) Сейчас мы разложим все по полочкам.

Создание карт для Half-Life 2: основы

Рис.2. Общий вид редактора Hammer.

Прежде всего, обратите внимание на четыре черных окна. По умолчанию, верхнее левое – окно 3D-проекции, верхнее правое – окно 2D-проекции Top, нижнее левое – 2D-проекции Front и нижнее правое - 2D-проекции Side.

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

Итак, сверху вниз:

Selection Tool (Shift+S) – инструмент выделения. Служит для выделения объектов и последующего манипулирования: перемещения, вращения, а также изменения размера. Выделяются объекты одним кликом (лучше всего в 3D-проекции). Изменение размера или вращение осуществляется путем манипуляций с контрольными точками. Для перемещения достаточно же просто перетянуть объект в окне 2D-проекции.

Magnify (Shift+G) – служит для приближения/удаления камеры в окнах 2D-проекции. Ту же операцию можете проделать простым колесиком мышки.
Camera (Shift+C) – нужна для работы с камерой в 3D-проекции. Для того чтобы увидеть хоть что-то в 3D, вам необходимо установить камеру в любом окне 2D-проекций. Перемещается камера так: с зажатой левой кнопкой – вращение камеры, с зажатой правой – перемещение вверх/вниз, с зажатыми обеими клавишами – приближение/удаление. На мой взгляд, осуществлять перемещение в редакторе лучше всего не с помощью Camera, а с помощью клавиш WASD и стрелок, ибо привычнее.

Entity Tool (Shift+E) – наверное, самый важный инструмент, предназначен для создания энтитей. Энтити – это, в своем большинстве, то, что не является простой брашевой геометрией: npc, источники света, различные фильтры и триггеры, эффекты и звуки, статичные и физические объекты.

Block Tool (Shift+B) – тоже немаловажный инструмент, служит, в основном, для создания брашевой геометрии. Доступные примитивы: arch, block, cylinder, sphere, spike, wedge. Создаются браши в окнах 2D-проекции. При создании браша, когда вы определитесь с его будущими размерами, необходимо нажать кнопку enter, дабы создать его.

Texture application (Shift+A) – чудесная штука, необходима для наложения текстур на объект. Там же можно растягивать текстуры, смещать, вращать и делать некоторые другие вещи, о которых мы поговорим позднее.

Apply current texture (Shift+T) – быстро применяет к выделенному объекту последнюю использованную вами текстуру.

Apply decals (Shift+D) – служит для применения к брашам декалей, т.е. пятен крови, трещин, пулевых отверстий, подтеков, плакатов и т.д. Использовать как декали можно только текстуры из папки "decals".

Apply overlays (Shift+O) – во многом похоже на наложение декалей, однако здесь декали можно растягивать и вращать.

Clipping tool (Shift+X) – служит для "нарезки" брашей. Выделив нужный браш, укажите плоскоть сечения в окнах 2D-проекции, а затем нажмите enter. Часть браша, помеченная красным, будет удалена, белым – останется. Также вы можете разрезать браш на две части. Для этого нажимайте Shift+X до тех пор, пока части по обе стороны от плоскости сечения не станут белыми, затем жмите enter.

Vertex tool (Shift+V) – изменение объекта путем манипуляции с его точками. Ничего сложного в этом нет.

Чтобы увеличить/уменьшить масштаб сетки в 2D-проекциях, используйте клавиши скобок ][

В разделе Tools>Options вы можете настроить некоторые параметры редактора, однако трогать их для начала я бы не советовал.

Если вы внимательно прочитали все вышенаписанное, то вы готовы к созданию своей первой карты под Half-Life 2.

Создаем геометрию.

Вначале создатим что-либо не очень сложное, но и не слишком простое (вроде банальной коробки с четырьмя стенами). Мы создадим две комнаты, соединенные коридором, в одной из которых нас будут ждать несколько метрокопов с автоматами, спрятавшись за ящики и бочки. Давайте приступим!

Создайте новый файл и сразу же сохраните его куда-нибудь под точным названием hello_world.vmf.

Установите камеру в любом окне 2D-проекций. Затем выберите Block Tool и создайте в окнах 2D-проекций параллелепипед размерами 512х512х128 юнитов. Не забудьте нажать enter, дабы подтвердить создание браша. Думаете, комната готова? Ан нет! Чтобы это был не простой блок, а комната с 4 стенами, полом и потолком, необходимо вырезать ее изнутри. Для этого выделите браш, а затем, кликнув на нем правой кнопкой в 2D, выберите пункт Make Hollow, либо нажмите Ctrl+H. В появившемся окошке вам предложат выбрать толщину стен будущей комнаты. Наберите -10 (отрицательное значение создает стены как бы "наружу", а положительное – "внутрь") и нажмите Ok.

Теперь вы получили вашу будущую комнату. Можете залететь в нее и поглядеть на эти чудесные стены :).

Скопируем нашу комнату. Для этого просто перетащим ее в окне 2D-проекции Top с помощью Selection Tool, удерживая нажатой клавишу Shift. Расположим наши комнаты друг напротив друга.

Теперь создадим коридор. Сделаем между комнатами браш шириной 164 и высотой 128 юнитов, а длину отрегулируем так, чтобы он пересекал ТОЛЬКО передние стенки комнат там, где в них будет проход. Очень важно, чтобы этот браш не пересекал пол и потолок, но подходил к ним вплотную. Также браш не должен пересекать задние и боковые стены комнат. Примерно это должно выглядеть вот так (рис.3).

Создание карт для Half-Life 2: основы


Рис.3. Подготовка к операции Carve.

Выделите будущий коридор и примените к нему операцию Carve, выбрав ее из контекстного меню, вызывающегося правым кликом на выделенном браше в окнах 2D-проекции, либо нажав Ctrl+Shift+C. Этим мы как бы "вырежем" проход в нужных нам стенах комнат. Теперь сделаем коридор "пустотелым", применив к нему операцию Make Hollow, с толщиной стенок -10 юнитов. Удалим переднюю и заднюю стенки коридора, выделив их и нажав клавишу Delete. Вы можете заметить, что вместо отдельных стенок выбирается весь коридор целиком. Это потому, что все стенки нашего коридора по умолчанию принадлежат к одной группе. Чтобы работать с каждой стеной по отдельности, разгруппируем наш коридор (Tools>Ungroup или Ctrl+U). Также можно просто включить режим игнорирования групп объектов (Ctrl+W).

Теперь выровняйте все стыки при помощи Selection Tool. Важно, чтобы между стенами не было абсолютно никаких зазоров, так как это приведет к ошибкам. Также желательно, чтобы стены не входили друг в друга, а были подогнаны вплотную. В результате мы должны получить что-то вроде этого (рис.4).

Создание карт для Half-Life 2: основы


Рис.4. Готовый коридор.

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

Теперь весьма интересная часть – покроем наши комнаты и коридор текстурами. Залетите внутрь какой-либо комнаты и нажмите Shift+A, дабы вызвать окошко Face Edit Sheet. Не закрывая этого окошка, удерживая Ctrl, выберите все внутренние стены на нашей карте. Каждая выбранная стена помечается красным цветом. Когда вы выберите все стены, не снимая выделения, нажмите кнопку Browse в окне Face Edit Sheet. Перед вами предстанет список доступных вам текстур. В поле Filter наберите plasterwall, дабы отобрать текстуры обоев. Выберите понравившуюся вам текстуру и нажмите enter. Я лично выбрал plasterwall005c. Не закрывайте окно Face Edit Sheet.

Скорее всего, ваша текстура ляжет не полностью подогнанной под стену. Исправим положение вручную. В том же окне Face Edit Sheet найдите пункт Texture Shift, а под ним два поля – X и Y. Первое смещает текстуру по оси X (по горизонтали, если хотите), а второе – по оси Y (по вертикали). Изменяя значения в этих окошках, выровняйте вашу текстуру.

Вы также можете увеличивать размер вашей текстуры в окошках Texture Scale. Однако учтите, что при увеличении размера текстуры, теряется ее качество.
Теперь самостоятельно покройте текстурами пол и потолок коридора и комнат. Для пола я взял текстуру tilefloor001a, для потолка –
concreteceiling003a.

Поздравляю, вы только что научились самостоятельно накладывать текстуры!

Создаем освещение.

Теперь сделаем источники света для наших комнат.

Для начала создадим сами лампы. Для этого нам придется поставить на карту соответствующие модели ламп. Это делается при помощи энтитей. Выберите на панели инструментов Entity Tool (Shift+E). Найдите в правой части редактора вот эту область (рис.5).

Рис.5. Выбор энтитей.

Под надписью Objects при активном Entity Tool мы можем видеть выпадающее меню со списком всех доступных энтитей. Мы собираемся поставить на карту модель потолочной лампы. Это – статичный объект. Статичные модели делаются энтитей prop_static. Выберите ее и поставьте на середину потолка какой-либо комнаты в 3D-проекции (так удобнее). Наша энтитя пока представляет из себя всего только желтый кубик. Для того чтобы превратить ее в лампу, мы зададим ей соответствующую модель.

Зайдите в свойства нашей энтити, дважды кликнув на ней в 3D-проекции. Появится окно с ее свойствами. Нам необходим пункт World Model. Выберите его и нажмите кнопку Browse. Откроется Model Browser. В окошке Filter наберите lamp, затем выберите модель лампы props_wasteland\prison_lamp001a.mdl. Жмите Ок, а затем Apply в окне настройки энтити, и вуаля – модель вставлена на карту! Выровняйте ее при необходимости.

Лампа готова, однако светить она пока не будет. Добавим освещение. За него у нас отвечает энтитя light. Поставьте ее на карту, прямо под моделью лампы. Зайдите в свойства light и найдите пункт Brightness. Это поле отвечает за цвет и яркость света. Первые три значения устанавливают цвет в формате RGB, а последнее – яркость источника. Установим первые три значения цвета как 254 255 223, а последнее, то бишь яркость – в 400. Теперь перейдем к пункту Maximum Distance и установим его значение в 500.

Лампа создана и готова светить. Выберите, удерживая Ctrl, модель лампы и энтитю света и скопируйте их в проекции Top во вторую комнату. Освещение готово.

Раскидываем физические объекты.

Теперь давайте создадим обещанные бочки и ящики. Это объекты физические, за которые отвечает энтитя prop_physics. Создайте где-нибудь на полу такую энтитю. Зайдите в ее свойства, пункт World Model, и нажмите Browse. В поле Filter наберите oildrum. Вы увидите модели бочек: простой – oildrum001, и взрывчатой – oildrum001_explosive. Выберите модель простой бочки и примените ее к энтити. Выровняйте свежесозданную бочку в проекции Side, приблизив ее к полу, иначе при запуске карты она упадет и стукнется, что не есть гут. Скопируйте нашу бочку раз 5, чтобы получить укрытие для солдат. Укрепим его ящиками. Ящики создаются так же, как и бочки, модель ящика - wood_crate002a, например. Расставьте все объекты в приятном вам порядке. Можете также добавить другие физические либо статические модели. Имейте в виду, что не любая модель может быть как физической, так и статической. Чтобы посмотреть, какой может быть модель на карте, в окне Model Browser зайдите во вкладку Info. Галочками будет отмечен возможный тип модели.

Используем декали.

За декали, как вы помните, у нас отвечает инструмент Apply decals (Shift+D). Откроем Texture Application (как вы помните, Shift+A либо соответствующя кнопка на левой панели инструментов). Нажмем Browse и в открывшемся окне в поле Filter наберем decals. Вы увидите доступные вам декали – следы крови, трещины, граффити и т.д. Выберите понравившуюся декаль (к примеру, какое-нибудь граффити) и нажмите enter. Закройте окно Texture Application. Теперь выберите инструмент Apply Decals (Shift+D). Кликните на место, где вы хотите декаль, в окне 3D-проекции, чтобы применить ее. Адски красиво, правда? ;) Вы можете украсить ваши комнаты другими декалями по вкусу.

Создаем NPC.

Сейчас мы добавим несколько метрокопов, чтобы Фримену не было скучно. Ничего сложного в добавлении NPC нет. За метрокопов у нас отвечает энтитя npc_metropolice. Добавьте ее куда-либо на пол в окне 3D-проекции - и метрокоп твердо встанет на пол, готовый перестрелять все то, что его черной душе придется не по вкусу. Хотя с этим у него могут возникнуть проблемы, так как у только что созданного метрокопа в качестве оружия по умолчанию стоит пистолет. Давайте вооружим его чудом прогресса – полуавтоматической пушкой, в простонародье именуемой SMG. Для этого, зайдя в свойства нашего полицая, в пункте Weapons выберите SMG1. Если вы хотите, чтобы метрокоп выпускал мэнхэков, найдите в его свойствах пункт Number of Manhacks и измените его, к примеру, на 2. Создайте несколько метрокопов и поставьте их за нашим импровизированным укрытием.

Теперь создадим место старта игрока. За это у нас отвечает энтитя info_player_start. Поставьте ОДНУ такую энтитю на нашей карте.
Проследите, чтобы она не ушла в пол, так как игрок потом попросту застрянет в нем.

Важно заметить, что в игре Фримен появляется на карте без своего знаменитого костюма. Сделаем ему костюм энтитей item_suit, и прямо в редакторе "натянем" его на энтитю info_player_start, чтобы игрок автоматически одел его в начале игры.

Дадим игроку оружие. Для примера, возьмем Магнум. Создадим энтитю Магнума weapon_357 и положим ее рядом с местом старта игрока. Обеспечим игрока коробкой с патронами при помощи энтити item_ammo_357. Теперь Фримену ничего не страшно.

Компиляция.

Наконец-то карта готова к компиляции! Нажмите F9, чтобы вызвать соответствующее меню. Установите все параметры в Normal. Уберите галочку с пунктов HDR и Don't run the game after compiling, если они там есть. Нажимайте Ок – и, после непродолжительной компиляции, ваша карта запустится в игре. Ура!

Только что вы научились создавать несложные уровни для Half-Life 2, размещать статичные и физические объекты, освещение и противников. Думаю, на этом вы не остановитесь. Маппинг – весьма увлекательный процесс, тем более, что движок Source позволяет создать практически все, что вы можете вообразить. Конечно, с его продвинутой (местами дальше некуда;) физикой, в нем присутствует немало своих нюансов, но ведь трудности вас не страшат, не так ли?

Декали в Counter-Strike 1.6

В Counter-Strike 1.6 есть функция, позволяющая рисовать на стенах декали (граффити), нажав для этого забинченную по умолчанию клавишу.

Далее я расскажу, что такое декаль, где ее можно найти и как установить на сервер с игрой.

Что такое декали

Декалями называются граффити (официально – логотипы), которые можно наносить на любую поверхность в игре. Обычно для этого предстоит вплотную подойти к стене, двери или окну и нажать клавишу T, после чего воспроизведется соответствующий звук нанесения граффити. Декали по умолчанию видят все другие игроки, если они не отключены у них через конфиг.

Поиск декалей в меню с настройками Counter-Strike 1.6

Изначально логотип связан с Half-Life, что, конечно, устраивает далеко не всех пользователей. Присутствующие в настройках другие варианты тоже не всегда подходят. Вместо них можно найти логотип в интернете или даже нарисовать его самому, после чего заменить файл в корневой папке и придать себе индивидуальности при игре на сервере.

Особенности использования логотипов

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

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

Добавленный цветной логотип может не отображаться в меню с настройками, что связано с параметрами миниатюр, но при этом на поверхности он наносится нормально.

Вы не можете использовать несколько разноцветных граффити одновременно (если речь не идет о плагине на сервере). Для внесения изменений файл всегда придется заменять.

На некоторых серверах отключена функция нанесения логотипа, поэтому не удивляйтесь, что где-то нажатие по клавише T ничего не даст.

‎Вы, наверное, заметили, что выше речь шла преимущественно о цветных граффити, но есть еще и черно-белые (к ним относится другое правило установки). Кроме того, в CS 1.6 доступна настройка цвета при нанесении декали. Ниже я подробно расскажу о разнице в инсталляции логотипов и о том, где их найти.

Как найти логотип для КС 1.6

Если у вас появилось желание изменить стандартный логотип в Контре, можно пойти двумя путями: скачать готовый пак/одно граффити в интернете либо создать его самому, используя специализированные графические редакторы.

Способ 1: Поиск декалей в сети

Самый простой вариант – найти граффити в интернете. Есть множество проверенных сайтов, занимающихся распространением целых паков с логотипами. На них вы можете найти как черно-белые варианты для быстрой настройки в самой игре, так и цветные, если речь идет о каком-то сложном рисунке.

Скачивание граффити Counter-Strike 1.6 с проверенного сайта

После получения архива с файлами останется только установить их, о чем пойдет речь в следующем разделе статьи. Главное при использовании этого метода – обращать внимание на источник и не скачивать картинки с первого попавшегося веб-ресурса. Это позволит обезопасить ПК от заражения вирусами и нарушения целостности файлов игры.

Способ 2: Самостоятельное создание логотипа

Более сложный метод – самостоятельное создание логотипа, для чего понадобится использовать специальное ПО. Я не буду давать детальную инструкцию того, как это делается, а опишу лишь общие принципы и правила, чтобы упростить вам задачу.

Самостоятельное создание декалей для Counter-Strike 1.6

Для создания цветного логотипа понадобится программа, поддерживающая формат WAD для цветных граффити и BMP – для черно-белых.

При создании черно-белого граффити обязательно проверяйте, чтобы изображение было вообще без цвета.

Оптимальный размер логотипа – 64 на 64 пикселя.

Для цветного граффити используйте название tempdecal.wad и при установке замените оригинальный файл.

Что касается выбора подходящего софта, то здесь вам пригодится поисковик, чтобы найти именно тот графический редактор, который удовлетворит потребности. Я бы порекомендовал присмотреться ко встроенному в Game Maker редактору, поскольку он максимально подходит для игр и поддерживает формат WAD. Называется этот редактор Wally. В нем можно без проблем создать бесцветное изображение и сохранить его как файл.

Игровой хостинг

Установка декали в игру

В установке пользовательского граффити нет ничего сложного. Если речь идет о цветном логотипе, его необходимо заменить при копировании, удалив тем самым оригинальный файл под названием tempdecal.wad, который находится в корне папки с игрой.

Замена файла для установки цветного декаля в Counter-Strike 1.6

Все черно-белые логотипы вы можете сразу поместить в расположение steam\steamapps\common\Half-Life\cstrike\logos и убедиться, что все изображения корректно отображаются в настройках игры, для них можно настроить цвет и приступить к рисованию на сервере.

Перемещение черно-белых декалей в папку с игрой Counter-Strike 1.6

Установка декалей на сервер

Скачивание плагина для использования граффити на сервере Counter-Strike 1.6

Если вы являетесь обладателем собственного сервера и хотите добавить разные логотипы, чтобы пользователи выбирали их через текстовое меню, используйте для этого плагин под названием Graffiti Plugin. При этом на сервер обязательно должен быть добавлен AmxModX. При скачивании архива обязательно ознакомьтесь с тем, куда необходимо помещать файлы плагина, чтобы он работал корректно.
После установки игроки смогут ввести в чате команду /graffiti и посмотреть список доступных граффити. После выбора одного из них рисование осуществляется точно так же, как и в стандартном варианте – нажатием по клавише T.

Нет ничего сложного в том, чтобы найти декали и установить их в игру или даже создать граффити самостоятельно, прибегнув к графическим редакторам. Такие визуальные элементы – отличное средство индивидуализации на сервере или просто повод чаще рисовать граффити.

Некоторые текстуры нельзя наносить на объект вместе с другими, так как это вызовет ошибку, а посему крайне необходимо знать о совместимости разных видов текстур. Есть также специальные текстуры (всего их 7), которые применяются для создания неба, брашевых триггеров, ограничительных поверхностей и т.д.

Типы текстур:

ЧАСТЬ 1.

1. Обычные (простые) текстуры

Имена простых текстур начинаются с английских букв: a-z, A-Z или цифр от 0 до 9.

Примеры простых текстур:

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

2. Накладывающиеся в случайном порядке текстуры

Пример серии из 2-х накладывающихся в случайном порядке текстур:

Из примера выше видно, что текстуры из 1-ой серии называются так: –0название, –1название, –2название и т.п.

Требование к подобным текстурам
Накладывающиеся в случайном порядке текстуры должны, как говорят, тайлиться (от английского tile — черепица), то есть хорошо подходить друг к другу. И всякая текстура должна являться продолжением предудущей и всех соседних текстур. Получается, что создавая подобные текстуры, необходимо добиваться плавности перехода между краями текстур, то есть не должно быть заметно швов.

3. Анимированные текстуры

Пример серии анимированных текстур:

Примеры анимированных текстур

Текстуры начинающиеся с цифр от +0 до +9 в игре отображаются друг за другом, создавая таким образом анимацию. К примеру, мониторы компьютеров на cs_militia. Другой пример: водопад, где анимация создаёт иллюзию движения воды. В общем и целом, вещь достаточно нужная.

Требование к таким текстурам
Анимированные текстуры должны подходить друг к другу, то есть иметь правильную последовательность анимации.

4. Переключаемые

Имена переключаемых текстур начинаются с +А и цифр: +0 до +9.

Пример серии переключаемых текстур:

Единственное, чем отличается переключаемая текстура от анимированной, является нахождение в серии одной текстуры, имя которой начинается с +А (смотрите картинку выше).

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

5. Светящиеся текстуры

Примеры светящихся текстур:

Текстуры с именем, начинающимся с тильды, излучают свет, только если они записаны в спец файле с расширением *.RAD. Вообще говоря, можно сделать светящейся любую текстуру (пусть даже и без тильды), главное: прописать её имя в *.RAD файл. Этот файл подключается при компиляции и используется при рассчёте освещённости.

Изначально программы-компиляторы ищут данные о светящихся текстурах в файлах lights.rad или имя_карты.rad, но, по идее, можно назвать *.RAD файл как хочешь, только при этом придётся указать имя этого файла в параметрах компиляторов.

Подробно об использовании светящихся текстур и создании *.RAD файла мы рассказываем в отдельном материале этой главы.

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

А зачем тогда светящиеся текстуры?
В самом деле, многие из вас спросят: для чего задействовать светящиеся текстуры, если значительно увеличивается время компиляции, да, ещё надо тратить драгоценное время на создание собственного *.RAD файла?

Разница между использованием светящихся текстур (слева) и объекта light

Как видно из картинки, светящаяся текстура делает лампу как бы в самом деле включённой. А вот если использовать простой источник света — энтити-объект light, то стороны лампы останутся тёмными.

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

Как это работает: превратите лампу в какой-нибудь брашевый энтити-объект: func_wall, func_illusionary и т.п. и выставьте параметр Minimum light level (бывает встречается _minlight) в значение отличное от нуля, к примеру: 0.7. Теперь лампа будет светиться, хоть и не излучать свет. Около лампы необходимо будет создать простой источник света light или light_spot, так как, повторимся, сама она свет не испускает.

Примечание! Чтобы использовать выше описанный метод, у вас должна быть свежая версия *.FGD файла — 0.7.7 и выше) и утилиты Зонера 2.5.3 и выше.

6. Текстуры с маской или прозрачные текстуры

Примеры текстур с маской (частично прозрачных):

Примеры текстур с маской (частично прозрачных)

Эти текстуры называются текстурами с маской, так как синие части в игре будут абсолютно прозрачными. Чтобы синие части таких текстур стали прозрачными, нужно браш превратить в энтити: func_wall, func_illusionary, func_breakable и т.п. Далее нужно выставить следующие параметры отображения:

Возможные проблемы
Часто при изготовлении своими силами подобных текстур появляются проблемы из-за неправильной цветовой гаммы. Будущие прозрачные места должны быть чистого синего цвета в формате R=0 G=0 B=255. Также рекомендуется текстурировать объект со всех сторон 1-ой и той же текстурой. Но вобщем-то разрешается раскрасить один объект различными текстурами с маской и еще SKY-текстурой.

7. Текстура воды, жидкости

Примеры текстур жидкостей:

Примеры текстур жидкостей

Важно! Если вы раскрашиваете некий энтити-объект текстурой воды (жидкости), то раскрашивать нужно ВСЕ СТОРОНЫ объекта. В противном случае появится ошибка.

Можно сказать, в 99 процентах случаев текстура воды наносится на объект func_water, который собственно и используются для создания жидкостей. Но можно текстуру жидкости наложить и на простой браш. В этом случае движок Half-Life автоматом сделает этот браш водой. Но! Подобная вода не будет двигаться, у нее не будет волн и она не будет прозрачной — и вообще это уже не вода :-) Лучше жидкость делать объектом func_water.

Прозрачность жидкости выставляется в параметрах отображения энтити-объекта func_water:

    Render Mode: Texture
    FX Amount: от 50 до 150 (оптимально)

Возможные проблемы
Важно! Непременно все стороны объекта должны быть закрашены в текстуру жидкости причем в 1 и ту же! Запрещается смешивать простые текстуры с текстурой жидкости. Это обязательно вызывает ошибку при компиляции уровня.

8. Scroll-текстуры (двигающиеся, скроллящиеся)

Примеры двигающихся текстур:

Примеры двигающихся текстур

Всякую простую текстуру можно сделать двигающейся, для этого необходимо просто приписать в начале слово scroll. Первую текстуру (на картинке слева) можно использовать для создания иллюзии движущейся воды, а вторую — для создания конвейера.

Помните, что сама по себе двигающаяся текстура не толкает игрока, а просто создает иллюзию движения. Чтобы конвейер в самом деле толкал игрока нужно создать соответствующую энтити.

Возможные трудности
Нужно опытным путем подбирать правильность нанесения движущейся текстуры, потому как она может скроллиться, к примеру, против движения конвейера или под углом 90 градусов. Раскрасте конвейер, откомпилируйте уровень и проверьте — совпадает ли движение текстуры с направлением толкания игрока.

ЧАСТЬ 2.

Специальные текстуры

  • AAAtrigger
  • SKY
  • CLIP
  • ORIGIN
  • HINT / SKIP
  • NULL

Следует запомнить, что текстурами CLIP и ORIGIN нужно ПОЛНОСТЬЮ расскрашивать объект. Эти спец текстуры не допускают наличия на объекте других текстур вместе с ними. Все данные специальные текстуры в игре прозрачны и используются в строго определённых случаях.

Помните также, что внешний вид специальных текстур, может различаться. Здесь нет ничего страшного.
Важно, чтобы текстура имела именно такое спец название. То есть если текстура названа SKY, но она не такая, как представлена здесь, то можено не боясь её использовать, ошибки не будет. Это же относится и других спец текстур. Можно даже самостоятельно нарисовать картинки для спец текстур и потом пользоваться ими при создании уровня, нужно лишь дать им точно такие же специальные, служебные названия.

9. AAAtrigger — текстура для триггеров

Используется для создания триггеров и других брашевых энтитей прозрачных в игре.

Ниже вы можете видеть, как выглядит эта текстура (может быть другое изображение при использовании другого *.wad файла):

Эта текстура расположена в главном WAD-файле HL — halflife.wad в директории Valve. Используется для создания триггеров и других прозрачных в игре брашевых энтитей. Примеры объектов: trigger_once, trigger_multiple, trigger_hurt, trigger_push, env_bubbles, func_buyzone, func_bomb_target, func_ladder и др. Не советуется расскрашивать простые объекты этой текстурой, так как это может привести к ошибке.

Возможные проблемы
Помните, что расскаршивание этой текстурой простых брашей не сделает их прозрачнымы. Прозрачными будут лишь определённые (перечисленные выше) энтити.

10. SKY — текстура неба.

Используется при создании неба. Браши, окрашенные текстурой SKY-текстурами (они называются SKY-брашами), создаются вокруг карты, образуя некий колпак. При компиляции программой-компилятором HLRAD.EXE при помощи одного объекта light_environment со SKY-брашей распространяется свет.

Эта текстура расположена в главном WAD-файле HL — halflife.wad в директории Valve. Важно! Все стороны брашей, составляющих небо, должны быть окрашены специальной текстурой SKY. Если в уровне есть точечный объект light_environment (солнышко), то данная текстура будет излучать свет. Именно таким образом создается общее освещение в уровне.

11. CLIP — ограничение передвижения игроков

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

Эта текстура расположена в главном WAD-файле HL — halflife.wad в директории Valve.

В Учебнике находится подробный материал о применении CLIP-брашей (смотрите главу VII).

Возможные проблемы
CLIP-браш должен быть расскрашен спец текстурой CLIP совершенно со всех сторон, иначе появится ошибка при компиляции уровня.

12. ORIGIN — определяет размещение оси вращаюшихся объектов

Используется для определения оси вращающихся объектов (func_door_rotating, func_vehicle и пр.).

Эта текстура расположена в главном WAD-файле HL — halflife.wad в директории Valve. Этой спец текстурой окрашивается ORIGIN-браш — простой браш, но расскрашенный со всех сторон спец текстурой ORIGIN. ORIGIN-браш своим центром определяет точку, через которую проходит ось вращения энтитей: вращающихся дверей, вентиляторов, платформ, маятников, поезда, автомобиля, вращающейся платформы. В целом, если энтити хоть как-то вращается, то он без сомнения должен иметь один ORIGIN-браш.

ORIGIN-браш должен входить в состав энтити, то есть быть его неотделимой частью. Сначала создается браш (дверь, машина и пр.), потом создается ORIGIN-браш, своим центром определяющий ось вращения, и далее всё вместе: и браш, и ORIGIN-браш, превращаются в энтити, к примеру, func_rotating (вентилятор). Такой же порядок действий необходимо соблюдать при создании любого вращающегося объекта.

Предостережение
ORIGIN-браш должен быть раскрашен специальной текстурой ORIGIN совершенно со всех сторон! Абсолютно не допускается наносить какую-либо другую текстуру вместе с ORIGIN. Такой браш должен всенепременно входить в состав энтити, а не состоять отдельно. Если в составе одного вращающегося энтити будет сразу 2 или более ORIGIN-брашей, появится ошибка. Ось вращения для всякого вращающегося энтити-объекта должна быть только 1. Форма и размер ORIGIN-браша не важны, главное, расположение его центра.

13. HINT/SKIP — оптимизация карты, повышение FPS

Ниже вы можете видеть изображения текстур HINT/SKIP (могут быть другими при использовании других *.wad файлов):

В игре HINT-браши совершенно прозрачны и через них можно безпроблемно проходить. Не советуем расскрашивать обычные объекты этими текстурами!

Возможные проблемы
Трудно понять принцип действия HINT/SKIP-брашей, ещё труднее грамотно разместить их в уровне. Неправильное применение HINT/SKIP-брашей может вызвать обратный эффект — повышение параметра R_Speeds в уровне. Помните, что браш, закрашенный данными текстурами, не может быть окрашен какой-либо другой текстурой.

14. NULL — оптимизация карты, повышение FPS

Наносится на стороны объектов, которые игрок не видит в игре, тем самым уменьшает количество отрисовываемых полигонов и повышает FPS (количество кадров в секунду).

Ниже вы можете видеть изображение текстуры (может быть другое при использовании других *.wad файлов):

Пользователь Twitter под ником Gabe Follower обратил внимание на то, что Valve слегка обновила интерфейс Half-Life 2 в свежем бета-билде. Изменения довольно предсказуемы и направлены на удобное управление посредством Steam Deck.

В частности, пункты меню, текст и превью на экране выбора главы стали больше. Активировать бету можно в настройках игры в Steam, выбрав соответствующий раздел и добавив команду -gamepadui.

Отметим, что это не первое за долгое время обновление классического шутера, которому в ноябре прошлого года стукнуло 17 лет. Тогда же в октябре 2021 года Valve исправила кое-какие баги и добавила поддержку ультрашироких мониторов.

Также вчера компания сообщила о том, что начнёт рассылать письма всем, кто оформил предзаказ на Steam Deck, 25 декабря. На покупку будет отведено всего три дня, по истечению которых консоль будет предложено следующему человеку, вставшему в очередь.

Читайте также: