Sidebar

Компиляция модели со сменными скинами

Qwertyus

New member
Aug 13, 2009
1,339
26
0
Компиляция модели со сменными скинами

Столкнулся с такой проблемой - при декомпиляции любой модели в полученных файлах, похоже, не сохраняется никакой информации о встроенных в неё скинах. К примеру, в модели hgrunt.mdl имеем солдат с двумя цветами кожи - белым и чёрным (точнее, текстуры с тремя белыми лицами и одним чёрным + два варианта текстуры для рук). Если модель декомпилировать, а потом тут же собрать, то в полученном варианте hgrunt.mdl останется только один скин - с белой кожей рук. Объясните, пожалуйста, как создать полноценную модель, в которой будет доступна смена текстуры рук в разделе Skin. Какие строчки куда нужно добавить? Или, может быть, есть нормальная программа, умеющая правильно декомпилировать mdl-файлы с сохранением информации о скинах?

П. С. Для простоты приведу фрагмент hgrunt.qc:
$bodygroup body
{
studio "PC_soldier_body_reference"
}

$bodygroup heads
{
studio "PC_soldier_mask_reference"
studio "PC_soldier_cmdr_reference"
studio "PC_soldier_baclava_reference"
studio "PC_soldier_black_reference"
}

$bodygroup weapons
{
studio "PC_soldier_new_M4_reference"
studio "deployed_SPAS12_reference"
blank
}
Здесь, как видно, прописаны референсы для туловища, 4-х типов головы и 3-х типов оружия (одно - пустое). Текстуры рук называются, соответственно, PC_soldier_skin_wht.bmp (с белой кожей) и PC_soldier_skin_blk.bmp (с чёрной кожей). Запись о текстуре PC_soldier_skin_wht.bmp обнаружилась в файле PC_soldier_body_reference.smd, запись про PC_soldier_skin_blk.bmp в нём отсутствует. Что делать, чтобы смена скина работала?
 

Francisk

