Source Filmmaker

Source Filmmaker

152 ratings
Перекомпил модели
By MARK2580
Маленький мануал как перекомпилить модель для добавления к ней новых скинов.
   
Award
Favorite
Favorited
Unfavorite
Нужные тулзы
Привет народ. Раз вы читаете этот тутор вам таки захотелось добавить модельке скинов, а не довольствоваться стандартом.

Для начала оглашу список программ, которые вам понадобятся.

  • GCFScape[gamebanana.com] - Распаковка gcf, vpk, bsp (до 21й версии).
  • VTFEdit[gamebanana.com] - прожица для редактирования, точнее конвертирования граф. форматов в vtf и обратно.
  • Crowbar - монтировка фримона... лан шучу, эт новый декомпилятор и по совместительству компилятор моделек.
  • MDL Texture Info[www.wunderboy.org] - консольного вида прожица которая с потрахами выдаст вам все пути и имена текстур использующихся моделью. (В последних версиях Crowbar есть подобная функция)
  • Ну и разумеется продвинутый txt редактор типа
    AkelPad[akelpad.sourceforge.net] или Notepad++[notepad-plus-plus.org].

Мой гайд с полным описанием работы программы Crowbar
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1694677975
Crowbar - описание и настройка
Crowbar - пожалуй самая лучшая тулза для моделеров на данный момент ! "Жрёт" практически все модели, выдаёт флекс, развес и прочее что не умели декомпиляторы прошлого поколения.



Рассмотрим прогу ближе и настроим пути до игры / компилятора.

1я вкладка - декомпилятор. Тута всё просто, жмём Browse, выбираем модельку, побираем выходные параметры и Decompile MDL File. Для тех кто вообще не шарит советую не трогать все те галочки что ниже. Сочините только подходящее имя папки в "Subfolder". Эта папка с декомпилированной моделькой появится рядом с моделью. Не используйте русский !!!

2я вкладка - лог декомпиляции. Там можно наблюдать на сколько всё удачно проходит.

3я вкладка - компилятор. Здесь остановлюсь подробнее.
Для начала жмём кнопку "Set Up Games" и сносим нафиг всё что по дефолту там есть, всё это нам точно не пригодится. Жмём кнопку "Add" и начинаем прописывать пути.
  • Для начала нам предлагают вписать имя конфигурации, пишем Source Filmmaker.
  • Location of gameinfo - указываем путь до GameInfo.txt.
    ...Steam\SteamApps\common\SourceFilmmaker\game\usermod\gameinfo.txt
  • Location of game's model compiler - путь до studiomdl.exe (компилятор моделек).
    ...\Steam\SteamApps\common\SourceFilmmaker\game\bin\studiomdl.exe

Далее жмём Save если хотим добавить ещё конфигов или Save and Close, если больше ничего не интерисует.

4я вкладка - лог компиляции. Наблюдаем за компиляцией модельки. Кнопка Recompile повторно запускает компиляцию.

5я вкладка - привет разработчикам ))))
Декомпиляция модели
Находим модельку, вскрываем архивы... бла бла бла... всё это можете прочитать в моём руководстве вот ссылка

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

Модель состоит из нескольких файлов. Ищем примерно это:
model_name.mdl model_name.phy model_name.vvd model_name.dx80.vtx model_name.dx90.vtx model_name.sw.vtx или model_name.mdl model_name.phy model_name.vvd model_name.dx90.vtx model_name.sw.vtx или даже это если у модели нету колизии model_name.mdl model_name.vvd model_name.dx90.vtx model_name.sw.vtx

Короче нашли нужный стаф, выбираем модельку во вкладке декомпилятор и жмём декомпилировать. Ищем результат в "придуманной" вами папке (см. выше).
Разбор конфига (qc)
В папке видим пачку файлов, их может быть около 20-30 и больше, в зависимости какая была фантазия автора в плане боди групп и лодов. Ничего не трогаем и не удаляем, всё понадобится в процессе обратной сборки модели.

Нам нужен только файл *.qc. Это главная конфигурация для компилятора. QC - обычный текстовый файл но не ковыряйтесь в нём блокнотом. Используйте редакторы которые я огласил в шапке руководства.

Открываем файлик и видим мнооого не понятных буковок...
$modelname "player/alyx.mdl"
Это путь и имя модели, меняйте по своему усмотрению, не оставляйте стандартное имя, модели будут конфликтовать. (если в vpk есть оригинал).
Крутим ниже и ищем строчку...
$cdmaterials "models\alyx\"
Это путь где модель будет искать текстуры натянутые на неё. Сюда можно приписать сколько хочется таких строчек с новыми путями. По желанию.
Ниже $cdmaterials могут быть скины, а могут и не быть ! Выглядит это примерно так
$texturegroup "skinfamilies" { { "Skin_1.vmt" } { "Skin_2.vmt" } }

Первый скин в этой конфигурации обязательно дожен оставаться таким как есть по умолчанию !!! Иначе получите модель с не меняющимися скинами.
QCI include
Малнькое удобсво - *.qci файл. В него можно перенести частично конфигурацию, например список боди групп или скинов. Для этого место блока
$texturegroup "skinfamilies" { { "Skin_1.vmt" } { "Skin_2.vmt" } }
Можно написать только
$include "texturegroups.qci"

Создаём файлик с расширением *.qci и переносим туда имеющуюся конфигурацию скинов, или пишем с нуля по образцу выше. Каждый скин начинается и заканчивается фигурной скобкой. { и }.
Нахождение имён и путей
Далее нам пригодится прога MDL Texture Info.
Программа не имеет интерфейса, используйте по типу "перетащить на ярлык".
Перетаскиваете модельку (mdl файл) на прогу / ярлык к ней и получаете полную информацию о модели.



Model File: alyx.mdl - изначальное имя модели Internal Name: "player/alyx.mdl" - где она проживает и остальные файлы Version: 48 - версия модели Number of Textures: 7 - кол-во текстур Number of Textures Paths: 1 - кол-во путей к текстурам (до папок) TEXTURE NAMES - Ну тута все текстуры которые использует модель. ============= Texture 1 - "alyx_faceandhair.vmt" Texture 2 - "eyeball_r.vmt" Texture 3 - "eyeball_l.vmt" Texture 4 - "hairbits.vmt" Texture 5 - "fmouth.vmt" Texture 6 - "plyr_sheet.vmt" Texture 7 - "plyr_sheet_skin.vmt" TEXTURE FOLDER(S) - пути до папок с текстурами ================= Texture path 1 - "<Mod Folder>\materials\models\alyx\"
Прописываем новые скины
$texturegroup "skinfamilies" может изменять все текстуры которые используются на модели.

Например наша модель как узнали ранее использует такие текстуры
"alyx_faceandhair.vmt" "eyeball_r.vmt" "eyeball_l.vmt" "hairbits.vmt" "fmouth.vmt" "plyr_sheet.vmt" "plyr_sheet_skin.vmt"

Пишем в конфиг следующее:
$texturegroup "skinfamilies" { { "alyx_faceandhair.vmt" "eyeball_r.vmt" "eyeball_l.vmt" "hairbits.vmt" "fmouth.vmt" "plyr_sheet.vmt" "plyr_sheet_skin.vmt" } }
Это будет наш 1й основной скин. Его нельзя менять. Правда если насильно не править сами smd файлы (можно без ипользования 3ds max, просто как текст, но очень осторожно !)

В итоге в ващем QC или инклуде QCI будет примерно следующее

$texturegroup "skinfamilies" { { "alyx_faceandhair.vmt" "hairbits.vmt" "fmouth.vmt" "plyr_sheet.vmt" "plyr_sheet_skin.vmt" } { "alyx_faceandhair2.vmt" "hairbits2.vmt" "fmouth2.vmt" "plyr_sheet2.vmt" "plyr_sheet_skin2.vmt" } { "alyx_faceandhair3.vmt" "hairbits3.vmt" "fmouth3.vmt" "plyr_sheet3.vmt" "plyr_sheet_skin3.vmt" } }


Внимание ! глюки и лимиты
  • Если ни в одном из скинов не будут меняться например глаза то их можно и не писать в 1м скине. Если же например в 1м скине глаза не прописаны, но во 2м они будут, то не миновать адовских глюков. Т.е. 2й скин будет сравнивать себя с 1м, и заменять текстуры по анологии, не хотите же увидеть что глаз натянут на ...... ну вы поняли.

  • Всего модель может использовать 32 текстуры или даже 28 (в некоторых непонятных случаях). 32 не за один скин, а за все скины вместе. Всё это будет грузится при спавне модели. Большая нагрузка, поэтому лимит.
[/i]
Компиляция модели
Наковырялись, сделали новых скинов, всё прописали...ах да юзайте VTFEdit для создания текстурок... окпируйте vmt, меняйте в них имена... это я думаю можно прочитать практически везде и в этом нету большой надобности рассказывать.

