$texturegroup
$texturegroup
- это QC команда , доступно для всех игр на движке Source.
![Icon-broom.png](/w/images/thumb/7/71/Icon-broom.png/32px-Icon-broom.png)
Она позволяет модели иметь несколько скинов , состоящих из одного или нескольких материалов.
Скины используются в моделях для добавления вариантов их внешнего вида без создания новых моделей.
Синтаксис
$texturegroup
<имя>
{
{ "<стандартный материал>" } //Скин 0 (стандартный)
{ "<новый материал>" } //Скин 1
[...]
}
- имя
- Имя группы текстур.
Баг:StudioMDL требует имя, но оно никак не используется. Обычно группы текстур называют
skinfamilies
. - стандартный материал
- Название материала (VMT ) на референс модели.
- новый материал
- Название материала (VMT ), который будет заменять материал выше.
У моделей с несколькими материалами $texturegroup
принимает несколько материалов за строку. При таком использовании первый скин будет указывать заменяющиеся материалы. Если какой-либо материал не указан, то его замена не произойдет, даже если его указать в следующих строках.
$texturegroup
<имя>
{
{ "<стандартный материал 1>" "<стандартный материал 2>" [...] } //Скин 0 (стандартный)
{ "<новый материал 1>" "<новый материал 2>" [...] } //Скин 1
[...]
}
StudioMDL позволяет использовать до 32 уникальных материалов на модели. Этот лимит встроен в компилятор, но его можно увеличить используя пропатченный StudioMDL .
![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
$basetexture
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
{}
и названием материала. {skin_0}
работать не будет, в отличие от { skin_0 }
.Примеры
$texturegroup
rockcliff_cluster01
{
{ rockcliff02a }
{ rockcliff02b }
{ rockcliff02c }
}
$cdmaterials
models\bots\sniper models\effects$texturegroup
skinfamilies { { sniper_bot_red sniper_bot_head_red } { sniper_bot_blue sniper_bot_head_blue } { invulnfx_red invulnfx_red } { invulnfx_blue invulnfx_blue } }
$cdmaterials
models\player\hvyweapon$texturegroup
skinfamilies { { heavy_head_red eyeball_r eyeball_l hvyweapon_red hvyweapon_red_sheen } { heavy_head_blue eyeball_r eyeball_l hvyweapon_blue hvyweapon_blue_sheen } { heavy_head_red_invun eyeball_invun eyeball_invun hvyweapon_red_invun hvyweapon_red_invun } { heavy_head_blue_invun eyeball_invun eyeball_invun hvyweapon_blue_invun hvyweapon_blue_invun } { heavy_head_zombie eyeball_zombie eyeball_zombie heavy_red_zombie_alphatest heavy_red_zombie_alphatest_sheen } { heavy_head_zombie eyeball_zombie eyeball_zombie heavy_blue_zombie_alphatest heavy_blue_zombie_alphatest_sheen } { heavy_head_red_invun eyeball_invun eyeball_invun hvyweapon_red_zombie_invun hvyweapon_red_zombie_invun } { heavy_head_blue_invun eyeball_invun eyeball_invun hvyweapon_blue_zombie_invun hvyweapon_blue_zombie_invun } }
Использование нескольких текстурных групп
Использование более, чем одной $texturegroup
разрешено, но не рекомендуется. Поведение нескольких групп текстур как минимум неинтуитивно.
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
Из-за всех этих проблем несмотря на то, что указано в синтаксисе, использование нескольких $texturegroup
команд на самом деле не позволит несколько состояний скина, в отличии от $bodygroup
.
Если модель требует несколько состояний текстур, то они должны быть сделаны настройкой скинов в подобной манере:
$texturegroup
skinfamilies
{
{ <состояние 1> <подсостояние 1> }
{ <состояние 1> <подсостояние 2> }
{ <состояние 2> <подсостояние 1> }
{ <состояние 2> <подсостояние 2> }
[...]
}
Замена материала материалом с таким же именем в другой папке
..
выводит путь поиска материала на директорию выше, тем самым позволяя вам использовать материалы из другой папки, как $popd
.
В таком случае добавление новых строк $cdmaterials
не требуется.
Если Вы просто хотите использовать другой материал, не имеющий то же самое имя, Вы можете просто использовать ещё одну строку $cdmaterials
.
Пример из Left 4 Dead 2:
$cdmaterials
"models\c2m5_helicopter_extraction\"$texturegroup
"skinfamilies" { { "helicopter_news_adj" "helicopter_news2" } //helicopter_news2 из models\c2m5_helicopter_extraction\ { "..\hybridPhysx\helicopter_news_adj" "..\hybridPhysx\helicopter_news2" } //helicopter_news2 из models/hybridPhysx { "..\hybridPhysx\helicopter_army" "..\hybridPhysx\helicopter_army2" } //Можно было просто использовать ещё одну строку $cdmaterials и использовать "helicopter_army2" }
Больше информации
- Скины также могут изменять
$bumpmap
,$surfaceprop
и другие параметры VMT . Также для оптимизации можно использовать$lod
и LOD модели . - Все альтернативные текстуры должны иметь ту же развёртку .
- Хоть StudioMDL и имеет встроенный лимит в 32 уникальных материала, он технически поддерживает до 1024 скинов до тех пор, пока они состоят из 32 материалов.
Почти каждая покрашенная под цвет команды модель имеет как минимум 2 скина. Обычно первый скин для команды RED, а второй скин для команды BLU.
See also
- Несколько скинов на одной модели
$cdmaterials
$renamematerial
$bodygroup
- То же самое, что и$texturegroup
, но для частей модели.