[RU] Как перенести модели из Source 2 в SFM

Source Filmmaker190 views11 favorites5 min readRussianby Philosophie du SoiUpdated Feb 28View on Steam ↗

ССЫЛКИ

Гайды Mark2580 (создание моделей в Source 1)

ПОДГОТОВКА

Для начала скачиваем Blender и устанавливаем аддоны SourceIO и Blender Source Tools
Так же рекомендую ознакомиться с основами управления Blender, не помешает)

  • Открываем Blender и заходим в настройки
  • Переходим в Add-ons, нажимаем на стрелочкув правом верхнем углу и выбираем "Install from Disk..."
  • Выбираем SourceIO.zip и нажимаем "Install from Disk"
  • Если у вас появился аддон в списке - значит вы молодцы

ПОВТОРЯЕМ ВСЁ ТО ЖЕ САМОЕ, НО УЖЕ ДЛЯ Blender Source Tools

ИМПОРТ В BLENDER

  • Открываем файлы игры и переходим в \game\dota
  • Открываем pak01_dir.vpk через S2V
Для того, чтобы автоматически открывать .vpk через S2V можете нажать на "Open VPKs with this app"

Если нам нужна моделька героя - переходим в \models\heroes
Если нам нужны модельки сэтов - переходим в \models\items
И т.д.

В этом гайде в качестве примера будет использоваться bard_frogling из \models\heroes\bard\
  • 1. Выбираем "Decompile & export"
  • 2. В качестве формата выбираем GLTF или GLB
  • 3. Импортируем в Blender
  • 4. Убираем анимацию, для этого:
    • - Выбираем арматуру (иконка человечка)
    • - Внизу нажимаем на иконку с часами и выбираем "Nonlinear Animation"
    • - Выбираем включённую анимацию (1) и убираем её (2)
    • - Переходим в Pose Mode, выделяем все кости [A] и убираем все трансформации
    • - Проверяем, стоит ли моделька в T-позе (нажимаем на глазик у арматуры)

Теперь у нас есть жабка!

ЭКСПОРТ

Лимиты Source 1
Модели в S1 не могут иметь более 256 костей в формате DMX (и 128 костей в формате SMD)
Модели не могут иметь более 65 536 вершин
Так же существует лимит на количество контроллеров лицевой анимации, 96

Звучит как огромные числа, мы ведь точно никогда не упрёмся в эти лимиты, правда?) Правда ведь?..

Shape keys, Morphs, Flex shapes (Лицевые анимации):
https://developer.valvesoftware.com/wiki/Flex_animation
If a shape name contains underscores, that shape becomes corrective. Don't put underscores in flexes that you want to expose to animators.

В Source 1, если лицевая анимация имеет подчёркивание "_" в своём имени - то она становится "Корректирующей", однако Source 2 использует подчёркивания почти в каждом ключе! Для исправления этого можно использовать аддон ShapeKeys Editor. Вы можете просто удалить все подчёркивания, однако, скорее всего упрётесь в лимит количества контроллеров. По правильному будет удалить лишь все одинарные "_" подчёркивания, а все двойные "__" заменить на одинарные "_" (Ну и муть)

Ну, перейдём к экспорту

ЭКСПОРТ МОДЕЛИ
  • Переносим меши из под арматуры в сцену
  • Выделяем все нужные объекты (арматура и меши)
  • Переходим в Scene > Source Engine Export и в Export Path выбираем папку в которую всё будет экспортировано
  • Выставляем Weight Link Cull Threshold 1.0
  • Нажимаем Export > Selected objects

ЭКСПОРТ АНИМАЦИИ
  • Для начала нам нужно создать базовую idle анимацию (Т поза) для нашей модели
    Самым простым способом будет перейти в таймлайн
  • Выбрать арматуру, перейти в pose mode, нажать на Auto keying, [R] (поворот) и [Enter] (применить)
  • Если у нас создался такой ключ и при нажатии на экспорт есть dmx файл с иконкой анимации - значит всё получилось

