Объединяем модели игроков в одну

Сообщения
438
Реакции
471
Помог
6 раз(а)
Предисловие:
В последние время стал задумываться, как можно сократить размер моделей, чтобы в совокупности приходилось меньше скачивать игрокам.
Да, это может показаться странным, ведь в наше время скорость позволяет. Но нет, товарищи. В регионах по-прежнему все плохо(по себе знаю) и мне бы не хотелось их обделять, (в общем, задумываются те, у кого все хреново =D ).

Для работы с моделями нам понадобиться две программки: studiomdl (компилятор) и mdldec (декомпилятор).

Часть 1. Объединение с использованием Skin'ов (не совсем по теме объединения, скорей добавление, но думаю, стоит рассказать)

В качестве примера рассмотрим одну из моделей девушек c ризными скинами.

1.png.0ecfcda9a72bfe423e1e8ab6707413f1.png

Как видим, модели абсолютно идентичные, но имеют разную "раскраску" т.е. скин. Так спрашивается, зачем нам две модели (в сумме 3.3 мб.), когда можно в одну добавить скин другой модели и сократить общий размер почти в два раза. Берем первую модель "vipcatgirl_ct_N.mdl" и перетаскиваем на наш декомпилятор "mdldec.exe" - процесс пошел. Видим куча всего, но нам нужен всего лишь один файл: "vipcatgirl_ct_N.qc" в нем и содержится вся информация о модели.

2.png.4486761de3e27039edb51659a92d35d8.png

Теперь берем вторую модель "vipcatgirl_tt_N.mdl" и с помощью программы "Jed's Half-Life Model Viewer" экспортируем все текстуры, кроме одной: "T_W_D_R01_F01.bmp" - это фейс, и он не менялся (не разукрашивался, так сказать). Экспортируемые текстуры желательно переименовать, скажем, добавив в конце наименования цвет текстуры, в нашем случае "Red" После чего, скопируем текстурки к нашей прежней "декомпилируемой" модели и в итоге получаем следующий, общий список текстур:

T_W_S_Cats_C.bmp
T_W_S_Cats_G.bmp
T_W_S_Cats_L.bmp
T_W_S_Cats_S.bmp
T_W_S_Cats_U.bmp
T_W_S_Cats_C_Red.bmp
T_W_S_Cats_G_Red.bmp
T_W_S_Cats_L_Red.bmp
T_W_S_Cats_S_Red.bmp
T_W_S_Cats_U_Red.bmp
Теперь нам осталось добавить новые текстурки в первую модель, а именно в файл "vipcatgirl_ct_N.qc" следующим образом:

3.png.f07bf5c9d6549f15a3614cadcbeb5b07.png
Теперь нам необходимо скомпилировать модель. Берем "vipcatgirl_ct_N.qc" и перетаскиваем на наш компилятор "studiomdl.exe" - процесс завершен

4.png.2fc9f476359397923f5c9ee06bcc4c4b.png 5.png.fe9ba27ecb09613b5043f0a7faaa7cbe.png
Итоговый размер модели: 2.07 мб, сократили: 1.23 мб. При использовании на сервере, скажем, 5-10 моделей, можно достаточно сэкономить .
P.s. Существуют одиночные модели, но в тех или иных случаях, необходимо две раскраски для CT и TT дабы, хоть как-то понимать за какую команду играет игрок. В этом случае, можно выдернуть текстуры модели, разукрасить их, и залить обратно в виде дополнительно скина.

Часть 2. Объединение с использованием SubModel

Бывают случаи, когда необходимо объединить две разные модели в одну, в таком случае Skin'ы нам не помогут, и на помощь нам приходит SubModel =D
В качестве примера, возьмем две разные модельки:

6.thumb.png.bfc4e56bb66040f157604735da4c2a97.png

Закидываем обе модели в одну директорию и с помощью, уже известного, декомпилятора прогоняем две модели по очереди.
Далее открываем "police_ct.qc" дабы посмотреть, какие меши используется в данной модели.

7.thumb.png.b5cbe4e3d03b9afe4301ec8abb5b9bbe.png

