StudioMDL (Source)

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Español (es)Русский (ru)Translate (Translate)
Информацию о руководстве об использовании StudioMDL, смотрите здесь Компиляция модели(en).

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

Её можно найти в: common\<имя_игры>\<директория_игры>\bin\studiomdl.exe.

Note.pngПримечание: Имя "studio" отсылает к разработке Half-Life Half-Life, во время которого Valve Valve использовали 3DS Max 3DS Max для создания их моделей.
Icon-Bug.pngБаг:Попытка использовать Studiomdl или его ярлык, закреплённый на панели задач в Windows 8, приведёт к ошибке о неверном пути, даже если указан параметр -game. Однако использование ярлыка на рабочем столе по прежнему работает. Это проблема со стороны Microsoft.
Icon-Bug.pngБаг:64-bit version of StudioMDL from the Ветвь Team Fortress 2 is currently broken; use the 32-bit version instead. Alternatively, use StudioMDL++(en).
Cpp.pngКод: Source code for an older version is available in the 2006 SDK.

Параметры

Единственный обязательный параметр QC-файл(en). Все остальные должны указываться перед ним.

studiomdl [параметры] <путь\QC>

Основные

-game <директория_игры>
Указывает директорию ресурсов игры.
-quiet
Отключает вывод в терминал некоторых сообщений, такие как отображение путей поиска.
-x360
Включает вывод для Xbox 360, игнорируя Gameinfo.txt.
-nox360
Выключает вывод для Xbox 360, игнорируя Gameinfo.txt. Implied by default in non-Left 4 Dead-based branches of Source.
-nowarnings
Отключает предупреждения.
-maxwarnings <целое число(en)>
Ограничивает количество выводимых предупреждений.
-xbox (удалено начиная с Source 2007)
Enable outputting vertex file for Original Xbox (default).
-notxbox (удалено начиная с Source 2007)
Disable outputting vertex file for Original Xbox.

Анимация

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

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

-fastbuild
Отключает обработку VTX для DX7, DX8, X360 и Software рендера (будет использовать только .dx90.vtx). Это ускоряет компиляцию.
Icon-Important.pngВажно: In games before Left 4 Dead, if the .dx80.vtx is absent for a static prop(en), VRAD(en) will fail to generate lighting for that prop!
-preview
Отключает триангуляцию модели. Это изменяет параметры рендера модели, вероятнее всего вызывая ухудшенную производительность или поломанный рендеринг в движке.
-fullcollide
Не усекает очень сложные габариты столкновений(en).
Note.pngПримечание: (Во всех играх начиная с Source 2007) используйте $maxconvexpieces(en), as -fullcollide does nothing.
-striplods
Пропускает все $lod(en) команды.
-minlod <lod>
Пропускает все LODы выше заданного (смотрите $minlod(en)).
-mdlreport <путь\model.mdl>
-perf <путь\model.mdl>
Выводит информацию о производительности для уже скомпилированной модели. Для этой команды не требуется QC файл.
-mdlreportspreadsheet
Выводит информацию о производительности каждого LOD как таблицу, разделённую через запятые в следующем формате:
Путь к VTX, расширение VTX, номер LODа (1 это корневой lod), количество треугольников, количество проходов отрисовки, количество используемых материалов
Должен использоваться с -mdlreport или -perf!
Note.pngПримечание: Не записывает таблицу на носитель; используйте > для перенаправления вывода в CSV-файл.

Отладка

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

Прочие

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

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

-r
In GoldSrc, tagged reversed normals in compile output console; example: triangle reversed (0.748195 0.949818 0.839380)
-ihvtest
Вероятнее всего, должен проверять модель столкновений на наличие ошибок физики. Пропускает любой следующий аргумент.

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

StudioMDL поддерживает разные форматы: SMD(en), DMX(en) и OBJ(en) для отображаемых сеток, 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 технически поддерживает лицевая анимацию, SMD файл требуется для генерации VTA файлов, делая использование FBX файлов для лицевой анимации бесполезным.
Формат Расширения файлов Сетка Скелетные движения Вершинная/лицевая анимация
SMD(en) SMD
SMA (Во всех играх начиная с Source 2006)
PHYS (Во всех играх начиная с Source 2006)
Да Да Да
DMX(en) DMX (Во всех играх начиная с Source 2007)
XML (Во всех играх начиная с Source 2007)
MPP (Во всех играх начиная с CS:GO engine branch)[подтвердить]
Да Да Да
OBJ(en) OBJ Да Нет Нет
FBX(en) FBX (Во всех играх начиная с CS:GO engine branch) Да (только в NekoMDL(en)) (только в NekoMDL(en))
VRM(en) VRM Да Да Нет
VTA(en) VTA Нет Нет Да

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

mymodel.mdl
Скелет(en), анимации, короба ограничивающие/воздействия, материалы, реестр LOD(en), признаки содержимого(en) и признаки модели(en), и т.д.
mymodel.sw.vtx (не используется и не создаётся в Garry's Mod Garry's Mod)
mymodel.xbox.vtx (только в Source 2004Source 2006)
mymodel.360.vtx (не используется и не создаётся в Garry's Mod Garry's Mod)
mymodel.dx80.vtx
mymodel.dx90.vtx
Оптимизированные VTX для программного отображения, XBox 360, DirectX 7, 8 и 9 соответственно.
Note.pngПримечание: Файлы .360.vtx это файлы .dx90.vtx с обращённым (из little endian в big endian) порядком байт.
mymodel.vvd
Остальная независимая от оборудования информация о вершинах, включая UV-разметку(en)
mymodel.phy
Модель столкновений. Отсуствует, если не указан $collisionmodel(en).
mymodel.ani
Анимации, если используется $animblocksize(en).

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

Тематический указатель