ЭКСПОРТ АНИМАЦИИ МОДЕЛИ
Используя S2V можно экспортировать встроенные .dmx анимации модели, НО!

Они не подходят для Source 1, их формат "слишком новый" и на момент написания гайда я не придумал лёгкого и быстрого способа конвертировать их в нужный, "старый" .dmx формат

КОМПИЛЯЦИЯ

QC Файл
С помощью него мы будем указывать Crowbar как связывать модели и анимации в один .mdl файл

- Советую прочитать руководство от Mark2580
https://steamcommunity.com/sharedfiles/filedetails/?id=875148802
для нашей модели получился вот такой QC файл

$modelname "cheemsdfi/frogling/frogling.mdl" // Путь для сохранения в папке моделей игры (Для SFM это <Путь до папки SFM>\game\usermod\models) $scale 100 //Множитель размера модели, мне нравится 100 $model "frogling" "models_heroes_bard_bard_frogling.vmdl_c.bard_frogling_base_lod0.dmx" { } // Наша основная модель $sequence "idle" "anims/models_heroes_bard_bard_frogling.vmdl_c.dmx" loop fps 30 // Idle анимация $cdmaterials "models\cheemsdfi\frogling\" // Путь к папке материалов (Для SFM это <Путь до папки SFM>\game\usermod\materials) // Необязательные комманды $surfaceprop "flesh" $mostlyopaque $contents "solid" //Бодигруппа аксессуаров $bodygroup "acc" { studio "C:/Users/admin/Desktop/SFM_GUIDE/S2V_EXAMPLE/Export\models_heroes_bard_bard_frogling.vmdl_c.bard_frogling_acc_a_lod0.dmx" studio "C:/Users/admin/Desktop/SFM_GUIDE/S2V_EXAMPLE/Export\models_heroes_bard_bard_frogling.vmdl_c.bard_frogling_acc_b_lod0.dmx" studio "C:/Users/admin/Desktop/SFM_GUIDE/S2V_EXAMPLE/Export\models_heroes_bard_bard_frogling.vmdl_c.bard_frogling_acc_c_lod0.dmx" blank }

Заходим в Crowbar, выбираем QC файл, игру и компилируем модель

Далее заходим в SFM SDK и запускаем Model Viewer

Открываем нашу модель

Сейчас у нашей модели нет материалов, но мы будем это исправлять

МАТЕРИАЛЫ

VMT
Для добавления материалов нам нужно создать .vmt файл материала и конвертировать текстуры в формат .vtf Названия файлов материалов должны соответствовать названиям материалов в Blender

Для ускорения процесса создания материалов я создал специальный сайт
Как им пользоваться:
  • Прописываем наш путь к папке материалов (как в $cdmaterials нашего QC файла)
    P.S. ВАЖНО ОСТАВИТЬ "/" В КОНЦЕ
  • Выбираем GLB модель
  • Нажимаем "Convert"
  • По завершению загрузки нажимаем на "Download VMTs"

Внутри нас будет ждать нужная структура папок, корневую папку models нам нужно скопировать в папку материалов (как в $cdmaterials нашего QC файла).

VTF
Для конвертации текстур можно вручную использовать VTFEdit, однако для ускорения процесса я, опять же, создал парочку скриптов (png2vtf_color.bat и png2vtf_normal.bat)

Просто перекидываете текстуры с припиской _color на png2vtf_color.bat и с припиской _normal на png2vtf_normal.bat. Конвертированные .vtf текстуры сохраняются в папке "VTF". Потом их просто нужно скопировать туда же где и у нас .vmt

Пример
После проделанных махинаций наша папка материалов должна выглядеть примерно так:

Теперь можно смотреть на жабок и в SFM!
Это мой первый опыт в написании гайдов, если у вас есть идеи как можно дополнить его - напишите в комментарии, пожалуйста

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.