Теперь открываем "alice.qc" и добавляем туда меш предыдущий модели, объединив их в группу следующим образом:

8.thumb.png.c395841605da52aa64da27690131dae5.png

И последним делом компилируем "alice.qc" и получаем две модели в одной:

9.png.c88add56eff7aafe96456f742aeb0354.png 10.png.e490934cb5ca643b186984241179be57.png

Итоговый размер модели: 2.41 мб, сократили: 1.63 мб.
P.s. модели из CSO поэтому в ней содержатся ненужные анимации, которые не используются в CS 1.6 Удалив их, мы еще больше сможем сократить итоговой размер модели.

Декомпилятор v1.2: mdldec12.zip
Патченный компилятор: xash_studiomdl.rarофициальный топик: gamebanana
Jed's Half-Life Model Viewer v1.36: hlmv136_setup.zip
(Альтернатива: tools - Paranoia2 Modelviewer)
 

Вложения

Последнее редактирование модератором:
Сообщения
28
Реакции
14
Привет.
Помогите пожалуйста разобраться. Если брать ситуацию как в первом случае, когда модель одна, а скинов несколько, то как использовать в плагине это дело? Например, если взять в качестве плагина amxx - Models Replacement
 
Последнее редактирование модератором:
  • Нравится
Реакции: SonG
Сообщения
438
Реакции
471
Помог
6 раз(а)
BaJIepbI4, в данном плагине не предусмотрено такой возможности, если я правильно понимаю его функционал.
 
Сообщения
87
Реакции
55
Помог
1 раз(а)
Javekson,
В принципе код скину , прикрепишь его к тутору просто, если кто-то раньше его не запилит)
 
Сообщения
1.783
Реакции
1.981
Помог
51 раз(а)
Код:
#include <reapi>

set_entvar(ent, var_body, 0); // set submodel
set_entvar(ent, var_skin, 0); //set skin
 
Сообщения
28
Реакции
14
Вопрос - а если в одной из моделей несколько reference mesh(es) как в этом случае объеденить их в субмодели?
 
Сообщения
28
Реакции
14
Прошу помощи у знающих людей разобратьтся.
Решил объеденить 4 модели в одну (2 модели вип и админ за каждую команду)
Взял стандартные модели gign и terrorist, объеденил их меши в группу:

Код:
$bodygroup "model"
{
studio "gign"
studio "terror"
}


Далее все 4 текстуры объеденил в группу:
Код:
$texturegroup skins
{
{ "gign_dmbase2.bmp" } - админ кт
{ "gign_dmbase2_vip.bmp" } - вип кт
{ "Terrorist_Working1.BMP" } - админ терр
{ "Terrorist_Working1_vip.BMP" } - вип терр
}


После компиляции получилось 2 субмодели и 4 скина, но проблема в том, что скины меняются только у первой субмодели (кт). Если выбрать вторую субмодель (терр), то у нее только стандартный скин (Terrorist_Working1.BMP) и другие скины не применяются. Где я накосячил?
 

Вложения

Сообщения
2.248
Реакции
2.271
Помог
54 раз(а)
BaJIepbI4, код тоже полезно приложить, для разбора.
 
Сообщения
28
Реакции
14
wopox1337, приложил архив со всеми тремя модельками и qc файликами.
 
Сообщения
1.783
Реакции
1.981
Помог
51 раз(а)
BaJIepbI4, попробуй
PHP:
$texturegroup skins
{
{ "gign_dmbase2.bmp" "gign_dmbase2_vip.bmp" }
{ "Terrorist_Working1.BMP" "Terrorist_Working1_vip.BMP" }
}
 
Сообщения
28
Реакции
14
fantom, Ты наверно не понял что мне нужно :)

Код:
$texturegroup skins
{
{ "gign_dmbase2.bmp" "gign_dmbase2_vip.bmp" }
{ "Terrorist_Working1.BMP" "Terrorist_Working1_vip.BMP" }
}

Если писать вот так, то это означает, что каждый скин состоит из нескольких текстур и в данном случаеполучается два скина по две текстуры в каждом.