P.S - если всёж кому не понятно, постораюсь добавить часть с описанием и этой процедуры.

Заходим в монтировку, залазим на вкладку компилятор и выбираем наш QC файл. Галочки не лапаем.... Жмём "Compile QC File". И наблюдаем не очень долгую компиляцию модели, всё зависит от кол-ва боди групп, флекса и прочих мелочей. У SFM самый быстрый компилятор, в отличии например от hl2 там компилятор тужится раза в 3 дольше.

Ждём появления заветной строчки
...Compiling finished. Check above for any errors.
Если она появилась в конце всего мяса то радуйтесь, ваша модель скомпилилалась.
Фиксы прозрачности
Если модель сильно затемнятся при включенном АО - убедитесь есть ли у нее прозрачные текстуры. Если они есть то найдете нужный vmt файл и откройте его с помощью любого текстового редактора например блокнота). Найдите строчки $alphatest "1" и(или) $transclucent "1". Замените единицы в этих строчках на нули. Если вы проделали все успешно то AO начнет рендерится и на нужных текстурах модели.

Если у модели нет прозрачных текстур, но она полностью просвечивается АО, то вам придется перекомпилировать модель с параметром $mostlyopaque.



Ошибки и решения
Ошибка
Описание и решение
Too many materials used, max 32
Модель использует текстур больше лимита, удалите лишние скины.
бла.qc(123): - Rule for unknown flex blank
Указан не верный или не существующий флекс. В QC найдите строчку указанную в скобках и удалите её. Повторяйте до исчезновения ошибки.
ERROR: 'EXCEPTION_ACCESS_VIOLATION' (assert: 1)
Нету доступа к выходной папке или на модели нету групп сглаживания.
WARNING: model has too many verts, cutting into multiple models
Ошибка появляется в studiomdl.exe из SFM. Компилятор считает, что модель слишком полигональна и насильно делит её на несколько отдельных частей, что плохо сказывается на работе глаз персонажей. Если возможно разделите сами модель на составляющие.

Пишите свои ошибки. Добавлю и опишу решения. Удачных рекомпилов.
94 Comments
Nurok 29 Apr @ 11:01pm 
@MARK2580, спасибо за совет! Попробую, если на этой модели есть возможность скины добавить
MARK2580  [author] 29 Apr @ 10:09pm 
Crowbar не идеально декомпилирует модели. Как вариант можно воспользоваться программой Source Model Skin Editor, она позволяет добавлять/удалять скины без декомпиляции, лично я никогда её не использовал, в её работоспособности не уверен.
https://developer.valvesoftware.com/wiki/Source_Model_Skin_Editor
Nurok 29 Apr @ 9:48pm 
@MARK2580, Ну тогда хорошо. В целом скин сделать получилось, оказалось ничего сложного, теперь буду мурыжить другую модельку, правда при компиляции ломает физику, поэтому придется разбираться
MARK2580  [author] 29 Apr @ 5:34pm 
Без разницы. Это один и тот-же движок.
Nurok 29 Apr @ 5:39am 
@MARK2580, благодарю за ответ. И прошу прощения, я похоже перепрыгнул из GMOD в Sourse FilmMaker, или они связаны между собой и действия практически одинаковы?
MARK2580  [author] 29 Apr @ 4:27am 
vtf - текстура
vmt - материал
vtx - это вообще часть скомпилированной модели
qc и так уже должен был быть после декомпиляции и он должен быть вместе с smd моделями, а не где-то с текстурами. И прописано в нём уже всё что надо, кроме новых скинов которые ты захотел добавить.
Nurok 29 Apr @ 2:55am 
Приветствую! Не совсем соображаю в моддинге, но решился сделать скин на модель авто.
Предоставлю вводные:
Уже создал текстуры в форматах vtx, vmt.
Воссоздал директорию ведущую к этим текстуркам.
Вопрос следующий, у меня условно получается папка с материалами, в ней я должен создать QC файл, прописав а нём путь до модели и остальные параметры и скомплеировать по итогу?
MARK2580  [author] 13 Apr @ 8:13am 
лан я там кинул в друзья (временно) у стима ща беда с ссылками.
Shorfi [RU] 12 Apr @ 6:35am 
Впервые про него слышу. Понадеюсь, что ссылка сработает
{LINK REMOVED} {LINK REMOVED}
MARK2580  [author] 11 Apr @ 5:18pm 
а, можно на pastebin например скинуть ссылку