Создание моделей для Serious Sam. Часть 4

on

И вновь на страницах «Мастерской» мы возвращаемся к редактированию «Крутого Сэма». Строительство уровней мы уже рассмотрели, но, возможно, некоторым этого показалось мало… На этот раз мы освоим редактирование и внедрение в игру собственных моделей. Создание останется за кадром — по 3D Studio MAX или LightWave есть целые книги-учебники. Поэтому рассмотрим лишь общие моменты подготовки моделей для импортирования в игру.

Инициация
Serious Modeler, как и Serious Editor, работает на движке игры. Поэтому и здесь вы можете видеть свое творение в том виде, в каком оно будет представлено в игре. Serious Modeler скорее не редактор, а просто очень навороченный конвертор моделей.
Как и положено, сначала
рассмотрим интерфейс. Он сходен с интерфейсом редактора уровней — похожие кнопки, похожие списки.
Вверху и в левом углу окна расположен инструментарий, ниже — окна обзора. Цифрой 1 обозначено окно с включенным режимом просмотра текстурных координат модели (включается кнопкой M). Цифрой 2 — окно, в котором вы можете осматривать результат своей работы. Начиная работу, вы увидите лишь одно окно — то, что под цифрой 2. Создать дополнительное окно вы можете через меню Window\New Window. Затем в новом окне вы можете включить новый режим либо сделать несколько одинаковых окон, скажем, для того, чтобы осматривать модель с нескольких ракурсов одновременно.
Движение камеры осуществляется точно так же, как и в редакторе уровней. Перемещение вверх-вниз — пробел и левая кнопка мыши (LMB). Приближение и удаление камеры — пробел и правая кнопка мыши (RMB). Вращение — пробел и обе кнопки мыши. Если вместо пробела вы будете нажимать Ctrl, вы сможете вращать и перемещать саму модель.
Также к редактируемой модели прикреплен источник света (по умолчанию не виден; отображается после нажатия Ctrl+L). Удалять или приближать его к модели можно комбинацией Shift+RMB, а вращать вокруг модели — Shift+RMB+LMB. Ну а кнопкой Q вызывается уже знакомое нам по Serious Editor’у окно редактирования свойств.
Остальные особенности рассмотрим по ходу работы с моделером.

Правила моделирования
Создание модели и редактирование
текстурных координат происходит вне Serious Modeler’а, в 3D Studio MAX (или каком-то ином редакторе). Хотя само создание мы рассматривать не будем, я все же позволю себе дать вам несколько советов.
Главное — модель должна быть цельной. То есть, даже если ваша модель состоит из двух и более совершенно отдельных объектов (рука и нож, например), вам все равно придется объединить их. В противном случает редактор импортирует только один из объектов. Если объединение по каким-то причинам нежелательно, то вы можете сделать две (три, четыре…) отдельных модели, а потом присоединить одну к другой в качестве дополнительной модели с помощью средств редактора. О том, как это сделать, мы поговорим позже.
Имейте в виду, что одна единица измерения длины в 3D-редакторах равна одной единице Serious Modeler’а. Но в 3D-редакторах одна единица — величина совершенно микроскопическая, тогда как в SM она равна одному метру.
Есть одна тонкость и в задании текстурных координат — моделер не поддерживает разбиения координатной сетки. То есть, если в 3DS вы сделаете куб и, отделив координатные сетки его граней друг от друга, зададите каждой стороне отдельные части текстуры, то в Serious Modeler’е вместо ровно натянутых текстур будет сплошная ерунда. За примером далеко ходить не надо, просто рассмотрите следующую картинку.
Слева на картинке изображен исходный вариант маппинга. Как видно — координатная сетка частично разбита. Справа же — результат импортирования модели в SM: здесь сетка уже не разбита, а просто как бы сложена пополам. Измененные координаты частично перекрывают черные области на текстуре, поэтому эту текстуру пришлось немного перерисовать. Чтобы так не происходило, нужно либо присваивать разные материалы отдельным частям поверхности модели (и, соответственно, задавать координаты каждому материалу отдельно), либо создавать несколько отдельных моделей (например, составить сферу из нескольких отдельных «лепестков») и объединять их непосредственно перед импортированием в Serious Modeler.
Положим, модель для импортирования у вас есть. Сконвертируйте свою модель в формат 3ds или lwo. Модель обязательно должна находиться в директории «Крутого Сэма»: в отдельной папке или прямо в корневой директории — неважно. Затем в Serious Modeler идите в меню File\New. При создании нового файла моделер будет сам требовать указать ему файл для редактирования.

