Ru/StudioMDL (Source): Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (SirYodaJedi moved page StudioMDL (Source 1)/ru to StudioMDL (Source)/ru over redirect)
(Исправлен и дополнен перевод)
Line 1: Line 1:
{{langsp}}
{{langsp}}
'''Studiomdl''' это программа-компилятор моделей, работающая из командной строки. Она используется для компиляции [[model|моделей]] из промежуточного формата [[Studio Model Data]] (экспортируется из пакетов моделирования) в .mdl, бинарный формат, который используется движком Source.
: ''Для руководства по использованию StudioMDL, смотрите [[Compiling a model]]''
'''StudioMDL''' это [[command-line|консольная]] утилита, используемая для компиляции [[model|моделей]] из промежуточных форматов, экспортированных из программы 3D-моделирования, в бинарный формат .mdl, читаемым движком {{Source|4}}.


У себя ее можно найти здесь: <code>steam/steamapps/<account>/sourcesdk/bin/[orangebox|ep1]/bin/studiomdl.exe</code>.
Её можно найти в: {{file|<nowiki>common\<gamename>\<gamefolder>\bin\studiomdl</nowiki>|exe}}.
 
Studiomdl запускается с [[Qc|QC-файлом]] в качестве параметра командной строки. Если вам нужна более подробная информация о компиляции моделей, посмотрите статью [[Compiling a model]].


{{note|Имя "studio" отсылает к разработке {{hl|2}}, во время которого {{Valve|4.1}} использовали {{3dmax|2}} для создания их моделей.}}
{{bug|Попытка использовать Studiomdl или его ярлык, закрепленный на панели задач в Windows 8, приведет к ошибке о неверном пути, даже если указан параметр <code>-game</code>. Однако использование ярлыка на рабочем столе по прежнему работает. Это проблема со стороны Microsoft.}}
== Параметры ==
== Параметры ==


Эти параметры требуют [[Qc|QC ]]файл. Все остальные должны быть "перед" ними.
Эти параметры требуют [[Qc|QC файл]]. Все остальные должны быть "за" ними.


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


=== Основы ===
=== Основные ===


; <code>-game <gamedir></code>
; <code>-game <gamedir></code>
: Указание вручную директории игры.
: Указывает папки контента игры.
;<code>-quiet</code>
; <code>-quiet</code>
:Теоретически убирает вывод информации в консоль. В практике ничего не делает.
: Убирает некоторые сообщения в консоли, такие как отображение путей поиска
;<code>-x360</code>
; <code>-x360</code>
:Включает вывод на Xbox 360 (OB).
: Включает вывод для Xbox 360, игнорируя {{ent|Gameinfo.txt}}.
;<code>-nox360</code>
; <code>-nox360</code>
:Отключает вывод на Xbox 360 (Ep1).
: Выключает вывод для Xbox 360, игнорируя {{ent|Gameinfo.txt}}.
;<code>-nowarnings</code>
; <code>-nowarnings</code>
:Отключает предупреждения.
: Отключает предупреждения.
; <code>-maxwarnings <[[int]]></code>
: Ограничивает количество выводимых предупреждений.


=== Анимация ===
=== Анимация ===


; <code>-definebones</code>
; <code>-definebones</code>
: Смотреть [[$definebone]].
: Смотрите [[$definebone]].
; <code>-printbones</code>
; <code>-printbones</code>
: Выводит дополнительную информацию о кости в консоль.
: Выводит дополнительную информацию о костях в консоль.
; <code>-printgraph</code>
; <code>-printgraph</code>
: Записывает некоторую информацию об анимации в консоль.
: {{Todo|Похоже, что выдаёт информацию xnode для каждой ноды}}
; <code>-overridedefinebones</code>
; <code>-overridedefinebones</code>
: Эквивалентно [[$unlockdefinebones]] в QC.
: Эквивалентно [[$unlockdefinebones]] в QC.
; <code>-checklengths</code>
: Выводит готовую для движка информацию о кейфреймах для каждой анимации.


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


