Ru/Compiling a model

Другая вариация на тему, делалась на основе Compiling Model Basics: . Содержание, в общем и целом, не совпадает. Эта же статья пока не переведена
В статье описано, как компилировать с помощью для внутриигрового использования. Прежде чем начать, вам понадобятся какие-нибудь файлы , которые вы и будете компилировать. Если у вас их еще нет, прочтите статью об .
== Формат QC ==
Помимо файла в формате SMD с данными о модели, вам понадобится файл формата , который - в чем-то похоже на файл материала - описывает как нужно интерпретировать данные из SMD-файла. При подготовке к компиляции вы потратите большую часть времени именно на него.
QC - это просто текстовый файл с расширением .qc. Его можно создать где угодно и назвать как вам нравится. Лучше, однако, хранить свои данные организованно, и держать SMD и QC в одной папке, которую разумно будет назвать так же, как будущий файл модели.
== Порядок компиляции ==
При настройке компиляции важнейшим шагом является выбор правильной переменной . Вот как это можно сделать:
#Глобально, указав свою игру/мод в выпадающем списке SDK launcher'а
#Только для программы studiomdl, запустив ее с параметром -game "<полный путь к директории с вашим >"
Что касается работы с QC-файлами для моделей, то вам очень, правда - очень пригодится продвинутый текстовый редактор, который поддерживает выделение синтаксиса цветом и который сможет запускать studiomdl - без ручной работы с командной строкой или bat-файлами. На текущий момент существует два таких редактора:
*
*
Скачайте редактор и правила подсветки синтаксиса, настройте исполнение studiomdl - и все, можно приступать к работе!
=== Сложный способ ===
Если вы не хотите или не можете использовать ни один из редакторов (перечислены выше), то компилировать QC-файлы придется, перетаскивая и кидая их на studiomdl.exe. Программу можно найти в папке sourcesdk/bin/orangebox/bin/ (если нужно, замените orangebox/ на ep1/).
Легче это будет делать, если для автоматизации создать в каком-нибудь легко доступном месте на компьютере .cmd-файл. Это просто переименованный .txt с каким-нибудь таким текстом:
 "%sourcesdk%/bin/orangebox/bin/studiomdl" %1
 pause
Киньте на него ваш файл с описанием, как кидали бы на сам исполняемый файл (studiomdl.exe) - по своей сути этот .cmd нечто вроде ярлыка.
== QC-команды ==
:Чтобы увидеть полный список документированных QC-команд, посмотрите .
Вот QC-файл для неанимированного статичного prop'а:
 	"props_sdk/myfirstmodel.mdl"
 mybody	"myfirstmodel-ref.smd"
 
 	combine_metal
 	"models/props_sdk"
 
 idle	"myfirstmodel-idle.smd" loop fps 15
 
 	"myfirstmodel-phys.smd" { }
Ниже приведен краткий обзор каждой из команд. Чтобы просмотреть страницы с более подробной информацией, щелкните по именам команд. Here is a brief summary of what each of those commands does. For more detail, click on the names.
;
:Определеяет имя и местоположение основного файла будущей модели - относительно папки <имя мода>/models/. При компиляции будет создано еще несколько файлов, и их имя будет образовано от указанного здесь значения.
;
:Указывает SMD, содержащий информацию о , , и модели. Это необходимо, чтобы у модели было какое-то представление в движке.
:Имя ('mybody') дают из-за того, что у модели может быть несколько "тел", как например у , у которого их два: одно с на плече, а другое без.
:
;
:Информирует studiomdl о том, что у модели нет движущихся частей; в результате можно осуществить некоторые весьма важные оптимизации. Если вы собираетесь использовать модель с помощью , то эту команду использовать необходимо, - однако, она не запретит использовать модель где-то еще (на самом деле, большинство моделей на физике тоже используют $staticprop)
;
:Определяет, как поверхность реагирует на другие объекты. Также помогает определить вес модели (когда используется команда для его расчёта).
:
;
:Директория, из которой studiomdl возьмет материалы для модели. Не забудьте, что имена материалов должны совпадать с теми, которые вы назначили в 3D-пакете при моделировании. Само же имя директории нужно указать относительно папки <директория с модом>/materials/.
;
:Несмотря на то, что эта модель используется с $staticprop и не анимируется, движку Source для правильной работы потребуется "пустая" idle-анимация. Такая анимация должна состоять из одного кадра, откуда следует, что свойство fps ни на что не будет влиять (но оно все равно будет при проигрывании).
;
:Указывает SMD, который будет использоваться для рассчета в движке. Если collision-модели нет, то объекты будут пролетать модель насквозь (что в некоторых случаях и является желаемым результатом).
:
;
:Модель для столкновений должна быть , но можно создавать и невыпуклые формы комбинируя несколько выпуклых. Команда $concave указывает, что именно это вам и нужно - в противном случае все collision-меши будут обернуты одной выпуклой оболочкой.
Приведённый образец описания можно использовать для своей модели (если не нужно анимаций). Так что вставьте имена своих SMD'шек и попробуйте импортировать модель сами.
== Compiling more advanced models ==
*Для компиляции физических моделей используйте тег 
*Для компилчции моделей персонажей используйте 
*Для компиляции используйте 
*Для компиляции машин используйте 
*Общая помошь по компилированию 
== Samples ==
Valve provide numerous sample models in the SDK for you to learn from, including several fully-articulated characters and players. They can be found at:
*sourcesdk_content\cstrike\modelsrc
*sourcesdk_content\hl2\modelsrc
*sourcesdk_content\hl2mp\modelsrc
*sourcesdk_content\generic\modelsrc (a walking animation for Valve's default skeleton)
== Common errors ==
*
*
*
*
*:If you receive "EXCEPTION_ACCESS_VIOLATION" without an error code, try compiling with running.
== See also ==
* 
*
* 
* , a graphical interface for studiomdl
* , another graphical interface
* 
*