Я читал про это, но там нет именно того что мне нужны - скины для субмоделей (не единственной модели, а нескольких субмоделей)
 
Сообщения
28
Реакции
14
Спасибо большое fantom
Вот такой вариант работает как и нужно было:
Код:
$texturegroup skins
{
{ "gign_dmbase2.bmp" "Terrorist_Working1.BMP" }
{ "gign_dmbase2_vip.bmp" "Terrorist_Working1_vip.BMP" }
}
 
Сообщения
438
Реакции
471
Помог
6 раз(а)
Вопрос - а если в одной из моделей несколько reference mesh(es) как в этом случае объеденить их в субмодели?
Я пока сам не дошел до этого, не подскажу как, не удивлюсь если это в принципе не возможно.
Если только плагином в дальнейшем цеплять одновременно две меши на игрока.
 
Сообщения
1
Реакции
1
Господа что я не правильно делаю подскажите,второй день ковыряюсь не могу врубиться,в общем тема такая,решил тут я создать админские модели под свой сервак ну как создать,сделать рескин) На стандартный плагин adminmodel,замутил сначала модель кт,установил закомпелировал плагин модель кт сменилась все проблем нет,но вот за тера из того плагина, я решил поставить из стандартных но другой модели,более на мой взгляд удачной, сделал рескин на arab,установил на серв и тут та понял я то,что что та тут не так)Моделька та моя не отображается)Что как бляха муха так,людей на сервере своими рестартами поразгонял,и так и сяк и не отображает хоть убей.И тут до меня доперло,походу дело было не в кабине а кое кто сидел в кабине)Ну дак вот перерыл я кучу форумов,какой лабуды тока нет,а толку не хрена.В общем связался я с такой програмкой как MilkShape 3D 1.7.8,и о да о чудо, у меня получилось его декомпилировать)Но радостей моих не много было)В общем сначала я не как не мог вообще компиляцию провести,что та там наклацал, понаписал в qc лабуды какой то,в итоге у меня появился просветик лучик света спутя милион раз)Компиляция вроде как прошла,но эта чуда прога в конце её закрывается с ошибкой,но mdl модель изменилась,и даже стала открываться,в общем господа щарющие и просто хорошие человечки подскажите как мне все это делать,что бы все было как надо)
Да простит Меня 'Админ'

$modelname "D:\Models\admin_te\admin_te.mdl"
$cd "\Models\admin_te\"
$cdtexture "\Models\admin_te\"
$cliptotextures
$scale 1.0
$bodygroup "mahnatka"
{
studio "arab"
studio "terror"
}
$bodygroup "backpack"
{
blank
studio "bomb"
}
$attachment 0 "Bip01 R Hand" 10.855000 -0.416715 1.870680
$attachment 1 "Bip01 L Hand" 10.855000 -0.416715 1.870680
// 111 sequences
Ну и тут дальше лабуда стандартная вроде как)
19 Окт 2017
А нет все же выдет ошибка модели)
19 Окт 2017
Скрин ошибки.png
 
Сообщения
261
Реакции
255
Помог
5 раз(а)
Ananas,
1. Какое отношение ваш вопрос имеет к этой статье? Почему не создали новую тему?
2. Вы очень подробно описали ваши действия, это лишнее. Среди этого текста остался непонятен сам вопрос: что вы хотите получить в итоге?
 
Сообщения
1.645
Реакции
994
Предупреждения
4
Помог
32 раз(а)
Модель в милке открывается с одной cmd'шки? Ибо если с одной, то возможно проблема из-за бодигрупп. И да, то не лабуда, а различные анимации модели)
 
Сообщения
1
Реакции
0
1 вопросик как их декомпилировать и сделать опять раздельно? у меня просто пак шапек которые надо раскопилитьнуть а я не умею их юзать прост паками, кто может пожалуйста помогите
 
Сообщения
33
Реакции
0
Надо код на текстуру без каких программы организовать с плагином
 

Вложения

Сообщения
7
Реакции
1
Помог
1 раз(а)
А с моделями оружия такое можно сделать? Например, серебряный и золотой АК-47 в одной модели.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу