Перенос ресурсов моделей из Source
Source 2 имеет встроенную систему для преобразования MDL-файлов от
Source в формат
Source 2. Можно использовать эту систему для преобразования файлов без исходников ресурсов, но есть некоторые сложности.
Требования
Эта система очень чувствительна к содержимому импортируемых MDL-файлов. В настоящее время Source Filmmaker всё ещё является наиболее успешным инструментом для импорта моделей, также может быть полезным, то что
Source Filmmaker поставляется с ресурсами из множества игр. Тем не менее,
Half-Life 2 и
Left 4 Dead 2, среди прочих, были протестированы и оказались несовместимы, но, к счастью, Valve уже перенесла много ресурсов из этих игр.
Создание VMDL-файла
Для преобразования MDL-файла, сначала, необходимо создать структуру директорий для ваших ресурсов. Допустим, необходимо преобразовать модель из
Half-Life 2, пусть это будет "models/humans/group01/male_07.mdl" для использования в
Half-Life: Alyx. Чтобы сделать это, нужно установить инструменты и директрию ресурсов для модификации, для которого необходимо скомпилировать модель. В этом случае будет нужна директория hl2 в директориях content и game, внутри директории "steamapps/common/Half-Life Alyx".
Затем переместите MDL-файл и соответствующие ему файлы в ту же вложенную директорию, что и в
Source. Так, например, файлы модели male_07 теперь будут размещаться в "Half-Life Alyx/content/hl2/models/humans/group01/male_07.mdl".
Наконец, создайте новый VMDL-файл с именем, необходимым для переноса модели (в нашем случае, male_07.vmdl). Откройте его в любом текстовом редакторе и добавьте в него следующий код. Закройте файл и затем откройте Source 2 Tools. Стоит отметить, что путь всегда должен соответствовать пути расположения вашей модели. В нашем случае это:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
m_sMDLFilename = "models/humans/group01/male_07.mdl"
}После этого можно открыть VMDL-файл и он автоматически будет скомпилирован в формат VMDL_C!
Осталось только создать файлы материалов, которые должны иметь одинаковые имена и вложенную директорию подобно VMT-файлам в
Source. Так, например, файл citizen_sheet.vmat будет размещаться в materials/models/humans/male/group01/citizen_sheet.vmat
Half-Life: Alyx и ModelDoc
Half-Life: Alyx представлен новый редактор моделей под названием
ModelDoc Editor (позже добавленный в Dota 2). ModelDoc предоставляет более широкий набор возможностей для обработки моделей и предоставляет доступ к специальным инструментам, недоступным в старом редакторе моделей.
С помощью ModelDoc можно импортировать старый VMDL-файл, выбрав Файл → Импорт → Импортировать и преобразовать старый VMDL. После этого, фактически будут обработы все исходники модели (используя ранее скомпилированный VMDL_C-файл) и создадутся несколько FBX-файлов, с которыми можно будет работать. После этого можно будет удалить старый MDL-файл, так как он больше не нужен.
Это удобно, если необходимо внести изменения при переносе модели в
Source 2. В настоящее время не существует известного способа пакетной обработки всех VMDL-файлов в игре, но можно использовать этот инструмент для устранения проблем с импортером.
Решение проблем
Модели, имеющие лицевую анимацию, могут быть импортированы, но, если анимация имеет некоторые алгоритмы (например, модели персонажей с изменяющейся мимикой), то модели будут импортированы неправильно. Пока еще нет известных решений, но, возможно, с помощью процесса декомпиляции, который выполняет ModelDoc, мы могли бы решить эту проблему.
Некоторые более сложные модели могут вызывать случайные сбои или отказы системы, что приведёт к неправильному импорту. На данный момент мало что можно предпринять для решение этой проблемы, возможно, изучение вывода в терминал VConsole поможет разобраться в причинах проблемы.
Метод SourceIO
Также можно преобразовать MDL-файлы в формат FBX для импорта в ModelDoc, используя SourceIO для Blender, который можно найти здесь. Импортируйте необходимый MDL-файл в пустую сцену и экспортируйте его как FBX-файл. Затем в ModelDoc нажмите Добавить новую сетку, и выберите свой файл FBX-файл.
Метод cs_mdl_import
cs_mdl_import can be found here: .../game/bin/win64/cs_mdl_import.exe.
Синтаксис: cs_mdl_import -o <путь> [параметры] <filespecs...>
Параметры:
-h : Вывод этой справки
-game <игра> : Переопределить модификацию (по умолчанию csgo)
-v : Подробный режим
-i <путь> : Путь ввода (this is replaced by the ouputpath from -o)
-o <путь> : Путь вывода (обязательный)
-l filelist.txt : Список файлов или полных путей
-r : Учитывать вложенные директории ввода
-skipcommondmxwrite : Skip writing dmx files (anims)
-YupToZup : Change bindpose from Yup to Zup
-c <changelist> : Changelist to use, "default" by default.
-overridelean : Override "lean" sequence
-write_weapon_anim_prefab : Write sequences & weighlists into a prefab.
All sequences & weightlists will be prefixed with the weapon filename in the prefab
-header_hull_bounds : Import mdl hull bounds from the studiohdr (typically we use we derive from physics hulls)
-weapon_anim_prefab <путь> : Path to a prefab to be included. Path relative to 'output path'.
-lods : Import all lods. By default, only lod 0 is imported.
Пример использования: cs_mdl_import -game csgo -r -i [import path] -o [output path] *.mdl
Дополнительно
Для более удобного импорта множества моделей и материалов можете воспользоваться любительским конвертером. Для преобразования файлов "VMT" в "VMAT" формат, запустите соответствующий конвертер и таким же образом укажите адрес к необходимым материалам. Внимание: для корректной работы нужно изначально иметь в той же папке .tga файлы текстур материалов. Это можно сделать быстро через программу VTFEdit - VTFEdit > Tools > Convert Folder. Также стоить отметить, что преобразование моделей таким способом может вызывать проблемы их отображения. Например, модель может не отображаться непосредственно в игре, нежели в режиме инструментария. Решается это путём преобразования уже через ModelDoc в самих инструментах Мастерской Steam.