Ru/$bodygroup: Difference between revisions
| m (Nesciuse moved page $bodygroup/ru to Ru/$bodygroup over redirect: Language prefixes) | m (-Using L template for links) | ||
| Line 2: | Line 2: | ||
| это которая создаёт группу мешей, которые могут быть включены, отключены или же выглядеть полностью по-другому. Серверный код может изменять их состояние. | это которая создаёт группу мешей, которые могут быть включены, отключены или же выглядеть полностью по-другому. Серверный код может изменять их состояние. | ||
| {{note|Body-группы '''не могут''' изменять  | {{note|Body-группы '''не могут''' изменять {{L|skeleton|скелет}} или {{L|collision model|модель коллизии}}.}} | ||
| == Пример== | == Пример== | ||
| Line 33: | Line 33: | ||
| == Bodyгруппы в LOD мешах == | == Bodyгруппы в LOD мешах == | ||
| '''Крайне рекомендуется''' использование  | '''Крайне рекомендуется''' использование {{L|LOD|LOD'ов}} - ''особенно для геометрии с высоким количеством полигонов''. LOD'ы могут быть использованы с помощью {{LCategory|QC Commands|QC-команды}} <code>{{L|$lod}}</code>: | ||
| <source lang=php> | <source lang=php> | ||
| Line 70: | Line 70: | ||
| Измените слово "chest" на название body-группы, состояние которой вам необходимо поменять. | Измените слово "chest" на название body-группы, состояние которой вам необходимо поменять. | ||
| По стандарту, класс <code> | По стандарту, класс <code>{{L|CBaseAnimating}}</code> поддерживает 4,294,967,296 комбинаций (32 бита), а класс<code>{{L|CBaseViewModel}}</code> - 256 (8 битов). Вы можете увеличить этот лимит, изменив {{L|SendProp}} для <code>m_nBody</code>. | ||
| Чтобы посчитать, сколько комбинаций вам нужно, перемножьте друг на друга размер всех ваших body-групп. Для примера из этой страницы будет 3 * 4 = 12, но добавив, например, две дополнительных группы того же размера, кол-во комбинаций поднимется до 144. | Чтобы посчитать, сколько комбинаций вам нужно, перемножьте друг на друга размер всех ваших body-групп. Для примера из этой страницы будет 3 * 4 = 12, но добавив, например, две дополнительных группы того же размера, кол-во комбинаций поднимется до 144. | ||
Revision as of 08:45, 11 July 2024
это которая создаёт группу мешей, которые могут быть включены, отключены или же выглядеть полностью по-другому. Серверный код может изменять их состояние.
 Примечание:Body-группы не могут изменять скелет или модель коллизии.
Примечание:Body-группы не могут изменять скелет или модель коллизии.Пример
Эта 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-групп не используют те же вертексы, что и полигоны других body-group, они не должны иметь швов между собой.
Примечание:Так как полигоны  одних body-групп не используют те же вертексы, что и полигоны других body-group, они не должны иметь швов между собой.Bodyгруппы в LOD мешах
Крайне рекомендуется использование LOD'ов - особенно для геометрии с высоким количеством полигонов. LOD'ы могут быть использованы с помощью QC-команды $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-группы, состояние которой вам необходимо поменять.
По стандарту, класс CBaseAnimating поддерживает 4,294,967,296 комбинаций (32 бита), а классCBaseViewModel - 256 (8 битов). Вы можете увеличить этот лимит, изменив SendProp для m_nBody.
Чтобы посчитать, сколько комбинаций вам нужно, перемножьте друг на друга размер всех ваших body-групп. Для примера из этой страницы будет 3 * 4 = 12, но добавив, например, две дополнительных группы того же размера, кол-во комбинаций поднимется до 144.

