Текстурирование
Метры
Что такое «метр», знают все. Но малопонятно, зачем нужно в метрах измерять размер текстуры. Проясним. Допустим, вы задали текстурные координаты модели для текстуры размером 256*256 пикселей. Если вы замените эту текстуру на другую, размером, скажем, 128*128 точек, то вам придется задавать координаты заново, так как такая текстура покроет только четверть координатной сетки. Но в Serious Modeler’е текстурные координаты так же, как и размер модели, конвертируются в метры. И, указывая при конвертировании текстуры размер, скажем, в 2*2 метра, вы стираете различие в разрешении текстур, так как для SM текстуры кажутся одинакового размера.
задать еще на стадии создания модели, то текстура у вас уже есть, и, когда вы добавите ее на модель, она уже будет правильно «натянута». Но сначала необходимо сконвертировать текстуру в сэмовский формат tex (заметьте, что редактор понимает только два формата конвертируемых картинок — tga и pcx). Делается это через меню File\Create Texture либо комбинацией Ctrl+Shift+T. В появившемся окне выберите пункт Normal texture, затем выберите конвертируемую картинку, а в следующем окне задайте ее размер в метрах. Если бы вы использовали создаваемую текстуру в редакторе уровней «Сэма», то вы могли бы отмасштабировать ее уже после натягивания, но в моделере масштабировать текстуры нельзя. Поэтому масштаб и указывается непосредственно при создании. Подробнее про то, зачем нужны метры в Serious Modeler’e, смотрите на врезке. С первого раза у вас может не получиться подобрать подходящий размер, поэтому, чтобы не делать каждый раз все заново, просто нажмите кнопку R.
Имейте в виду, что соотношение сторон текстуры (уже не в метрах, а в более привычных пикселях) должно быть представлено целыми числами, например, 1:1, 1:2, 1:3, а не 1:3.14159. В противном случае редактор просто откажется импортировать текстуру. После нажатия кнопки Create текстура будет сохранена под своим старым именем, но с расширением tex, а также автоматически натянута на модель. Если же вы захотите добавить ранее сделанную и уже сконвертированную текстуру в модель, нажмите комбинацию Ctrl+T.
Также можно сделать текстуру с каким-либо эффектом. Для этого в появляющемся после запуска конвертора текстур окне выберите пункт Effect texture. Текстура, которую вы подвергнете изменению, указывается прямо в окне редактирования эффектов. Это должна быть картинка, уже сконвертированная в формат tex. Здесь, помимо размера текстуры в метрах, вам надо указать класс эффектов (вода, огонь…) и тип — им соответствуют списки Effect class и Effect. В модель такие текстуры добавляются аналогично предыдущему типу.
Если возможностей стандартных эффектов вам недостаточно, вы можете сделать собственную анимацию. Сначала надо нарисовать отдельно все кадры анимированной текстуры, а затем сохранить каждый отдельным файлом. Затем, как обычно, нажимаете Ctrl+Shift+T и выбираете кнопку Animated texture. Вам сразу предложат выбрать файл. Выберите любой кадр вашей анимации. После этого откроется окно задания свойств анимированных текстур. Вы можете видеть его на скрине.
Видите окошко с текстом слева? В нем задаются все параметры, присущие стандартным текстурам, а также параметры анимации. Рассмотрим строки скрипта (а это именно скрипт) по порядку.
TEXTURE_WIDTH 2.0000 — привычный уже размер текстуры в метрах.
TEXTURE_MIPMAPS 8 — количество уровней детализации текстуры.
ANIM_START — строка, указывающая начало скрипта анимации.
DIRECTORY models\anim_texture\ — директория, в которой располагаются кадры анимации.
ANIMATION Default_Animation — название анимации. Нужно, так как вы можете создать несколько вариантов анимации.
SPEED 0.5 — временной промежуток в секундах между показом соседних кадров. После этой строки нужно вписать названия кадров.
ANIM_END — конец блока анимации.
END — завершение скрипта.
Кадры вписываются в скрипт простым перечислением файлов в том порядке, в котором они должны следовать в анимации. После того как вы укажете желаемые параметры, нажмите кнопку Refresh. Картинка справа должна начать показывать анимацию. Сохраните текстуру так же, как и другие — кнопкой Create.
Если вы впишете в скрипт неправильную строку, то моделер выдаст примерно такое сообщение: «Unidentified key-word found (line: Sample)…». В скобках будет показана неправильная строка. Если эта строка была вписана вами, то попытайтесь понять, в чем ошибка, и исправить ее. Если же строка была в скрипте по умолчанию и сообщение об ошибке появилось до появления окна задания параметров, то просто сотрите эту строку.

Изменение свойств
Рассмотрим изменение визуальных свойств полигонов, то есть прозрачность поверхности, метод смешения с фоном и т.п. Чтобы было удобнее работать с поверхностями, перейдите в режим просмотра полигонов. Затем создайте дополнительное окно с моделью и расположите окна так, чтобы они не перекрывали друг друга. Затем вызовите окно редактирования свойств модели, нажав кнопку Q.
Картинка из хелпа к моделеру. Здесь показано, каким образом прикреплена голова к руке безголового пехотинца. Как видите, полигон является лишним в модели — он сделан специально для головы.