; <code>-fastbuild</code>
: Отключает обработку VTX для DX7, DX8, X360 и Software рендера (будет использовать только <code>.dx90.vtx</code>). Это ускоряет компиляцию.
; <code>-preview</code>
: Отключает триангуляцию модели. Это изменяет параметры рендера модели, вероятнее всего вызывая ухудшенную производительность или поломанный рендеринг в движке.
; <code>-fullcollide</code>
; <code>-fullcollide</code>
: Не обрезает большие [[collision mesh]]es (только для Ep1; для OB используется [[$maxconvexpieces]]).
: Не обрезает сложные [[collision mesh|модели столкновения]] {{src07|since|addtext= используйте {{ent|$maxconvexpieces}}}}.
; <code>-striplods</code>
; <code>-striplods</code>
: Игнорировать [[$lod]] команды.
: Пропускает все {{ent|$lod}} команды.
;<code>-minlod <lod></code>
; <code>-minlod <lod></code>
:"Выкидывает" всю информацию из LODs заданную выше (смотреть [[$minlod]]).
: Пропускает все LODы выше заданного (смотрите {{ent|$minlod}}).
;<code>-perf</code>
; <code>-mdlreport <path\model.mdl></code>
:Выводит информацию о производительности в консоль.
: Выводит информацию о производительности для уже скомпилированной модели. Для этой команды не требуется QC файл.
;<code>-mdlreport <path\model.mdl></code>
; <code>-perf</code>
:Выводит информацию о производительности только-что скомпилированной модели. QC файл не нужен когда используется эта команда.
: То же, что и <code>-mdlreport</code>.
;<code>-mdlreportspreadsheet</code>
; <code>-mdlreportspreadsheet</code>
:Выводит информацию в виде таблицы. {{TODO|Usage}}
: Выводит информацию о производительности каждого LOD как таблицу, разделённую через запятые в следующем формате:
<source>Путь к VTX, расширение VTX, номер LODа (1 это корневой lod), количество треугольников, количество проходов отрисовки, количество используемых материалов </source> {{Todo|"количество проходов отрисовки" это "number of batches rendered", что это значит?}}
:'''Должен использоваться с -mdlreport или -perf!''' {{Note|Не ''записывает'' таблицу в память.}}


=== Отладка ===
=== Отладка ===


;<code>-d</code>
;<code>-d</code>
:Дамп различных [[glview]] файлов (10 на LOD с VTX файлы),
:Выводит различные [[glview]] файлы (по 10 на каждый LOD на каждый VTX файл).
;<code>-h</code>
;<code>-h</code>
:Дамп [[hitbox]]es в консоль,
:Вывод [[hitbox]]ов в консоль.
;<code>-n</code>
;<code>-n</code>
:Имена плохих нормалей.
:Указывает плохие нормали.
;<code>-dumpmaterials</code>
;<code>-dumpmaterials</code>
:Дамп используемых материалов в консоль.
:Выводит имена используемых материалы в консоль.
;<code>-i</code>
;<code>-i</code>
:Игнорировать предупреждения
:Отключает предупреждения.
;<code>-t</code>
;<code>-t</code>
: Заменяет все материалы на стандартные розовые.
:Заменяет все материалы на стандартную розово-чёрную клетку.
;<code>-parsecompletion</code>
:Выводит просто обрабатываемое сообщение об успехе или провале компиляции.
;<code>-collapsereport</code>
:Выводит информацию о том, какие кости останутся, а какие будут пропущены.


=== Неизвестные ===
=== Прочие ===


;<code>-nop4</code>
:Отключает интеграцию Perforce. Если для вашей игры/мода настроен Perforce (что маловероятно), вы должны использовать этот параметр.
;<code>-verify</code>
:Скомпилирует модель, но не запишет результаты в память.
;<code>-a <normal_blend_angle></code>
;<code>-a <normal_blend_angle></code>
:?
:Сглаживает стороны, угол между которыми равен или меньше указанному. Игнорирует всю информацию о нормалях на всех мешах.
;<code>-checklengths</code>
;<code>-f</code> {{src07|removed}}
:?
:Переворачивает нормали. {{Todo|Что значит "Flip all triangles"?}}
;<code>-f</code>
;<code>-vsi <path\[QC|MDL]></code>
:Переворачивает все треугольники.
:Генерирует [[VSI]] файл из [[QC]] или [[MDL]] файла.
;<code>-stripmodel <path\model.mdl></code>
:Облегчает вес модели, удаляя информацию о LODах.
;<code>-stripvhv <path\sp_hdr_x.vhv></code>
:Облегчает ([[VHV]]) файл, удаляя информацию о LODах.
;<code>-makefile</code>
:Генерирует простой makefile для дальнейшей компиляции. Также проверяет QC файл на наличие ошибок, компилирует с параметром <code>-quiet</code>
;<code>-basedir <path></code>
:Запускает StudioMDL в контексте указанного пути.
;<code>-tempcontent <path></code>
:Добавляет указанный путь как путь поиска контента.
 
=== Нефункциональные ===
;<code>-r</code>
;<code>-r</code>
:"Обратное имя"..?
:"Tag reversed". {{Todo|И что это значит?}}
;<code>-vsi <path\[QC|MDL]></code>
;<code>-ihvtest</code>
:Генерирует оптимизированный .vsi файл. Работает с QC и MDL. (Служит для оптимизации памяти? Возможно связано с Xbox 360.)
:Вероятнее всего, должен проверять модель столкновений на наличие ошибок физики. Пропускает любой следующий аргумент.
;<code>-stripmodel</code>
 
:Создаёт двоичные файлы модели(VSI?)и строки дополнительных оптимизированных данных.
== Входные файлы ==
;<code>-stripvhv</code>
 
: Разрезает железные точки, чтобы уровнять модель.
StudioMDL поддерживает разные форматы: [[SMD]], [[DMX]] и [https://ru.wikipedia.org/wiki/Obj OBJ] для моделей-референсов, [[SMD]] и [[DMX]] для скелетной анимации, [[VTA]] и [[DMX]] файлы для повертексной и мимики. {{csgo|2}} также поддерживает [[FBX]], но с ограниченным функционалом: [[Flex_animation|Мимика]] напрямую не поддерживается, как и FBX анимации, но SMD/DMX анимации могут быть использованы на FBX модели.
 
{{note|FBX технически поддерживает flex анимации, а SMD файл требует генерации VTA файла, делая использование FBX файла для мимики бесполезным.}}


== Файлы, получающиеся в результате компиляции ==
== Выходные файлы ==


;<code>mymodel.mdl</code>
;<code>mymodel.mdl</code>
:[[Skeleton|Скелет]], анимации, bounding box'ы/ box'ы для попадания оружием, материалы, информация о [[LOD:ru|LOD]]...
:[[Skeleton|Скелет]], анимации, bbox и хитбоксы, материалы, список [[LOD]]ов…
;<code>mymodel.sw.vtx</code>
;<code>mymodel.sw.vtx</code>
;<code>mymodel.360.vtx</code>
;<code>mymodel.dx80.vtx</code>
;<code>mymodel.dx80.vtx</code>
;<code>mymodel.dx90.vtx</code>
;<code>mymodel.dx90.vtx</code>
:Данные вершин модели, оптимизированные для DirectX 7, 8 и 9 соотвественно
:Оптимизированные VTX для software рендера, XBox 360, DirectX 7, 8 и 9 соответственно. {{Note|Файлы <code>.360.vtx</code> это просто байтсвапнутые <code>.dx90.vtx</code> файлы.}}
;<code>mymodel.vvd</code>
;<code>mymodel.vvd</code>
:Оставшаяся, независимая от железа вершинная информация, например [[UV map|UV-раскладка модели]]
:Оставшаяся независимая повертексная информация, включая [[UV map]]
;<code>mymodel.phy</code>
;<code>mymodel.phy</code>
:Данные collision-сетки
:Модель столкновений


== См. также ==
== См. также ==


* [[Studiocompiler]], графическая оболочка для studiomdl
* [[Compiling a model#Common errors|Типичные ошибки StudioMDL]]
* [[GUIStudioMDL]], еще вариант графической оболочки
* [[Crowbar]], популярный графический интерфейс для StudioMDL, также поддерживающий декомпиляцию моделей и другие продвинутые функции.
* [[Studiocompiler]], графический интерфейс для StudioMDL.
* [[GUIStudioMDL]], ещё один графический интерфейс.
* [[Source Model Compiler]], веб компилятор моделей и генератор QC файлов.
* [https://gamebanana.com/tuts/12511 Fixing the 5% Weight Bone Link Cull], для {{SFM|4.1}}


[[Category:Tools:ru]]
[[Category:Tools:ru]]
[[Category:Modeling:ru]]
[[Category:Modeling:ru]]

Revision as of 17:28, 5 November 2023

English (en)Español (es)Русский (ru)Translate (Translate)
Для руководства по использованию StudioMDL, смотрите Compiling a model

StudioMDL это консольная утилита, используемая для компиляции моделей из промежуточных форматов, экспортированных из программы 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.  [нужно проверить в ?]

Параметры

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

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

Основные

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

Анимация

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

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

-fastbuild
Отключает обработку VTX для DX7, DX8, X360 и Software рендера (будет использовать только .dx90.vtx). Это ускоряет компиляцию.
-preview
Отключает триангуляцию модели. Это изменяет параметры рендера модели, вероятнее всего вызывая ухудшенную производительность или поломанный рендеринг в движке.
-fullcollide
Не обрезает сложные модели столкновения (Во всех играх начиная с 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 файлы (по 10 на каждый LOD на каждый VTX файл).
-h
Вывод hitboxов в консоль.
-n
Указывает плохие нормали.
-dumpmaterials
Выводит имена используемых материалы в консоль.
-i
Отключает предупреждения.
-t
Заменяет все материалы на стандартную розово-чёрную клетку.
-parsecompletion
Выводит просто обрабатываемое сообщение об успехе или провале компиляции.
-collapsereport
Выводит информацию о том, какие кости останутся, а какие будут пропущены.

Прочие

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

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

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

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

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

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

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

mymodel.mdl
Скелет, анимации, bbox и хитбоксы, материалы, список LODов…
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 map
mymodel.phy
Модель столкновений

См. также