FAQ по моделлингу
Данный FAQ создавался с целью решить наиболее часто появляющиеся у новичков проблемы без создания новой темы и получения очередного одинакового ответа, потому как опыт показывает, что Поиском мы пользоваться не умеем, а скачивать
Азбуку Моделирования для решения насущного вопроса неудобно.
Прежде всего о том, каким образом можно наиболее эффективно получить ответ на свой вопрос. В первую очередь пользуемся данным FAQ'ом – наверняка проблема у новичков весьма распространенная, – и поиском. Если ответа на вопрос нет, скачиваем
Азбуку Моделирования или ищем ответ в других доках, например на
https://www.source-inside.ru/ и
http://developer.valvesoftware.com/wiki/SDK_Docs. Если же и здесь ответа нет, создаем новую тему в соответствии с
рекомендациями Фиша.
Q: Каким образом можно из .mdl моделей движка Source получить файлы в формате Макса (MilkShape3D, XSI – на выбор)?
A: Первый шаг – это декомпиляция модели. Для этого следует использовать декомпилятор, который можно скачать
здесь. С его помощью мы получим набор из qc-скрипта (задает все необходимые параметры для последующей компиляции модели) и smd-файлов, из которых есть reference-smd (геометрическая информация о модели) и animation-smd (анимация скелета). Второй шаг – импорт smd в редактор. Для MilkShape3D никаких внешних плагинов не требуется, для XSI следует установить add-on, поставляемый в комплекте Source SDK. Для 3dsMax потребуется скачать и установить
плагины импорта и экспорта. Теперь можно импортировать smd в редактор и свободно работать над моделью.
Q: Каким образом можно скомпилировать готовую модель?
A: В первую очередь следует экспортировать модель и анимацию в формат smd. Способов собственно компиляции существует великое множество. Батник, ярлык к studiomdl.exe, GUI, программы-надстройки над studiomdl.exe и т.п. Из всех этих вариантов не советую пользоваться лишь последним, поскольку наряду с кажущейся простотой он добавляет много лишних глюков и скомпилировать сложную модель с помощью таких программ, как StudioCompiler, становится крайне сложно. Проще всего для начинающих будет использовать GUI, один из которых можно скачать
здесь.
Q: Каким образом можно использовать свои текстуры на модели в Source?
A: Для начала нужно правильно скомпилировать текстуру для движка. С помощью программы vtex.exe или плагина для Photoshop получим скомпилированную текстуру – файл в формате vtf. Он должен находиться в одном из подкаталогов следующего каталога: <Путь к Steam>\SteamApps\Sourcemods\<Название мода>\materials\models\. К нему следует создать файл в формате vmt, который служит для задания свойств материала, и его отредактировать, например вот так:
"VertexLitGeneric"
{
"$basetexture" "models\myprops/mytexture"
}
Это пример простейшего vmt для моделей, во многих случаях его бывает достаточно. Обратите внимание, что расширение .vtf не указывается, а путь начинается с подкаталога \models, каталог \materials опускается.
Q: Физбокс для модели компилируется неправильно, либо не компилируется…
A: Первое правило при создании физбокса – он должен состоять из геометрически выпуклых фигур. Если не будет выпуклости, компилятор сам это исправит, но во многих случаях результат не будет приемлемым. Физбокс может состоять из нескольких простых фигур, которые к тому же могут пересекаться. Для того, чтобы включить эту возможность, следует в qc-файл модели добавить строчку $concave в настройки физбокса, например:
$collisionmodel "mymodel_physbox.smd"
{
$concave
}
Однако это не действует на узлы ragdoll-модели (т.е. каждому узлу можно назначить только один элемент физбокса).
Перед экспортом физбокса следует назначить ВСЕМ его граням одну и ту же группу сглаживания (smoothing group), проще всего первую, и один и тот же material ID. Не забудьте назначить и текстуру, иначе могут быть проблемы с экспортом или восприятием файла формата smd.
И последнее: при стандартных настройках studiomdl.exe не скомпилирует модель, физбокс которой содержит больше, чем 20 элементов. Чтобы убрать данную преграду, следует добавить параметр командной строки –fullcollide к вызову компилятора, например:
studiomdl.exe – fullcollide <Путь к qc-скрипту>\mymodel.qc
Использовать много элементов физбокса не рекомендуется, так как это может негативно отразиться на быстродействии.
Q: Почему после компиляции физбокс смещен относительно модели?
A: Это происходит потому, что их опорные точки имеют разные положение и/или углы поворота. Чтобы этого избежать, есть несколько способов:
а) Отредактировать одинаковым образом положение и углы опорных точек (pivot point) объектов.
б) Создать кость и привязать к ней все объекты, после этого экспортировать кость и нужный объект.
в) Добавить строчку $staticprop в qc-скрипт, этим самым удалив все кости и создав одну, имеющую координаты и углы (0,0,0).
При использовании параметра qc-скрипта $scale (позволяет изменить масштаб модели) может возникнуть проблема разного масштаба модели, физбокса и ЛОДов. Чтобы этого не происходило, следует добавлять $scale перед объявлением всех smd-файлов.
Q: Почему модель типа prop_physics отображается в Half-Life Model Viewer (hlmv.exe), но не появляется в игре?
A: Наиболее распространенные причины:
а) Отсутствует физбокс. Необходимо создать физбокс и подключить его в qc-скрипте, указав все необходимые параметры, например:
$collisionmodel "mymodel_physbox.smd"
{
$concave
$mass 5.0
$inertia 1.00
$damping 0.00
$rotdamping 0.00
}
б) В qc-скрипте следует указать настройки материала модели: $keyvalues. Например для металлической модели можно добавить следующее:
$keyvalues { prop_data { "base" "Metal.Small" } }
Q: Почему при компиляции декомпилированной модели она повернута на 180 (90) градусов?
A: Это происходит из-за глюков декомпилятора. Можно попробовать декомпилировать модель с установленным флажком Do not fix rotations on animations. Если это не помогает, можно либо вручную исправлять положение анимаций (что очень неудобно), либо компилировать, а потом декомпилировать модель и снова компилировать столько раз, сколько необходимо для правильного положения.
Очень удобным способом решения проблемы является дописывание rotate -90 (угол поворота) в конце строки описания sequence'а. И не нужно ничего перекомпилировать.
Q: Почему в Half-Life Model Viewer (hlmv.exe) не отображаются карты нормалей (как следствие модель с освещением по Фонгу блестит полностью)?
A: Иногда происходит такой глюк, что невозможно установить флажок отображения карты нормалей на модели. Чтобы принудительно включить данную опцию, проделаем следующее:
а) Открываем модель в HLMV, после чего закрываем программу (или модель).
б) Находим в реестре ключ enablenormalmapping по адресу: HKEY_CURRENT_USER\Software\Valve\hlmv\models.<Имя модели> и устанавливаем равным 1.
После этого при открытии модели отображение карты нормалей будет включено.
Q: Каким образом можно заменить модель персонажа на свою, при этом сохранив все анимации?
A: Создаем свою модель персонажа с учетом того, чтобы сетчатая оболочка (Mesh) подходила под старый скелет. Можно двигать кости скелета, чтобы кости правильно располагались внутри меша. После того, как сетка и скелет готовы, с помощью модификаторов skin или physique (применительно к 3dsMax) привязываем оболочку к скелету. После привязки проверьте правильность сгибов суставов, а также то, что привязаны все вершины модели. После этого можно экспортировать модель как референс-smd, все анимации будут работать корректно.
Прием, который очень удобно во время работы над моделью, в частности для проверки правильности сгибов суставов в уже готовых анимациях: импорт анимационных smd к модели. При этом сетка и скелет остаются прежними и корректно работают, а импортируется лишь положение костей.
Q: Как вставить своего персонажа в игру?
A: Для того, чтобы сделать полностью своего персонажа, нужно обладать солидными знаниями и опытом программирования под Source engine. Необходимо создать как рутинных код, необходимый для вставки персонажа в игру, так и код, собственно задающий поведение персонажа. Поэтому не имея подобных знания или людей, которые согласятся на такую работу, лучше не затевать создание персонажа. На форуме за такое обычно не берутся.
Как вариант, можно заменить модель уже готового персонажа, который будет действовать ровно так же, как и оригинальный. Все, что можно изменить средствами моделлинга – саму модель, анимации, некоторые параметры и расположение особенных точек, так называемых attachment'ов. Ну и, естественно, можно серьезно поработать над текстурами.
Q: Что такое Азбука Моделирования и где ее можно скачать?
A: Азбука моделирования – учебник по основам моделирования, написанный нами, командой Real Project. В нем есть все необходимое для овладения основами – учебник по 3dsMax, а также все, что необходимо для компиляции моделей под движок Source engine. Скачать ее можно
здесь.
-------------
АЗБУКА МОДЕЛИРОВАНИЯ
В последнее время наблюдаются стабильные проблемы со скачиванием Азбуки Моделирования. В связи с этим перезалил ее, скачать можно отсюда:
http://nitly.tk/jgrhV9
http://ifolder.ru/11205905
http://dl.dropbox.com/u/52153396/azbuka.rar