Объединяем модели в один файл (submodels)

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

Да, это может показаться странным, ведь в наше время скорость позволяет. Но нет, товарищи. В регионах по-прежнему все плохо(по себе знаю) и мне бы не хотелось их обделять, (в общем, задумываются те, у кого все хреново =D ).

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

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

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

Объединяем модели в один файл (submodels), image #1

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

Объединяем модели в один файл (submodels), image #2

Теперь берем вторую модель "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" следующим образом:

Объединяем модели в один файл (submodels), image #3

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

Объединяем модели в один файл (submodels), image #4
Объединяем модели в один файл (submodels), image #5
1 of 2

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

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

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

Объединяем модели в один файл (submodels), image #6

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

Объединяем модели в один файл (submodels), image #7

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

Объединяем модели в один файл (submodels), image #8

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

Объединяем модели в один файл (submodels), image #9
Объединяем модели в один файл (submodels), image #10
1 of 2
Объединяем модели в один файл (submodels), image #11

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

Источник
927 views·12 shares