Как сделать прозрачный браш в hammer

Обновлено: 08.07.2024

Убер-Олд

Когда я уже было хотел сесть за небольшую предложку для карты, я внезапно для себя заметил детали, которые могут как-либо влиять на карту во время рендера (Я не имею ввиду что это обновление оптимизирует хоть как-то игру для игроков, но оно могло бы хоть чуть чуть, но облегчить время для рендера карты, когда очередное обновление будет готово)


Насколько я успел почитать про рабочую текстурку "NODRAW", посмотреть гайд по базовым текстурам-инструментам, оно позволяет облегчить работу программе, грубо говоря делая текстуру невидимой (соотвественно тратится и меньше времени на рендер карты в программе, так как VRAD просто пропускает эту текстуру, не тратя время на её обработку). И с этим оказалось как-то немного печально, так как на карте не всё пространство за её пределами покрыто NODRAW'ами, а значит программа будет тратить время и на обработку этих текстур (не смотря на то, что в игре они отображаться всё равно не будут), и я не спорю что некоторые текстуры эти являются частью текстур непосредственно на самой карте, но таких, которые находятся прямо за пределами карты тоже достаточно.



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



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


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


Данный браш находится на Вокзале (Ну то есть там, где новоприбывшие в Сити 2 проходят коридор до КПП), его присутствие бессмысленно, у него вроде нет ни триггеров, ничего, то есть это просто браш, который тратит и без того кончающийся лимит на них (лимит брашей).


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


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


Здесь этих лишних брашей целых 3 штуки, они находятся прямо под текстурами, и вроде бы не участвуют совершенно нигде, тратя лимит на браши.


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

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

Ну и всем приведос дос нам в нос, мда, взял я себе огромный отпуск от туториалов, ну а теперь к сути, в этом туториале мы поговорим о том, как сделать: Ландшафт, рисовать второй текстурой поверх первой, физические и статические объекты, спрайты, зависимые фигурки\объекты, и о tool текстурах.

ландшафт

Для этого нам понадобится выделить фигурку и потом нажать на инструмент текстурирования,


нет у меня не windows 10, я просто так изображение изменил

ну и теперь нажимаем на вкладку displacement, и там нажимаем на кнопку create, после этого выбираете на сколько много будет полигонов на фигурке, чем больше тем лучше и качественнее (минимум 1, максимум 4, эти числа не говорят сколько именно будет полигонов), но также на сколько много будет полигонов зависит и размер фигурки, ведь чем меньше фигурка тем меньше полигон, значит так и вместится больше полигонов.

Теперь нажимаем на кнопку paint displacement и тут можно будет поднимать и опускать полигоны.

подинструмент raise/lower

Этот инструмент опускает и поднимает полигоны. ПКМ(правая кнопка мыши) = поднять, ЛКМ(левая кнопка мыши) = опустить. Radius это полигоны в каком радиусе будут подниматься\опускаться, distance это на сколько поднять\опустить полигоны за один клик.

подинструмент raise to

Этот инструмент задаёт полигонам определённую высоту. лкм или пкм тут не важно. Radius это полигоны в каком радиусе будут принимать указанную высоту, distance это на какую высоту будет поднят\опущен полигон(начальная точка высоты определяется от ближней фигурки либо от ближнего полигона).

сглаживание

Нажав на кнопку subdivide вы сгладите фигурку.

блэнд-текстуры, двойные текстуры.

Эта функция работает на принципе полигонов, так что делаем всё тоже самое что и с ландшафтом если у фигурки нет полигонов, о и кстати проверьте у вас выбрана блэнд текстура или обычная, для этого посмотрите на текстуру в поиске текстур, и если она поделена на две части треугольником, то это блэнд текстура.


пример блэнд-текстуры

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

Теперь рисуем, нажимаем на paint alpha и тут вы можете выбирать радиус уже с помощью размеров в панельке brush, и с какой прозрачностью добавлять вторую\первую текстуру(типо имеется ввиду прозрачность второго слоя с первой\второй текстурой). ЛКМ = наносить на слой первую текстуру, ПКМ = наносить на слой вторую текстуру.

А с помощью кнопки invert alpha вы инвертируйте текстуры(типо первая станет второй а вторая первой).

физические и статические объекты.

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

ентити prop_physics

