Эта статья относится к игре "Half-Life: Alyx". Нажмите для получения дополнительной информации.
This article relates to the workshop tools for "Half-Life: Alyx". Click here for more information.
This article's documentation is for Source 2. Click here for more information.

Перенос ресурсов моделей из Source

From Valve Developer Community
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

Source 2 Source 2 имеет встроенную систему для преобразования MDL-файлов от Source Source в формат Source 2 Source 2. Можно использовать эту систему для преобразования файлов без исходников ресурсов, но есть некоторые сложности.

Note.pngПримечание: Модели, имеющие лицевую анимацию (например, модели персонажей), нуждаются в дополнительной обработке, чтобы сделать их работоспособными в Source 2, и в большинстве случаев потребуется наличие исходников.

Требования

Эта система очень чувствительна к содержимому импортируемых MDL-файлов. В настоящее время Source Filmmaker всё ещё является наиболее успешным инструментом для импорта моделей, также может быть полезным, то что Source Filmmaker Source Filmmaker поставляется с ресурсами из множества игр. Тем не менее, Half-Life 2 Half-Life 2 и Left 4 Dead 2 Left 4 Dead 2, среди прочих, были протестированы и оказались несовместимы, но, к счастью, Valve уже перенесла много ресурсов из этих игр.

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

Создание VMDL-файла

Для преобразования MDL-файла, сначала, необходимо создать структуру директорий для ваших ресурсов. Допустим, необходимо преобразовать модель из Half-Life 2 Half-Life 2, пусть это будет "models/humans/group01/male_07.mdl" для использования в Half-Life: Alyx Half-Life: Alyx. Чтобы сделать это, нужно установить инструменты и директрию ресурсов для модификации, для которого необходимо скомпилировать модель. В этом случае будет нужна директория hl2 в директориях content и game, внутри директории "steamapps/common/Half-Life Alyx".

Затем переместите MDL-файл и соответствующие ему файлы в ту же вложенную директорию, что и в Source 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!

Осталось только создать файлы материалов(en), которые должны иметь одинаковые имена и вложенную директорию подобно VMT-файлам в Source Source. Так, например, файл citizen_sheet.vmat будет размещаться в materials/models/humans/male/group01/citizen_sheet.vmat

Note.pngПримечание: Вам не нужно делать это, если вы используете '-nocustomermachine' в качестве параметра запуска. Это позволит вам изменить строку m_sMDLFilename в редакторе моделей(en).
Note.pngПримечание: source1import can be used to automate this whole process.

Half-Life: Alyx и ModelDoc

ModelDoc-ImportAndConvertOldVMDL.png

Half-Life: Alyx представлен новый редактор моделей под названием ModelDoc Editor ModelDoc Editor (позже добавленный в Dota 2). ModelDoc предоставляет более широкий набор возможностей для обработки моделей и предоставляет доступ к специальным инструментам, недоступным в старом редакторе моделей.

С помощью ModelDoc можно импортировать старый VMDL-файл, выбрав Файл → Импорт → Импортировать и преобразовать старый VMDL. После этого, фактически будут обработы все исходники модели (используя ранее скомпилированный VMDL_C-файл) и создадутся несколько FBX-файлов, с которыми можно будет работать. После этого можно будет удалить старый MDL-файл, так как он больше не нужен.

Это удобно, если необходимо внести изменения при переносе модели в Source 2 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.

Смотреть также