Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

Ru/$texturegroup: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{lang|$texturegroup|$title=$texturegroup}}{{toc-right}}
{{lang|$texturegroup|$title=$texturegroup}}{{toc-right}}
{{This is a|c0|name=$texturegroup}} Она позволяет модели иметь несколько [[skin|скин]]ов, состоящих из одного или нескольких материалов.<br>
{{This is a|c0|name=$texturegroup}} Она позволяет модели иметь несколько [[skin|скинов]], состоящих из одного или нескольких материалов.<br>
Обычно скины используются в пропах чтобы добавить вариативности к их внешнему виду без создания новых моделей.
Скины используются в моделях для добавления вариантов их внешнего вида без создания новых моделей.
[[File:Plasticcrate01.jpg|723x111px|frameless|left]]{{cls}}
[[File:Plasticcrate01.jpg|723x111px|frameless|left]]{{cls}}
== Синтаксис ==
== Синтаксис ==
Line 13: Line 13:


; имя
; имя
: Имя текстурной группы. {{bug:ru|Имя требуется [[studiomdl/ru|StudioMDL]], но никак не используется. Обычно текстурные группы называют <code>skinfamilies</code>.}}
: Имя группы текстур. {{bug:ru|Имя требуется [[StudioMDL_(Source)/ru|StudioMDL]], но никак не используется. Обычно группы текстур называют <code>skinfamilies</code>.}}
; стандартный материал
; стандартный материал
: Название [[material/ru|материала]] ([[VMT/ru|VMT]]) на референс модели.
: Название [[material/ru|материала]] ([[VMT/ru|VMT]]) на референс модели.
Line 20: Line 20:




У моделей с несколькими материалами <code>$texturegroup</code> принимает несколько материалов за строку. При таком использовании первый скин будет как заголовок таблицы. Только указанные там материалы будут заменены в последующих скинах.
У моделей с несколькими материалами <code>$texturegroup</code> принимает несколько материалов за строку. При таком использовании первый скин будет указывать заменяющиеся материалы. Если какой-либо материал не указан, то его замена не произойдет, даже если его указать в следующих строках.


  {{ent:ru|$texturegroup}} <имя>
  {{ent:ru|$texturegroup}} <имя>
Line 29: Line 29:
  }
  }


[[Studiomdl/ru|StudioMDL]] позволяет использование до 32 уникальных материалов на модели. Этот лимит встроен в компилятор, но его ''можно'' увеличить использует пропатченный StudioMDL.
[[StudioMDL_(Source)/ru|StudioMDL]] позволяет использовать до 32 уникальных материалов на модели. Этот лимит встроен в компилятор, но его ''можно'' увеличить используя пропатченный [[StudioMDL_(Source)/ru|StudioMDL]].
{{tip:ru|Если вы просто хотите использовать разные текстуры на каждом скине просто скопируйте ваш оригинальный материал (VMT) (например: <code>skin_0.vmt</code>), дайте ему другое имя (например: <code>skin_1.vmt</code>) и измените там текстуры, которые вам нужно заменить.}}
{{tip:ru|Если нужно заменить основную текстуру в скине, можно скопировать изначальный материал и изменить его название и его параметр {{ent:ru|$basetexture}}}}
{{bug:ru|Вы должны добавить пробелы между кривыми скобками <code>{}</code> и названием материала. <code>{skin_0}</code> работать не будет, но зато <code>{ skin_0 }</code> будет.}}
{{bug:ru|Вы должны добавить пробелы между кривыми скобками <code>{}</code> и названием материала. <code>{skin_0}</code> работать не будет, в отличие от <code>{ skin_0 }</code>.}}


== Примеры ==
== Примеры ==
Line 68: Line 68:


== Использование нескольких текстурных групп ==
== Использование нескольких текстурных групп ==
Использование более, чем одной <code>$texturegroup</code> разрешено, но '''не''' рекомендуется. Поведение нескольких текстурных групп как минимум не интуитивно.
Использование более, чем одной <code>$texturegroup</code> разрешено, но '''не''' рекомендуется. Поведение нескольких групп текстур как минимум неинтуитивно.
{{bug:ru|Количество скинов определяется ''только'' первой текстурной группой. Это значит, что для того, чтобы получить доступ к другим текстурным группам количество скинов должно превышать 31 (32 в [[HLMV/ru|HLMV]]).}}
{{bug:ru|Количество скинов определяется ''только'' первой группой текстур. Это значит, что для того, чтобы получить доступ к другим текстурным группам количество скинов должно превышать 31 (32 в [[HLMV/ru|HLMV]]).}}
{{bug:ru|Они не воспринимаются отдельными друг от друга, текстурные группы разделяются на части по 32 скина. Не более чем 32 скина могут быть использованы на текстурной группе кроме первой.}}
{{bug:ru|$texturegroup не воспринимаются отдельно друг от друга, группы текстур разделяются на части по 32 скина. Не более чем 32 скина могут быть использованы на текстурной группе кроме первой.}}
{{bug:ru|Каждый материал, изменяемый текстурной группой должен быть указан в первом скине первой текстурной группы. Получается, все текстурные группы должны иметь одно количество материалов в их первом скине, чтобы материалы не перемешались.}}
{{bug:ru|Каждый материал, изменяемый группой текстур, должен быть указан в первом скине первой группы текстур. Получается, все группы текстур должны иметь одно количество материалов в их первом скине, чтобы материалы не перемешались.}}
Из-за всех этих проблем не смотря на то, что синтаксис говорит, использование нескольких <code>$texturegroup</code> команд на самом деле не позволит несколько состояний скина, в отличии от {{ent:ru|$bodygroup}}.
Из-за всех этих проблем несмотря на то, что указано в синтаксисе, использование нескольких <code>$texturegroup</code> команд на самом деле не позволит несколько состояний скина, в отличии от {{ent:ru|$bodygroup}}.


Если модель требует несколько состояний текстур, то они должны быть сделаны настройкой скинов в подобной манере:
Если модель требует несколько состояний текстур, то они должны быть сделаны настройкой скинов в подобной манере:
Line 85: Line 85:


== Замена материала материалом с таким же именем в другой папке ==
== Замена материала материалом с таким же именем в другой папке ==
Для того, чтобы заменить материал материалом с таким же именем из другой папки добавьте ".." перед новым материалом и после него добавить название папки, где лежит новый материал.<br>
<code>..</code> выводит путь поиска материала на директорию выше, тем самым позволяя вам использовать материалы из другой папки, как {{ent:ru|$popd}}.<br>
".." поднимает вас на директорию выше позволяя вам зайти в другую папку, как {{ent:ru|$popd}}.<br>
В таком случае добавление новых строк {{ent:ru|$cdmaterials}} не требуется.<br>
В таком случае не требуется добавление новых строк {{ent:ru|$cdmaterials}}.<br>
Если Вы просто хотите использовать другой материал, не имеющий то же самое имя, Вы можете просто использовать ещё одну строку <code>$cdmaterials</code>.
Если вы просто хотите использовать другой материал, не имеющий тоже самое имя вы можете просто использовать ещё одну строку <code>$CDMaterials</code>.


Пример из {{l4d2|2}}:
Пример из {{l4d2|2}}:
Line 101: Line 100:


== Больше информации ==
== Больше информации ==
* Скины также могут изменять {{ent:ru|$bumpmap}}, {{ent:ru|$surfaceprop}} и др. опции в [[VMT/ru|VMT]]. Также для оптимизации, смотрите {{ent:ru|$lod}} и [[LOD Models|LOD модели]].
* Скины также могут изменять {{ent:ru|$bumpmap}}, {{ent:ru|$surfaceprop}} и др. опции в [[VMT/ru|VMT]]. Также для оптимизации можно использовать {{ent:ru|$lod}} и [[LOD Models|LOD модели]].
* Все альтернативные текстуры должны иметь ту же [[UV map|UV]] разметку.
* Все альтернативные текстуры должны иметь ту же {{ent:ru|UV map}} развёртку.
* Хоть [[studiomdl:ru|StudioMDL]] и имеет встроенный лимит в 32 уникальных материала, он технически поддерживает до 1024 скинов до тех пор, пока они состоят из 32 материалов.
* Хоть [[StudioMDL_(Source)/ru|StudioMDL]] и имеет встроенный лимит в 32 уникальных материала, он технически поддерживает до 1024 скинов до тех пор, пока они состоят из 32 материалов.
* {{tf2}} Почти каждая покрашенная под цвет команды модель имеет как минимум 2 скина. Обычно стандартный скин для RED и второй скин для BLU.
* {{tf2}} Почти каждая покрашенная под цвет команды модель имеет как минимум 2 скина. Обычно первый скин для команды RED, а второй скин для команды BLU.