New member
Jul 3, 2007
394
34
Вопервых ты хоть поясни чем ты декомпилиш и какую версию mdl , предположу что ты декомпилиш hgrunt`а из хл1 ?)

На вскидку так сказать могу , что надобы все содержимое .qc файла показывать , потому что зачем показывать референсы если сам знаеш что это референсы , а показывать надо текстурные группы.

В .smd файлах текстуры трогать не стоит .
Я не уверен что при компиле под голд сорс .qc выглядит так же как и под сорс но , в общем под сорс текстурные групы указываются так :

Оффтоп

а у тебя значит должно быть примерно так :

Оффтоп

[ADDED=Francisk]1251454804[/ADDED]
ну и не кто не отменял валвовскую вики .
$texturegroup
QC commands
model compiling
 
Last edited:

Qwertyus

New member
Aug 13, 2009
1,339
26
0
Речь о моделях для первой ХЛ. Инструкции сорс для них не работают, а валвовские вики только про сорс. Декомпилировал Милкшейпом, консольным mdldec v1.2 - результат один и тот же, те его нет. Текстурные группы - я бы с удовольствием показал их, если бы они были в qc-файле. Но их там нет, видимо, в этом и проблема - декомпилятор их не создаёт. В проге Q-Compil v0.3 наткнулся на возможность добавки скинов в qc-файл при помощи строк типа:
$texturegroup skinfamilies
{
{ "PC_soldier_skin_wht" }
{ "PC_soldier_skin_blk" }
}
Однако, после добавления этих строк вслед за строками bodygroup отказывается работать компилятор - выдаёт сообщение, дескать, PC_soldier_skin_wht не найден, хотя вся декомпиленная модель лежит в одной папке - и референсы, и анимации, и текстуры, на что в qc-файле имеется соответствующее указание. Компилировать пробовал также Милкшейпом и прогой GUI StudioMDL (и её консольным вариантом).

Добавлено:
Скомпилил-таки модель, исправив строки так:
$texturegroup skinfamilies
{
{ "PC_soldier_skin_wht.bmp" }
{ "PC_soldier_skin_blk.bmp" }
}
Но засчёт этого текстура PC_soldier_skin_blk.bmp всего лишь добавилась в модель, но возможности смены скина не появилось :( .

[ADDED=Qwertyus]1251466899[/ADDED]
Решил проблему при помощи хака - выдрал из PC_soldier_body_reference.smd все анимации с текстурой PC_soldier_skin_wht.bmp. Вставил их непосредственно в референсы PC_soldier_mask_reference.smd, PC_soldier_cmdr_reference.smd, PC_soldier_baclava_reference.smd. В файл PC_soldier_black_reference.smd добавил те же анимации, но переименовал текстуру на PC_soldier_skin_blk.bmp. Но всё же это не решение проблемы со скином, возможности смены скина так и не появилось.
 
Last edited:

Francisk

New member
Jul 3, 2007
394
34
Яж говорил Smd не трогай . зачем это днлать ? в smd названия текстур указаны для полигонов , чтобы при обработке известно было что натягивать на полигоны , подмена названий текстур "мультискинность" делаеся в qc .

Все твои эти "понимания" на счет текстурных груп не пойму чем отличаются от того что я тебе сказал сделать ? ты вообще читал что я тебе написал ? ты закладки оффтопа открывал?
В итоге ты пришол к тому что я тебе и так посоветовал , ты вот что скажи сколько текстур использует модель ? не вариантов текстур ( скинов ) а самих текстур , руки отдельно от головы и всего остального или одна текстура на всю модель.

[ADDED=Francisk]1251537607[/ADDED]
Вообще тебе лудшебы сходить в тему релизов моделей под хл1 , увидеть там кто занимается моделингом под хл1 и кто нибудь тебе обязательно быстрей меня сможет помоч.
 
Last edited:

KarpovSergei

New member
Aug 25, 2009
4
64
0
0
Russia
Компиляция модели со сменными скинами

Скажите мне, пожалуйста - где мне узнать больше об этом?
 

Qwertyus

New member
Aug 13, 2009
1,339
26
0
Francisk, ты не серчай :) . Я человек не особо опытный, меня сбили с толку примеры с расширением *.vmt. А в виках вообще все примеры без расширений, как будто так и должно быть. Но всё-таки въехал. Сначала получилось правильно собрать другую разобранную модель - гнома. В ней три референса туловища, семь вариантов скина для первого референса, у остальных двух - только одна текстура. При декомпиле в qc-файле остались только записи для референсов:
$bodygroup body
{
studio "reference1"
studio "reference2"
studio "reference3"
}
Собрать модель со сменными скинами удалось при помощи следующей вставки:
$texturegroup skinfamilies
{
{ "dwarf.bmp" }
{ "whitebeardblue.bmp" }
{ "whitebeardred.bmp" }
{ "redbeardblue.bmp" }
{ "redbeardred.bmp" }
{ "redbeardwhite.bmp" }
{ "blackbeardwhite.bmp" }
}
Здесь dwarf.bmp - основная текстура (прописанная в reference1.smd), а все остальные - сменные. Упрощение, в отличие от модели солдата то, что для всей модели используется одна текстура, а не несколько (но, как выяснилось, это не критично). Причём смена скина работает только для первого референса (т. е. body - Submodel 1). У двух оставшихся референсов текстура не меняется.

Для скинов солдата нужно было добавить:
$texturegroup skinfamilies
{
{ "PC_soldier_skin_wht.bmp" }
{ "PC_soldier_skin_blk.bmp" }
}
А сборке модели со сменным скином мешала строчка
$cliptotextures
которая почему-то присутствовала в заголовке hgrunt.qc (вместе с ней выбор скина не появлялся ни при каких обстоятельствах). В данном случае смена скина работает для всех четырёх типов солдат, т. к. сменная текстура зацеплена не на референсы из группы "$bodygroup heads", а на глобальный референс из "$bodygroup body".

Так что, спасибо за помощь :) .
 

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord