nyuuzyou/wikis huggingface dataset:
Ru/$bodygroup

это которая создаёт группу мешей, которые могут быть включены, отключены или же выглядеть полностью по-другому. Серверный код может изменять их состояние.
== Пример==
Эта body-группа позволяет иметь на оружии несколько прицелов (например мушку, лазерный прицел или же никаких прицелов вообще):
$bodygroup sights
{
	studio ironsights
	studio laser_dot
	blank
}
Эта body-группа обозначает целый регион модели, который использует несколько костей:
$bodygroup chest
{
	studio chest_with_no_armor
	studio chest_with_light_armor
	studio chest_with_heavy_armor
	studio chest_with_super_armor
}
== Bodyгруппы в LOD мешах ==
Крайне рекомендуется использование - особенно для геометрии с высоким количеством полигонов. LOD'ы могут быть использованы с помощью :
$lod 12
{
	replacemodel chest_with_no_armor chest_with_no_armor_lod1
	replacemodel chest_with_light_armor chest_with_light_armor_lod1
	replacemodel chest_with_heavy_armor chest_with_heavy_armor_lod1
	replacemodel chest_with_super_armor chest_with_super_armor_lod1
}
$lod 18
{
	replacemodel chest_with_no_armor chest_with_no_armor_lod2
	replacemodel chest_with_light_armor chest_with_light_armor_lod2
	replacemodel chest_with_heavy_armor chest_with_heavy_armor_lod2
	replacemodel chest_with_super_armor chest_with_super_armor_lod2
}
$shadowlod
{
	replacemodel chest_with_no_armor chest_with_no_armor_lod2
	replacemodel chest_with_light_armor chest_with_light_armor_lod2
	replacemodel chest_with_heavy_armor chest_with_heavy_armor_lod2
	replacemodel chest_with_super_armor chest_with_super_armor_lod2
}
== Программирование ==
Чтобы изменить состояние body-группы:
static int bodygroup = FindBodygroupByName("chest"); // используйте эту строку лишь один раз
SetBodygroup( bodygroup, 1 ); // установить body-группу "chest" на второе значение (нумерация идёт с нуля)
Измените слово "chest" на название body-группы, состояние которой вам необходимо поменять.
По стандарту, класс поддерживает 4,294,967,296 комбинаций (32 бита), а класс - 256 (8 битов). Вы можете увеличить этот лимит, изменив для m_nBody.
Чтобы посчитать, сколько комбинаций вам нужно, перемножьте друг на друга размер всех ваших body-групп. Для примера из этой страницы будет 3 * 4 = 12, но добавив, например, две дополнительных группы того же размера, кол-во комбинаций поднимется до 144.
Ru/$cdmaterials

$cdmaterials это , которая указывает расположение модели относительно папки <имя игры>/materials/. Традиционно указывают папку внутри \models.
== Синтаксис ==
 <путь> <2-й путь> [...]
== Пример ==
 		"weapons\shell.mdl"
 		"models\weapons\"'''
 		shell	"shell_ref.smd"
 	idle	"shell_idle.smd"
Ru/$envmapmask

Этот параметр определяет маску бликов, которая влияет на то, насколько сильно каждый пиксель материала отражает свет от . Маска должна быть изображением в градациях серого, в котором полностью отражающие области являются белыми, а полностью матовые области - черными. Для отражения диффузного типа, которое не зависит от$envmap,см..
==Пример синтаксиса VMT==
 $envmapmask <текстура>
 
 {
 				env_cubemap
 	$envmapmask		"props/tvscreen_test"
 }
==Дополнительные параметры==
====CS:GO WorldVertexTransition Parameters====
==Альтернативные методы==
Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в или . Материалы моделей с обязаны иметь маску бликов в альфа-канале. К сожалению, это не уменьшит использование памяти.
Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к , также будут применяться к маске бликов.
==Merging Specular Level into Normal Alpha in 3ds Max==
To merge a Specular Level map into the Normal Map alpha, you can create a Composite Map node with the normal map in Layer 1 and the specular map in Mask 1. Then right-click the composite map, click Render Map and save this new image to file (remembering to keep the Gamma at 1.0 and using 32 bits per pixel in the save options).
These steps are automated in the Alpha Spec tool in Wall Worm 2.72+.
==Смотреть также==
* - основная текстура
* - (карта окружения)
* - (диффузное отражение)
* - самосвечение
Ru/$ignorez

— это параметр , доступный почти во всех играх на движке , который включает . Он в основном используется для материалов интерфейса, которые всегда будут отображаться перед трёхмерным миром, и для материалов скайбокса, которые всегда будут позади.
==Демонстрация==
File:$ignorez disabled.png|512px|$ignorez выключен
File:$ignorez enabled.png|512px|$ignorez включен
Ru/$modelname

является обязательной. Она определяет папку, где будет находиться скомпилированная модель и имя самой модели.
* В указывается относительный путь (относительно ), либо абсолютный путь. Абсолютные пути должны быть закрыты в кавычки, однако относительные пути - нет.
* В всегда указывается путь относительно папки \models в . 
== Пример использования ==
 		"weapons\shell.mdl"
 
 		body	"shell.smd"
 		"models\weapons\"
 	idle	"shell_anim_@idle.smd"
 	"shell_physics.smd"
Эта модель будет скомпилирована как <игра>\models\weapons\shell.mdl.
Вписывать .mdl необязательно, но так скрипт прозрачнее и легче читается.
Ru/$notint

— это параметр , доступного в и для . Он предотвращает окрашивание материала параметрами $color2 и rendercolor. Этот параметр полезен в ситуациях, когда у вас есть модель, состоящая из нескольких материалов, некоторые из которых требуют окраски, а другие нет.
== Синтаксис ==
 $notint	<>
Ru/$origin

$origin изменяет положение модели в её собственном локальном пространстве. Когда модель создана, у неё будет смещение по осям X, Y, -Z и Z-поворот.
Это полезно для изменения положения .
== Синтакис ==
 $origin <x> <y> <-z> [z поворот]
Обратите внимание, значение Z перевёрнуто.
== С view моделями ==
center
== Смотрите также ==
* 
* 
Category:Russian
Ru/$phong

It is also available on the and shaders in all games since . It provides s at low intensity and s at apex intensity, masked by a texture which control per-texel its intensity. Для полного объяснения смотреть материалы Фонга.
==Синтаксис==
 $phong <>
:
VertexLitGeneric
{
	$phong 1
	$bumpmap				[текстура]
	$phongexponent			5			// либо это
	$phongexponenttexture	[текстура]	// либо это
	$phongboost				1.0
	$phongfresnelranges		"[0 0.5 1]"
}
== Параметры шейдера ==
=== Маски ===
* Используя $selfillumfresnel без вынудит использовать альфа-канал как маску.
* Используя $selfillumfresnel вместе с умножит на 0.0f, тем самым отключив эффект!
* Когда $selfillumfresnel не используется, то маска, используемая для будет альфа-каналом до тех пор пока не будет использован .
* Если используется, то альфа-канал будет использоваться как маска Фонга. Используя $basemapalphaphongmask или $basemapluminancephongmask перекроет этот параметр.
=== Яркость ===
=== Цвета ===
===Параметры затенения на примитивах ===
== Консольные команды ==
== Смотреть также ==
* Phong materials
* (карта окружения)
* 
* 
== Дополнительные ссылки ==
* $Phong on brushes*: The Hacky Way - A TF2maps.net guide on how to fake $Phong on brushes for games prior to CS:GO. Can also be used to fake phong on static props which are lit per-vertex, without falling back to lower-quality point lighting on the main prop
*SubstancePainter Source Engine Complex Phong Shader
pCategory:VMT Lighting
Category:Material System
Ru/$renamematerial

Она позволяет модели использовать , отличный от указанного в .
== Синтаксис ==
 	<выбранный материал>	<новый материал>
== Использование с текстурными группами ==
Переименованные материалы считаются отдельными материалами даже если они имеют тоже название, что и оригинальный материал.
Это может создавать проблемы при использовании текстурных групп, смотрите ниже:
 "model_1.smd" //Меш с материалом "material_1"
 
 "model_2.smd" //Меш с материалом "material_2"
 
 "material_2" "material_1" //Переименовываем "material_2" на "model_2.smd" в название материала на "model_1.smd"
 
 skinfamilies
 {
 	{ "material_1" }
 	{ "material_3" }
 }
Это приведёт к тому, что только модель model_1.smd будет менять текстуру на второй скин-группе, поскольку компилятор считает переименованный материал отличным от материала на первом меше даже если они имеют одинаковые имена.
Для того, чтобы скины менялись корректно вы должны указать оригинальное название материала в текстурной группе и только после этого переименовывать материал.
 skinfamilies
 {
 	{ "material_1" "material_2 }
 	{ "material_3" "material_3" }
 }
 
 "material_2" "material_1"
== Смотрите также ==
*
* "skinfamilies"
* "replacematerial"
Ru/$staticprop

однозначно указывает на то, что у компилируемой модели нет подвижных частей.
 осуществляет несколько весьма полезных оптимизаций, и поэтому команду рекомендуется использовать всегда, когда это возможно:
* Она сливает все кости модели в одну жёсткую, несгибаемую кость; не надо использовать команду для ragdoll'ов и моделей со скелетной анимацией.
* в процессе расчёта использует этого объекта. 
* 
== пример синтакса в QC-файле==
 		"weapons/shell.mdl"
 $staticprop
 		"models/weapons/"
 		shell	"shell-ref.smd"
 	idle	"shell-idle.smd"	// Idle-анимация все равно нужна 
Обратите внимание - у команды нет параметров.
S
Ru/$surfaceprop

Команда также доступна как параметр . привязывает поверхность материала или модели к набору физических свойств, включающих в себя:
* Звуки, издаваемые при столкновении
* Эффекты при попадании пуль
* Масса, плавучесть, упругость...
* Влияние поверхности на звуки рядом с поверхностью (реверберация, эхо, поглощение...)
== Синтаксис ==
Синтаксис одинаков как для моделей, так и для материалов:
 $surfaceprop <название>
Названия материалов и используемые ими файлы указаны в <game>\scripts\surfaceproperties_manifest.txt. Вы можете посмотреть список готовых материалов на странице .
== В материалах ==
* $surfaceprop не является параметром какого-либо конкретного , и поэтому может использоваться с любым материалом.
* Только оттенения, используемые на брашах требуют этот параметр. Однако, $surfaceprop всегда должен быть прописан в QC файле в свойствах столкновений, если нужно использовать что-то кроме стандартного значения.
== В моделях ==
* Если указан и в QC, и в VMT, то будут использоваться свойства поверхности самой модели, а не её материала.
* Не совсем понятно, как именно определяется масса модели - исходя из назначенного или из . 
* можно обозначать отдельно для каждой с помощью .
== Смотреть также ==
* 
*
Ru/$treesway

Он также доступен в . В и он может быть использован для .
$treesway трансформирует материал, используя параметры сущности , чтобы создать вид листьев деревьев и фольги, развевающихся на ветру. Подпараметры $treesway определяют, насколько сущность env_wind должна влиять на трансформацию, и все они (кроме ) должны быть указаны, чтобы эффект работал правильно. Этот параметр шейдера предполагает, что любая модель, использующая его, смотрит вверх.
: 
==Параметры==
== См. также ==
https://gamebanana.com/tuts/12924 - Обучающий материал на тему того, как добиться аналогичного эффекта без $treesway во всех играх на .
Ru/3D Model

Трёхмерная модель (далее — модель) представляет из себя набор точек, или вершин, которые образуют трёхмерную форму, известную как . Зазоры между точками обычно заполнены полигонами, которые как правило покрыты .
Models are used for almost every 3D object in Source that isn't a part of a map's underlying geometry. s, physics objects, guns, and sometimes even buildings are all models.
Models are created in external modelling packages that are not part of the Source SDK. Valve currently use , but there are . The SDK tool is used to files exported from a modelling package into the binary format that Source understands.
To ensure consistency an entity will normally choose its own world model; the three main exceptions to this are , , and .
== Зачем используются модели? ==
; Detail
: A model can have many, many times more vertices than a brush. allows the detail to be toned down when it is too far away to be appreciated, improving performance.
; and animation
: Detailed and lifelike animation can be achieved with a model. Walking, talking, running, jumping!
; Dynamism
: Unless specifically made to behave otherwise, a model's position, lighting and animation are all completely dynamic. They can go anywhere and do anything.
; Replication
: Every instance of a model is guaranteed to look the same, and you can change all of them at once by modifying one small set of files.
== Консольные команды ==
; r_flushlod
: Reload all models from disc.
; r_drawmodelstatsoverlay <1/0>
: Print the name of the model under the crosshair to the screen.
== Смотрите так-же ==
* , и 
* 
* 
* 
* 
* 
* 
* 
* 
* (Source Model file format)
Ru/64-bit mode with Source SDK

Текущая версия Source SDK неправильно работает в 64-битном режиме на 64-разрядных системах.
Для устранения данной проблемы:
# В окне Steam Games, на Half-Life 2 (или на любую другую установленную Valve игру, которую вы хотите запустить) и на Properties.
# Затем на Set launch options... и добавьте -32bit в редактируемое поле.
# Закройте диалог и запустите игру, которую только что изменили (то есть Half-Life 2). Когда запуск удастся, закройте игру.
Теперь у вас должно получиться запустить SDK на 64-битной системе. Однако следует отметить, что при запуске любой игры от Valve без параметра , ваш SDK снова будет несовместим с вашей системой.
Это означает, что если вы запускаете игру через Hammer, вам так же надо будет добавить параметр -32bit. Тоже самое относится к запуску игр из .bat файла, командной строки и т.д.
Ru/Abstract Mapping

- это набор статей, созданных для помощи в воплощении ваших идей по созданию различных объектов, таких как и , внутри игры. Хотя найти интересующую статью может быть сложно, информация, содержащаяся в каждой статье о воссоздании окружающей обстановки, полезна и может быть применена в различных вариациях.
Ru/Activate()

Activate() это void участник функции или который доступен через наследование в каждый энтити в Source игре. Вызывается движком после и, если Spawn() произошло во время изображения карты начальной загрузки, после всего разные энтити были заспавнены тоже.
Activate() используется для выполнения спавна задачи что требует взаимодействия с разными энити. Такие задачи должны никогда не выполнять в Spawn() сами, как это можно вызывать, прежде чем какие-либо другие объекты становятся доступными.
== Пример ==
 void CAlyxEmpEffect::Activate()
 {
 	// Start out with a target entity
 	SetTargetEntity( STRING(m_strTargetName) );
 	
 	BaseClass::Activate();
 }
== Смотрите также ==
*
*
*
Ru/Acttable t

acttable_t дефайны транслируются между общими генерируя в объект в одном экземпляре конкретного оружия. 
Например, ACT_MP_STAND_IDLE может быть отправлен как ACT_DOD_STAND_AIM_RIFLE для одного оружия.
Если оружие не имеет ActTable, или имеет неполную таблицу, вы скорее всего увидите вашу модель оружия с "jesus pose" анимацией в некоторых случаях.
== Реализация ==
Добавте DECLARE_ACTTABLE() в оба, клиент и сервер, класса. Затем, в :
acttable_t CMyWeapon::m_acttable[] = 
{
	{ ACT_MP_STAND_IDLE,	ACT_MYMOD_STAND_AIM_MYWEAPON,	false },
	{ ACT_MP_CROUCH_IDLE,	ACT_MYMOD_CROUCH_AIM_MYWEAPON,	false },
	{ ACT_MP_RUN,		ACT_MYMOD_RUN_MYWEAPON,		false },
	// и т.д.
};
IMPLEMENT_ACTTABLE( CMyWeapon );
Третье значение показывает будет ли использоваться анимация или нет.
Ru/AddOutput

AddOutput является output командой в и использует синтаксис: <ключ> <значение> или <output команда> <имя цели>:<input команда>:<параметр>:<задержка>:<макс количество вызовов (-1 = бесконечно, 1 = единожды)> всё это добро используется во вкладке output
Пример синтакса с параметрами: OutputName TargetName:Color:255 255 255:0:-1
Пример синтакса без переметров: OutputName TargetName:Open::0:-1
Стоит отметить, если у вас нет параметров, то между двумя двоеточиями ничего не нужно ставить. Максимальное время срабатывания не будет работать со значениями, отличными от 1 или -1. 1 = единожды, -1 = бесконечно
==Примеры==
:Формат: <ключ> <значение>
 {
 "classname" "prop_physics"
 "targetname" "prop01"
 .
 .
 .
 "OnHealthChange" "!self,AddOutput,targetname prop9001"
 } 
В данном случае меняется имя пропа. А именно, он сам себе его переназначает в игре через цель !self== prop01.
:Формат: <output команда> <имя цели>:<input команда>:<параметр>:<задержка>:<макс количество вызовов, 1 значит единожды и -1 значит бесконечно>
 {
 "classname" "tf_logic_auto"
 .
 .
 .
 "OnMapSpawn" "team_round_timer_red,AddOutput,OnFinished game_round_win:RoundWin::0:-1,0,-1"
 }
Это добавит output команду для энтити с именем "team_round_timer_red".
----
;Trigger_Multiple
:Name: Ghost
;Outputs
:My Output Named: OnEndTouch
:Targets entities named: !activator
:Via this input: Alpha
:With a parameter override of: 255
:After a delay in seconds: 0.10
:My Output Named: OnStartTouch
:Targets entities named: !activator
:Via this input: AddOutput
:With a parameter override of: rendermode 1
:After a delay in seconds: 0.00
:My Output Named: OnStartTouch
:Targets entities named: !activator
:Via this input: Alpha
:With a parameter override of: 120
:After a delay in seconds: 0.00
В результате, игрок будет полупрозрачен стоя в триггере (OnStartTouch), а выйдя из него (OnEndTouch) всё вернётся в норму.
==Также стоит обратить внимание на это==
*об Addoutput
Ru/Adding Convars to the Multiplayer Advanced Tab

На этой странице обсуждается, как добавить свои собственные в раздел «Дополнительно» на вкладке «Многопользовательский режим» в меню «Параметры».
По умолчанию на этой вкладке не должно быть ничего для вашего мода. Чтобы добавить в него переменные, создайте файл user_default.scr и поместите его в папку cfg внутри папки мода.
Или просто отредактируйте "settings.scr", также в папке cfg. Этот файл идёт в комплекте с модом
Добавьте в него следующее:
// NOTE: THIS FILE IS AUTOMATICALLY REGENERATED, 
//DO NOT EDIT THIS HEADER, YOUR COMMENTS WILL BE LOST IF YOU DO
// User options script
//
// Format:
// Version [float]
// Options description followed by 
// Options defaults
//
// Option description syntax:
//
// "cvar" { "Prompt" { type [ type info ] } { default } }
//
// type = 
// BOOL (a yes/no toggle)
// STRING
// NUMBER
// LIST
//
// type info:
// BOOL no type info
// NUMBER min max range, use -1 -1 for no limits
// STRING no type info
// LIST delimited list of options value pairs
//
//
// default depends on type
// BOOL is "0" or "1"
// NUMBER is "value"
// STRING is "value"
// LIST is "index", where index "0" is the first element of the list
// Half-Life User Info Configuration Layout Script (stores last settings chosen, too)
// File generated: Tue May 26 04:33:22 AM
//
//
// Cvar	-	Setting
VERSION 1.0
DESCRIPTION INFO_OPTIONS
{
	"r_drawviewmodel" //the convar
	{
		"Draw the viewmodel" //the description
		{ BOOL } //the type of convar
		{ "1" } //the boolean value
	}	
	
	"viewmodel_fov" //the convar
	{
		"Adjust the field of view" //the description
		{ SLIDER 54 70 } //the type of convar
		{ "1" } //the boolean value
	}	
}
Там есть 2 примера переменных. Один - «ползунок», а второй - . Само собой разумеется, как добавить свой собственный.
Ru/Adding Light

Теперь мы добавим освещение в комнату. Если на вашей карте нет освещения, то при заходе в игру будет автоматически ставиться "fullbright", но это вряд ли вам подходит. Создание освещения делает вашу карту гораздо реалистичней.
# Активируйте (освещение тоже является объектом-энтитей) и выберите из выпадающего меню в Object Toolbar. Это самый главный источник света из всех возможных, и он невидим. Установите одну энтитю в центре потолка, щелкнув в 3D-окне:
# Теперь мы изменим цвет и яркость света. Переключитесь обратно на , и затем дважды щёлкните на энтите light в 3D окне, чтобы открыть диалог Object Properties. Чтобы настроить яркость свечения, найдите и нажмите на Brightness в списке KeyValues.
# Хотя вы и можете ввести цвет в текстовое поле напрямую, но лучше использовать встроенный в Hammer определитель цвета. Нажмите на кнопку Pick color, непосредственно под текстовым полем:
# Появится диалог Color, позволяющий изменить цвет света.
## Измените цветовой тон и насыщенность цвета, нажав на цветовой гамме в правой области.
## Это нужно, потому что яркость установлена на максимальный уровень, и цвет становится белым. Низкая яркость позволяет изменить цвет, в зависимости от яркости и выбранного вами цвета. Вы можете видеть, как изменяется цвет, в окне предварительного просмотра, квадрат в нижней части диалога становится более красочным, а не белым.
## Нажмите на кнопку OK, чтобы подтвердить ваш выбор:
# Мы установили цвет света, но это изменение не отразилось на его интенсивности. Цвет настраивается первыми тремя числами во вкладке Brightness, яркость света задаётся четвертым значением. Выделите это число (текущее значение 200) курсором, и вместо него, введите 800, яркость освещения увеличиться вчетверо: 
# Теперь, когда мы внесли изменения в настройки света, нажмите на кнопку Apply, чтобы запомнить изменения. Цвет света изменится на тот, который вы выбрали.
== Результаты ==
Когда вы скомпилируете вашу карту, вы увидите сферу света на стене, обозначающую яркий свет, рядом с вашим энтити светом, и темное пространство вокруг него. Если необходимо - не забудьте отключить mat_fullbright.
Ваш свет не будет иметь видимого источника - он будет появляется из ниоткуда. Как это исправить, вы узнаете в следующей статье.
== См. также ==
* 
* 
=== Световые энтити ===
* - базовый, всенаправленный источник света.
* - направленный свет.
* - контроллер глобального света, исходящего от .
* / - источники света, которые могут изменяться и двигаться в игре.
Ru/Adding Point Entities

Сейчас мы добавим некоторые на карту. Объекты мира - это объекты имеющие собственное поведение, с которыми (как правило) можно каким-либо оборазом взаимодействовать.
Эта страница описывает , положение которых определяется точкой на координатной сетке. , описанные в следующей статье, немного отличаются.
----
	Объекты мира создаются с помощью . Выберите этот инструмент, нажав на клавиши , или на иконку на левой-панели.
----
	
Далее мы выбираем, какой объект вставить в карту. Существует в Object Toolbar, который находится в правом-нижнем углу окна Hammer:
Далее идет список объектов, отвечающих за появляение персонажа игрока на карте. Название объекта варьируется в зависимости от модификации. Полный список .
* Одиночная игра (Singleplayer): 
* Смертельная битва (Deathmatch): 
* Командная игра (Team): info_player_<team> (red/blue, , axis/allies, и т.д.)
----
	Теперь мы разместим объект на карте. Для помещения объекта в соответствии с поверхностью, Вы должны щелкнуть где-нибудь на поверхности, используя 3D вид. Нажмите где-нибудь на полу комнаты, как это показано на картинке, и объект будет помещен на место нажатия:
----
===Размещения оружия===
		
Большинство Source игр содержат стреляющее оружие, так что давайте сделаем одно. Оружие так же меняется от игры к игре, но оно всегда начинается с "weapon_".
Вы можете провести поиск по списку объектов, чтобы посмотреть, какие объекты доступны. Если вы работаете с тем, что связано с , Вы будете иметь возможность создания , примерно так:
В зависимости от правил игры, с которой вы работаете, вам потребуется создать аммуницию к оружию еще до того, как игрок сможет стрелять. Не все игры имеют объекты боекомплекта, и не обязательно, что боекомплект идёт совместо с оружием. Попробуйте найти объект "item_ammo_", если Вам это не удалось, Вы всегда можете использовать , чтобы включить , и дать себе патроны (после поднятия оружия), с помощью команды "givecurrentammo".
== Компиляция ==
Как только Вы поместили точку старта для игрока, Вы можете скомпилировать карту и ходить по ней, надеюсь, у Вас не появились какие-нибудь странные предупреждения. Если Вы хотите сделать это сейчас, переходите сразу к разделу .