Этот ентити делает из себя модель с физикой и полной подвижностью и т.п, проперти world model это модель, с поиском моделей поговорим позже, проперти skin ну уже понятно номер скина у модели(не у всех моделей есть несколько скинов), проперти explosion damage и explosion radius отвечают за дамаг и радиус дамага от взрыва у ентити ( если стоит ноль то у взрыва будет радиус и дамаг который написан в скриптах взрыва модели),проперти physics impact damage scale отвечает за дамаг при ударном физическом воздействии, проперти mass scale отвечает за массу объекта (если стоит ноль то масса будет браться из скриптов массы у модели), флаг start asleep отвечает за то, будет ли объект при бездействии как он заспавнится просто оставаться в одном положении, если стоит галочка то объект будет оставаться в одном положении как я уже описал, если галочки нет то объект будет физичен со старта карты.

ентити prop_static

А вот этот ентити уже полностью статичен, и его проперти я объяснять не буду, потому что многие из них из ентити prop_physics, и флагов у prop_static нет.

ентити prop_dynamic

Этот ентити полная копия ентити prop_static, но только он уже более гибкий в настройке проперти, и опять же уже даже не многие а почти все проперти такие же как и у prop_physics, есть только один прикольный флаг который я объясню, а именно break on touch, он отвечает за то, что ломается ли объект при нажатии на него.

ентити prop_ragdoll

Этот ентити это труп, опять же почти все флаги и параметры из prop_physics( рэгдолами зовутся все трупы в играх на gold source\go source\source 2\source sdk).

поиск моделей

И так, теперь мы должны нажать на кнопку browse когда выделяем проперти world model, и теперь у нас открывается поиск моделей.


И кстати лучше в фильтре моделей и категорий по группе ставить all mods(все категории и модели).

И вот так нажимая на категории\подкатегории и выбирая модели, можно ставить всякие объекты на карту.

спрайты.

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

Итак, ентити класс у спрайта это env_sprite, проперти sprite name это само изображение, проперти scale это размер спрайта(если ничё не написано в этот проперти, то у спрайта будет оригинальный размер изображения), проперти FX Color (R G B) это цвет спрайта(если стоит белый цвет то у спрайта будет оригинальный цвет изображения), проперти Render FX это эффект у спрайта(типо пульсация или медленное исчезновение), проперти Render mode это как будет отображаться спрайт(типо добавочно или затемняя)

зависимые фигурки и объекты.

Под зависимые я имею ввиду те, которые и падают и исчезают и т.п вместе с родительской фигуркой или объектом, с помощью этого можно что то скреплять между собой. У каждой ентити и фигурки с экшином есть два проперти, parent и name, name это кодовое имя фигурки или ентити(может быть любое), а parent это name фигурки или ентити с которым должен быть скреплён объект. Также нельзя с помощью parent и name скреплять фигурки склеив первую к второй, а вторую к первой, правильно склеить либо первую со второй либо вторую с первой.




tool текстуры.

Tool текстуры это текстуры для какого-то предназначения, все они в группе tools так что введя в фильтр текстур tools перед нами будут все tool текстуры,

tools/toolsnodraw

Про неё я уже говорил, но стоит её тут упомянуть, эта текстура невидима, и если покрыть фигурку или её грань этой текстурой то соответственно она не будет видна.

tools/toolshint

Эта текстура отрезает часть карты, когда игрок её не видит или не пересёк грань или фигурку с этой текстурой, а если видит или пересёк фигурку или грань то отрезанная часть карты появляется. Это очень хорошая оптимизация, ведь игра сама не оптимизирует карту.

tools/toolsskip

Фигурка или её грань покрытые этой текстурой игнорируются компилятором карты(не компилируются).

tools/toolsinvisibleladder

Эта текстура-лестница, т.е фигурка или её грань покрытая этой текстурой становятся лестницей, но только невидимой и без изменяемых параметров.

tools/toolsblocklight

Эта текстура блокирует свет, т.е через фигурку или её грань покрытые этой текстурой не будет проходить свет.

tools/toolsinvisible

Эта текстура полностью копирует tools/toolsnodraw, однако грани фигурок которые прикасаются с гранями фигурки у которой стоит текстура nodraw, тоже стают не видимыми, а у tools/toolsinvisible такого нет(обычно toolsinvisible используют для невидимых стен, потолков и полов)

tools/toolsclip

Тоже самое что и tools/toolsinvisible, но в отличии от invisible блокирует только npc и игроков, всё остальное пропускает.

tools/toolsplayerclip

Тоже самое что и tools/toolsinvisible но блокирует только игрока.

tools/toolsnpcclip

Тоже самое что и tools/toolsinvisible но блокирует только npc.

tools/toolsblock_los

Блокирует обзор npc, т.е через фигурку или её грань покрытые данной текстурой не видят npc.

tools/toolsblockbullets

Блокирует пули и снаряды.

вот и сказочке конец

И вот этот туториал подошёл к концу, [скачать] ну вот ссылка на карту с изменениями по туториалу.

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