Как создать декаль cs go
Описание:
Позволяет администраторам размещать какие-либо логотипы на карте, которые определены в конфигурации и сохранены там постоянно, для каждой карты.
Авторы: Berni, Stingbyte
Структура конфигурации:
map-decals.cfg: ваши добавленные логотипы здесь
maps/: специфические конфигурации карт для сохранения позиций логотипов
Команды:
sm_paintdecal <decalname | decal_id> - нарисовать логотип на стене, будет направлен туда, где вы сейчас находитесь
Флаги требуются: Custom3
sm_removedecal <aim | all | id | name | last> - удаление логотипа, изменения вступают в силу после смены карты (либо операция с перезагрузкой конфигурационного файла).
Флаги требуются: Root
sm_savedecal <aim | all | id | name | last> - сохранить позицию логотипа в специальном конфигурационном файле карты.
Флаги требуются: Root
sm_listdecal <aim | all | id | last | map | name | saved> - список логотипов
Флаги требуются: Custom3
sm_aimpos - отображает текущую позицию цели
Флаги требуются: Custom3
sm_decalmenu - меню плагина Map Decals для администраторов
Флаги требуются: Custom3
Обычные декали
Самый популярный тип декалей - это декали, которые выглядят как нанесенное через трафарет изображение. Ниже вы можете видеть исходное изображение, его альфа-канал и финальный вид в игре:
Параметры материала
Настройки материала для декали выглядят примерно так:
$decal <bool> Помечает материал как декаль. Без этой метки декаль нельзя будет прикрепить к объекту и спроецировать на него. $decalscale <float> Параметр, который отвечает за разрешение декали. По умолчанию 1 пиксель изображения принимается за один дюйм в игре. Если исходная текстура декали 128 пикселей по ширине, то ее ширина в игре при настройке $decalscale 0.1 будет 12.8 дюймов в игре.
$translucent <bool> См. $translucent . $modelmaterial <material> Материал VertexLitGeneric , который будет применяться к моделям. $decalfadeduration <float> Время исчезновения декали. Требует $vertexcolor . $decalfadetime <float> Задержка перед исчезновением декали. $decalsecondpass Если выключено, то всегда рендерить эту декаль поверх остальных. Если две декали с этим параметром установленным в true пересекаются, то они ведут себя также, как декали без этого параметра. $fogscale <float>Декали не поддерживают $bumpmap и $envmap.
Contents
Декали на моделях
Hammer
- Декали могут быть помещены на браши в Hammer с помощью инструментов оверлеев или декалей. Эти декали будут отображаться сразу после загрузки карты.
- Объект info_projecteddecal может быть использован для проецирования декали на любые браши или модели.
Декали могут быть созданы на клиенте с помощью функции C_BaseEntity::AddDecal() . Изнутри она вызывает AddStudioDecal() или AddBrushModelDecal() в зависимости от того, является ли энтити брашем или моделью. Параметры для этих функций:
Это может быть достигнуто и на сервере с помощью функции engine->StaticDecal :
Индексы декалей могут быть получены вызовом decalsystem->GetDecalIndexForName или UTIL_PrecacheDecal() :
[CS:GO] Редактирование текстур моделей (оружия, игроки и т.д.).
Здравствуйте, сегодня я научу вас редактировать текстуры моделей.
1) Нахождение нужной нам текстуры:
Для начала нам нужно найти сами текстуры.
Мой путь таков: D:\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\models\weapons\v_models\rif_scar17
Нам нужны файлы формата VTF
Открывать их нужно с помощью VTFEdit (В свойствах можно выбрать приложение через которое будут открываться данные файлы)
Открыв данный файл сразу и не понять что здесь нарисовано.
Так что идем в CS:GO SDK и сопоставляем нашу модель с ее разверткой (текстурой):
Стало немного понятнее какой кусок текстуры за какую часть модели отвечает.
2) Изменение цвета всего скина:
Я решил взять синий:
Жмем ОК и сохраняем.
Результат можно посмотреть в CS:GO SDK (не забудьте его перезапустить):
3) Создание надписей и рисунков на текстуре:
Для нашей работы текстура будет слишком прозрачной, так что продублируем слои (дублируйте столько раз, пока вам не будет удобно работать):
ВАЖНО. Мы работаем только с 1 слоем. Не забудьте удалить добавленные слои после завершения редактирования!
Ну думаю вы умеете рисовать и писать в пейнте,
Добавлять свои картинки тоже (путем перетаскивания на рабочую зону, Добавить слой).
ВАЖНО. Если добавляете картинки, то после редактирования объединяйте слои (Свой на котором вы рисуете или пишите и слои с картинками).
Вот что у меня получилось:
Использование модуляции
Для декалей, предназначенных для имитации выбоин или вмятин на поверхности, шейдер DecalModulate (mod2x) оказывается крайне подходящим: он осветляет целевые пиксели для каждого исходного пикселя, который имеет цвет светлее серого (>128), и затеняет целевые пиксели для каждого исходного пикселя, который имеет цвет темнее серого. Этот эффект может быть использован для придания ощущения глубины, при применении к поверхности.
Для начала создайте исходное изображение, цветовой канал которого будет использован для модуляции исходных значений. Еще раз: светлые значения будут осветлять пиксели, поверх которых они нарисованы, в то время как темные значения будут затемнять целевые пиксели. Значения с серым цветом будут рассматриваться как полупрозрачные.
Далее, создайте альфа-канал, который будет определять маску для декали. Так как модуляция не может иметь точное среднее значение корректно, маска обязательна для предотвращение появления границы (обводки) вокруг декали.
Наконец, вы должны создать материал, который использует DecalModulate шейдер. Ни $translucent , ни $decal в этот раз не понадобятся.
Декали
Также, убедитесь в том что статья пытается соответствовать статье об альтернативных языках.
Когда игрок стреляет из своего оружия в стену, на ней остается след, который называется декаль (decal). Легче всего представить это как невидимый объект, прикрепленный к поверхности. Плакаты, дырки от пуль, буквы на стенах могут быть созданы с помощью декалей. Декали "прилепают" к объектам, на которые они помещены. К примеру декаль на лестнице каскадом спроецируется вниз, а не будет висеть в воздухе. Вы можете так же использовать декали для нанесения трафаретных букв на стены, чтобы помечать какие-либо места на вашей карте.
Создать декаль не сложно: это обычный материал, у которого есть альфа-канал и который использует DecalModulate шейдер.
До того как читать дальше эту статью, рекомендуем вам ознакомится со статьей про создание материалов.
Contents
Decals
Decals are materials projected onto existing surfaces. They can be placed by the level designer, and are also generated by the engine for bullet impacts, blood, and other effects.
Decals are "sprayed" from a location and mark every surface in their path. For instance, a decal applied downward onto a staircase would cascade down onto the top (but not front) of each step.
Creating
This section assumes that you understand the basics of material creation.Any material can be used as a decal. They generally have an alpha channel however, and can use some special parameters and/or the DecalModulate shader.
Material parameters
$decal <bool> Prevents decal texture clipping. $decalscale <float> Same as a brush face's texture scale value: the number of units that each texel covers. Normally 0.25 or lower. $modelmaterial <material> A separate VertexLitGeneric material to that will replace this one if the decal hits a model. $decalfadeduration <float> Amount of time to spend fading out. Requires $vertexcolor . $decalfadetime <float> Delay before fadeout begins. $decalsecondpass <bool> ALWAYS render this decal on top of decals without this parameter. If two decals with this parameter intersect, they will treat each other how two without the parameter would. $fogscale <float> (in all games since ) Scales the amount of fog affecting the decal. Useful for making important decals stand out in foggy levels.Decals do not support $bumpmap in all engine branches prior to CS:GO.
DecalModulate
For decals intended to mimic the look of pock marks or dents in a surface, the DecalModulate (a.k.a. mod2x) shader is especially suitable: it lightens destination pixels for every source pixel that is over mid-range gray (128) and darkens any destination pixels for every source pixel that is below mid-range gray. This effect can be used to give the impression of depth when applied to a surface.
To begin, create a source image whose color channel will be used for the modulation's source values. Again, light values will lighten pixels they're drawn over, while dark values will darken the destination pixels. Mid-gray values will be treated as translucent.
Next, create an alpha channel that defines a mask for the decal. Because modulation cannot have an exact middle value currently, the mask is necessary to prevent "bordering" from occurring around the decal.
Finally, you must create a material that uses the DecalModulate shader. Neither $translucent nor $decal are needed this time.
Using
Hammer
Decal tool Creates infodecal entities, which decal brushes and displacements. info_projecteddecal An entity that decals models or displacements (but not brushes). The angle of projection can be set, allowing for distortion. Overlay tool Overlays are more expensive decals that offer level designers more control.All three of these methods create entities, albeit ones that are removed shortly after the map spawns.
Standard
Created in response to impacts, blood, and so on. Limited in number by the value of r_decals, unreliable when transmitted, and not transmitted to players who connect after creation.
Static
Normally created by the level designer. These decals last forever and are always transmitted, including to players who connect later on. Any material can be used.
engine->StaticDecal( Vector localOrigin, int decalIndex, int entityIndex, int modelIndex, bool lowpriority ) Server only. This system does not appear use entities. Vector localOrigin Where the decal will be created, relative to the target's origin. int decalIndex A value received from UTIL_PrecacheDecal() . Don't use GetDecalIndexForName() . int entityIndex int modelIndex Information about the target entity. bool lowpriority Low priority decals are not saved/restored, and can be "re-used on the client preferentially". UTIL_PrecacheDecal(const char *filename, bool preload) Returns a decal index for use with StaticDecal() . If this is in precache() , remember that it may be called statically; store the result in a global var.
Читайте также: