Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

StudioMDL (Source)

From Valve Developer Community
< Ru
Jump to: navigation, search
English (en)Español (es)Русский (ru)Translate (Translate)

Icon-broom.png
Эта статья или раздел требует доработки, чтобы соответствовать более высокому стандарту качества потому что:
перевод можно сформулировать лучше
Для получения помощи, обратитесь к руководству по редактированию на VDC и процессу очистки на Wikipedia. Также не забудьте проверить наличие заметок, оставленных отмечающим на странице обсуждения этой статьи.
Для руководства по использованию StudioMDL, смотрите Компиляция модели(en)

StudioMDL это консольная(en) утилита, используемая для компиляции моделей(en) из промежуточных форматов, экспортированных из программы 3D-моделирования, в бинарный формат .mdl, читаемый движком Source Source.

Её можно найти в: 🖿common\<gamename>\<gamefolder>\bin\studiomdl.exe.

Note.pngПримечание:Имя "studio" отсылает к разработке Half-Life Half-Life, во время которого Valve Valve использовали 3DS Max 3DS Max для создания их моделей.
Icon-Bug.pngБаг:Попытка использовать Studiomdl или его ярлык, закреплённый на панели задач в Windows 8, приведёт к ошибке о неверном пути, даже если указан параметр -game. Однако использование ярлыка на рабочем столе по прежнему работает. Это проблема со стороны Microsoft.  [todo tested in?]

Параметры

Эти параметры требуют QC файл(en). Все остальные должны быть "за" ними.

studiomdl [опции] <путь к QC>

Основные

-game <gamedir>
Указывает папку контента игры.
-quiet
Убирает некоторые сообщения в консоли, такие как отображение путей поиска
-x360
Включает вывод для Xbox 360, игнорируя Gameinfo.txt.
-nox360
Выключает вывод для Xbox 360, игнорируя Gameinfo.txt.
-nowarnings
Отключает предупреждения.
-maxwarnings <int(en)>
Ограничивает количество выводимых предупреждений.

Анимация

-definebones
Смотрите $definebone(en).
-printbones
Выводит дополнительную информацию о костях в консоль.
-printgraph
Нужно сделать: Похоже, что выдаёт информацию xnode для каждой ноды
-overridedefinebones
Эквивалентно $unlockdefinebones(en) в QC.
-checklengths
Выводит готовую для движка информацию о кейфреймах для каждой анимации.

Производительность

-fastbuild
Отключает обработку VTX для DX7, DX8, X360 и Software рендера (будет использовать только .dx90.vtx). Это ускоряет компиляцию.
-preview
Отключает триангуляцию модели. Это изменяет параметры рендера модели, вероятнее всего вызывая ухудшенную производительность или поломанный рендеринг в движке.
-fullcollide
Не обрезает сложные модели столкновения(en) (во всех играх начиная с Source 2007используйте $maxconvexpieces).
-striplods
Пропускает все $lod команды.
-minlod <lod>
Пропускает все LODы выше заданного (смотрите $minlod).
-mdlreport <path\model.mdl>
Выводит информацию о производительности для уже скомпилированной модели. Для этой команды не требуется QC файл.
-perf
То же, что и -mdlreport.
-mdlreportspreadsheet
Выводит информацию о производительности каждого LOD как таблицу, разделённую через запятые в следующем формате:
Путь к VTX, расширение VTX, номер LODа (1 это корневой lod), количество треугольников, количество проходов отрисовки, количество используемых материалов
Нужно сделать: "количество проходов отрисовки" это "number of batches rendered", что это значит?
Должен использоваться с -mdlreport или -perf!
Note.pngПримечание:Не записывает таблицу в память.

Отладка

-d
Выводит различные glview(en) файлы (по 10 на каждый LOD на каждый VTX файл).
-h
Вывод hitbox(en)ов в консоль.
-n
Указывает плохие нормали.
-dumpmaterials
Выводит имена используемых материалы в консоль.
-i
Отключает предупреждения.
-t
Заменяет все материалы на стандартную розово-чёрную клетку.
-parsecompletion
Выводит просто обрабатываемое сообщение об успехе или провале компиляции.
-collapsereport
Выводит информацию о том, какие кости останутся, а какие будут пропущены.

Прочие

-nop4
Отключает интеграцию Perforce.
Tip.pngСовет:Если для вашей игры/мода не настроен Perforce, вы должны использовать этот параметр.
-verify
Скомпилирует модель, но не запишет результаты в память.
-a <normal_blend_angle>
Сглаживает стороны, угол между которыми равен или меньше указанному. Игнорирует всю информацию о нормалях на всех мешах.
-f (удалено начиная с Source 2007)
Переворачивает нормали.
Нужно сделать: Что значит "Flip all triangles"?
Note.pngПримечание:Вы можете добиться того же эффекта с помощью $body.
-vsi <path\[QC|MDL]>
Генерирует VSI(en) файл из QC(en) или MDL(en) файла.
-stripmodel <path\model.mdl>
Облегчает вес модели, удаляя информацию о LODах.
-stripvhv <path\sp_hdr_x.vhv>
Облегчает (VHV(en)) файл, удаляя информацию о LODах.
-makefile
Генерирует простой makefile для дальнейшей компиляции. Также проверяет QC файл на наличие ошибок, компилирует с параметром -quiet
-basedir <path>
Запускает StudioMDL в контексте указанного пути.
-tempcontent <path>
Добавляет указанный путь как путь поиска контента.

Нефункциональные

-r
"Tag reversed".
Нужно сделать: И что это значит?
-ihvtest
Вероятнее всего, должен проверять модель столкновений на наличие ошибок физики. Пропускает любой следующий аргумент.

Входные файлы

StudioMDL поддерживает разные форматы: SMD(en), DMX(en) и OBJ для моделей-референсов, SMD(en) и DMX(en) для скелетной анимации, VTA(en) и DMX(en) файлы для повертексной и мимики. Counter-Strike: Global Offensive Counter-Strike: Global Offensive также поддерживает FBX(en), но с ограниченным функционалом: Мимика(en) напрямую не поддерживается, как и FBX анимации, но SMD/DMX анимации могут быть использованы на FBX модели.

Note.pngПримечание:Пока FBX технически поддерживает flex анимации, SMD файл требуется для генерации VTA файлов, делая использование FBX файлов для мимики бесполезным.

Выходные файлы

mymodel.mdl
Скелет(en), анимации, bbox и хитбоксы, материалы, список LOD(en)ов…
mymodel.sw.vtx
mymodel.360.vtx
mymodel.dx80.vtx
mymodel.dx90.vtx
Оптимизированные VTX для software рендера, XBox 360, DirectX 7, 8 и 9 соответственно.
Note.pngПримечание:Файлы .360.vtx это просто байтсвапнутые .dx90.vtx файлы.
mymodel.vvd
Оставшаяся независимая повертексная информация, включая UV карту(en)
mymodel.phy
Модель столкновений

См. также