Обратите внимание: если курсор находится над окном с трехмерным видом на модель, то в окне будет целых восемь закладок. Это: Global и Mip — на них в основном просто статистическая информация; Rendering — управление освещением и базовыми эффектами текстур; Position — положение и поворот модели, а также угол обзора камеры; Collision — здесь задается collision box; Attachment — на этой закладке вы можете присоединить дополнительную модель к основной; Sound — присвоение звука к модели; и Animation — статистическая информация об анимации. Если вы переместите стрелку на окно с текстурными координатами (или переключитесь в него), то закладок останется всего три — Global, Mip и Rendering. Рассмотрим самые важные пункты подробнее.
Начнем с закладки Rendering. В списке Shading вы можете выбрать метод затенения модели. В списке Translucent — «метод» прозрачности, как то: opaque — непрозрачная текстура; transparent — текстура будет прозрачной в тех участках, которые помечены прозрачными в альфа-канале текстуры, причем эти участки могут быть или полностью прозрачными, или нет — никаких промежуточных значений; translucent — полупрозрачная текстура, переход от прозрачности к непрозрачности такой же плавный, как и указанный в альфа-канале текстуры; add — полупрозрачная текстура, к которой добавляется яркость текстуры, расположенной за
моделью; наконец, multiply — текстура становится полупрозрачной и похожей на негатив.
Чуть ниже списков расположен небольшой набор параметров. Слева в этом наборе расположены четыре окошка, в которых вы можете «включить» различные слои текстур. Это Diffuse — обычная текстура, Reflections — карта отражений, Specularity — карта освещения и Bump — детализация текстур. Справа — еще три параметра, отвечающих за свойства материала. Из них важны два: Double sided — если включить, то текстура будет просматриваться как снаружи, так и изнутри модели (полезно, например, для различных решетчатых или кружевных конструкций); Invisible — делает полигоны невидимыми. Внизу закладки расположились четыре небольших палитры — Diffuse, Reflections, Specularity и Bump. На них, как и в редакторе уровней, вы можете задать оттенок и прозрачность слоя текстуры, соответствующего названию палитры.
Теперь рассмотрим закладку Collision. На ней, как уже говорилось выше, задается «ящик столкновений» — преграда, на которую вы будете натыкаться, пытаясь пройти сквозь создаваемую модель в игре. Чтобы видеть результат своей работы, нажмите кнопку С. Проще всего задать «ящичек», нажав на кнопку Allign to size. Но, возможно, результат будет не совсем соответствовать вашим ожиданиям. Тогда просто подкорректируйте значения размера и положения ящика в полях внизу. Если вы включите флажок Collide as box, то границы этого самого box’а будут заданы по крайним вертексам модели. Если флажок будет выключен, то вступит в действие один из трех параметров, расположенных в правой части закладки. Эти параметры просто приравнивают высоту и ширину, или высоту и длину и т.д. Вы можете задать несколько box’ов (первый создан по умолчанию, а все последующие добавляются кнопкой Add), но активным единовременно может быть только один из них.
Третья важная закладка — Attachment. Здесь вы можете присоединить дополнительные модели (такие, например, как бомбы в руках у безголовых камикадзе). Добавка осуществляется просто — нажмите кнопку Add и выберите желаемую модель. Правда, модель возникнет в каком-нибудь совершенно неприглядном месте. К сожалению, дополнительную модель нельзя вращать и перемещать так же свободно, как и основную. Но вы можете присоединить дополнительную модель к любому полигону основной. Для этого нужно навести курсор на одну из вершин полигона и нажать цифру 1, затем навести курсор на следующий вертекс того же полигона и нажать 2, а потом нацелиться на третий и нажать 3. Отрезок 1-2 определит направление «переда» модели, а отрезок 1-3 — направление «верха».
Присоединив дополнительную модель, подкорректируйте ее положение в полях в нижней части закладки. Дополнительных моделей вы можете задать сколько угодно. Чтобы они не мешали при работе, вы можете отключить их с помощью параметра Visible. Если основная модель анимирована, то дополнительная модель будет двигаться вслед за полигоном, к которому прикреплена.

Анимация модели
Анимация модели делается аналогично анимации текстур, то есть задается в скрипте. Редактировать скрипт модели можно, нажав кнопку S, либо в любом текстовом редакторе. Вам необходимо сделать отдельно все кадры анимации и вписать их в скрипт. Кадры должны иметь формат lwo или 3ds. Так как движок «Крутого Сэма» использует интерполяцию моделей соседних кадров, то вам не обязательно указывать все подряд кадры анимации. Если вы сделали сто кадров на прорисовку одного шага, то вы можете указать только каждый третий (четвертый, пятый) кадр — движение все равно будет выглядеть плавно.
Очень важный момент: чтобы изменения анимации, которые вы сделали в скрипте, вступили в силу, вам необходимо заново создать модель. То есть, изменив скрипт по своему вкусу, вы сохраняете его (файл будет иметь вид MyModel.scr), а затем закрываете окно с моделью. Потом в меню File\New вместо модели выберите скрипт MyModel.scr. Ваша модель будет воссоздана в соответствии с теми параметрами, что вписаны в скрипт. Текстуры, звуки и все прочее также останется на месте.
После завершения работы над моделью вы можете спокойно удалить все заготовки — картинки, кадры анимации, скриптовый файл, — так как все это записано в готовую модель или текстуру и больше не понадобится. Вставляется модель проще простого — с помощью объекта ModelHolder в Serious Editor’е, как и любая стандартная модель.




Добавить комментарий