== See Also ==
== See Also ==
Line 110: Line 109:
* {{ent:ru|$cdmaterials}}
* {{ent:ru|$cdmaterials}}
* {{ent:ru|$renamematerial}}
* {{ent:ru|$renamematerial}}
* {{ent:ru|$bodygroup}} - То же, что и {{ent:ru|$texturegroup}}, но для частей модели
* {{ent:ru|$bodygroup}} - То же самое, что и {{ent:ru|$texturegroup}}, но для частей модели.


[[Category:QC Commands:ru|texturegroup]]
[[Category:QC Commands:ru|texturegroup]]

Revision as of 07:05, 8 December 2023

English (en)Français (fr)Русский (ru)Translate (Translate)

$texturegroup - это c0, доступно для всех игр на движке Source Source. Она позволяет модели иметь несколько скинов, состоящих из одного или нескольких материалов.
Скины используются в моделях для добавления вариантов их внешнего вида без создания новых моделей.

Plasticcrate01.jpg

Синтаксис

$texturegroup <имя>
{
	{ "<стандартный материал>" } //Скин 0 (стандартный)
	{ "<новый материал>"       } //Скин 1
 	[...]
}
имя
Имя группы текстур. Template:Bug:ru
стандартный материал
Название материала (VMT) на референс модели.
новый материал
Название материала (VMT), который будет заменять материал выше.


У моделей с несколькими материалами $texturegroup принимает несколько материалов за строку. При таком использовании первый скин будет указывать заменяющиеся материалы. Если какой-либо материал не указан, то его замена не произойдет, даже если его указать в следующих строках.

$texturegroup <имя>
{
	{ "<стандартный материал 1>" "<стандартный материал 2>" [...] } //Скин 0 (стандартный)
	{ "<новый материал 1>"       "<новый материал 2>"       [...] } //Скин 1
	[...]
}

StudioMDL позволяет использовать до 32 уникальных материалов на модели. Этот лимит встроен в компилятор, но его можно увеличить используя пропатченный StudioMDL. Template:Tip:ru Template:Bug:ru

Примеры

$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 разрешено, но не рекомендуется. Поведение нескольких групп текстур как минимум неинтуитивно. Template:Bug:ru Template:Bug:ru Template:Bug:ru Из-за всех этих проблем несмотря на то, что указано в синтаксисе, использование нескольких $texturegroup команд на самом деле не позволит несколько состояний скина, в отличии от $bodygroup.

Если модель требует несколько состояний текстур, то они должны быть сделаны настройкой скинов в подобной манере:

$texturegroup skinfamilies
{
	{ <состояние 1> <подсостояние 1> }
	{ <состояние 1> <подсостояние 2> }
	{ <состояние 2> <подсостояние 1> }
	{ <состояние 2> <подсостояние 2> }
	[...]
}

Замена материала материалом с таким же именем в другой папке

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

Пример из Left 4 Dead 2 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 модели.
  • Все альтернативные текстуры должны иметь ту же UV map развёртку.
  • Хоть StudioMDL и имеет встроенный лимит в 32 уникальных материала, он технически поддерживает до 1024 скинов до тех пор, пока они состоят из 32 материалов.
  • Team Fortress 2 Почти каждая покрашенная под цвет команды модель имеет как минимум 2 скина. Обычно первый скин для команды RED, а второй скин для команды BLU.

See Also