IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы» Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Ассасины и тамплиеры на большом экране. Удался ли эксперимент?
Комментариев: 50
Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria Спец > Самые интересные проекты января: от Gravity Rush 2 и Resident Evil 7 до Yakuza 0 и Tales of Berseria
Продолжение Gravity Rush, возвращение «Обители зла», приключения в мире японской мафии и прочие интересности.
Комментариев: 8
«Викинг». The Return of the (Vi)king Кино > «Викинг». The Return of the (Vi)king
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Комментариев: 5
Planet Coaster: парк развлечений своими руками Рецензии > Planet Coaster: парк развлечений своими руками
С самого детства мечтали построить идеальный парк аттракционов? Planet Coaster от Frontier Developments это позволяет!
Комментариев: 3
Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником Железный цех > Главные новинки CES 2017: от VR-устройств до «умных» велосипедов и систем слежения за холодильником
Подводим итоги крупнейшей международной выставки потребительской электроники.
Комментариев: 1
Информация по игре
Half-Life 2
Название: Half-Life 2   PCXboxPS3X360
Серия: Half-Life
Мультиплеер: Интернет, локальная сеть (до 32 игроков)
Разработчик: Valve Corporation
Издатель: Vivendi Games
Издатель в России: Бука
Локализатор: Valve Corporation
Дата выхода: 16 ноябрь 2004
Дата выхода в России: 22 ноябрь 2004
Рейтинги игры
10
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Видео по игре
Half-Life 2
Все
Игромания
Half-Life 2: Update - Начало игры
 ИМ  начало игры PC
8 апреля 2015 | 8 мин. 40 сек. | Просмотров: 4118
Демонстрация пользовательского мода, который улучшает графическую составляющую легендарной игры.
Half-Life 2 - Alchemilla Mod Trailer
 трейлер PC
19 января 2015 | 2 мин. 16 сек. | Просмотров: 5670
Глобальная модификация, превращающая Half-Life 2 в Silent Hill.
NVIDIA Shield - Portal & Half-Life 2
 разработка NVIDIA Shield
13 мая 2014 | 56 сек. | Просмотров: 751
Авторы портативки NVIDIA Shield обещают адаптировать Portal и Half-Life 2 для их новой консоли.
Half-Life 2 - Mac Free Yourself Trailer
 трейлер PC
29 мая 2010 | 34 сек. | Просмотров: 2412
Ролик, выпущенный по случаю официального релиза Mac-версии Half-Life 2.
Еще материалы по
Half-Life 2
Всего: 41
Статьи о Half-Life 2
Разработка игр и все, что с этим связаноMore
В новом выпуске: пришельцы, рогатые трупоеды, разумные машины и другие игровые напасти.More
Half-Life 2 * Unreal Tournament * Wing Commander 3: Heart of the Tiger * Escape from the Planet of the Robot MonstersMore
Весьма забавный факт, который не является пасхалкой (по крайней мере, подтверждений этому нет), но мы его все-таки опубликуем.С момента выхода Half-Life 2 многие гадают, где проходит действие игры....More
Если локализовывать весь контент Half-Life 2 вручную, то на одно небольшое дополнение у вас вполне может уйти несколько месяцев кропотливой работы, да еще и в программировании придется серьезно разбир...More
Всего: 37
Новости о Half-Life 2
На этот раз он займется созданием марсианской архитектуры.More
Устройство способно подниматься в воздух более чем на метр.More

В предыдущих статьях цикла мы вплотную подобрались к финальной стадии процесса моделирования — сборке модели в один файл, который можно использовать в игре. Сегодня мы займемся последним этапом моделлинга — компиляцией. Причем, даже если вы не читали предыдущих статей, данный материал будет вам интересен. Ведь компиляция состоит из нескольких этапов, и все они универсальны. То есть на основе изложенной в статье информации вы сможете скомпилировать для игры абсолютно любую модель.

На первом этапе мы подготовим текстуры — из формата Targa переведем их в VTF, напишем для них VMT-скрипт, который будет управлять визуализацией и физикой материалов. Затем нужно будет написать qc-скрипт, согласно которому компилятор соберет модель. Потом мы подготовим модель, физическую оболочку, анимации и... откомпилируем то, что у нас получилось.

Текстуры — в материалы

Формат VTF (Valve Texture Format) был специально разработан для хранения всех необходимых движку данных о материалах. Кроме самой текстуры с альфа-каналами там располагается карта нормалей, mip-уровни текстуры, являющиеся ее уменьшенными копиями, которые накладываются на объект при большом удалении от камеры (для экономии ресурсов).

1 Kb

Новая модель - противотанковый еж.

Для начала напишем для нашей текстуры VMT-файл. Не будем усложнять себе жизнь и сделаем материал достаточно простым.

"VertexLitGeneric"

{

"$baseTexture" "Models/Combine_soldier/Combine_elite"

"$envmap" "env_cubemap"

"$bumpmap" "models/combine_soldier/combine_elite_normal"

"$normalmapalphaenvmapmask" 1

"$model" 1

"$selfillum" 1

}

3 Kb

Так должна выглядеть физическая оболочка модели.

Этот скрипт находится в одном из примеров к официальному SDK. Рассмотрим его, а потом вы сами решите, что убрать, а что добавить.

Ключевое слово VertexLitGeneric определяет тип освещения поверхности. Здесь используются вершинные шейдеры. Если бы вы делали материал для своей карты, на который могли воздействовать карты освещенности (то самое, из-за чего на карте появляется свет и из-за чего он так долго компилируется), то на его месте находилось бы слово LightmappedGeneric.

Описатель $BaseTexture указывает, где располагается ваша текстура в формате Targa. $envmap определяет тип взаимодействия освещения карты и окружения вообще с материалом. Здесь использована константа env_cubemap, определяющая, что поверхность будет блестеть и при этом на нее будут накладываться кьюбмэпы (cubemap) — особый вид текстур, состоящий из шести элементов. Эти элементы являются квадратными текстурами, и на них изображены все стороны света, верх и низ соответственно. В первой части HL так делались небеса.

Параметр $bumpmap показывает, что на вашу текстуру будет применен бампмеппинг, а путь после этого слова указывает, где находится карта высот. Затем идет идентификация карты нормалей. Единица указывает на то, что для этого материала определена карта нормалей и только часть модели, определенная альфа-каналом, будет отражать кьюбмэпы.

Далее следует описатель $model, единица после которого означает, что эта текстура будет накладываться на полигональную модель. $selfillum определяет, что часть текстуры, выделенная альфа-каналом, будет “самосветящейся” (как глаза у комбайнов).

Разумеется, все приведенные элементы вам не понадобятся, поскольку все разом они не могут быть отображены. Например, самосвечение перекроет кьюбмэпы и карты нормалей, и их не будет видно.

4 Kb

Так оболочка будет выглядеть, если не переназначить группы сглаживания.

После того как вы прописали в VMT-файле нужные элементы, приступим к созданию текстового файла, описывающего процесс компиляции через инструмент vtex.exe, обитающий в недрах официального SDK. Вот пример такого файла:

$nolod //Не использовать функцию level of detail

$nomip //Не разделять текстуру на mip-уровни

$clamps //Не повторять текстуру по S-координате

$clampt // Не повторять текстуру по S-координате — используется для текстур вроде спрайтов, не требующих повторения (тайлинга)

$skybox // Текстура будет использована как один из шести элементов неба

$startframe (integer) //Для анимированных текстур — начальный кадр

$endframe (integer) //Для анимированных текстур — конечный кадр. Имя текстуры при этом должно быть mytex001.tga ; mytex.002.tga ; mytex003.tga и т.д.

$nocompress //Не использовать сжатие текстур

$nonice //Не использовать NICE-фильтр для низших mip-уровней

$dxt5 //Использовать сжатие dxt5 вместо полного по умолчанию

Как говорится — лишнее зачеркнуть. После того как файл будет создан, вам нужно будет выделить файлы tga, vmt и только что созданный txt и перетащить их на значок файла vtex.exe. Он скомпилирует файл материала и выдаст сообщение об успешности операции (или ошибке — если вы сделали что-то не так). Откомпилируйте все текстуры.

Переходим к следующему этапу.

Компиляция модели

Для начала нам следует экспортировать модель в smd-файл. В XSI или в 3D Studio — не важно, экспортируется одинаково, только в последнем случае нужен плагин-экспортер, который можно взять с наших дисков. При нажатии Export вам будет задан вопрос, в каком виде сохранить модель.

Сначала сохраните ее как reference — это основная геометрия модели с координатами текстур. Затем очередь анимаций. Если у вас их много — экспортируйте каждую. Возможно, анимации у вас хранятся в отдельных файлах — тогда откройте их поочередно и сохраните как sequence.

Настало время создания физической оболочки. Это условная модель, по которой работает физика столкновений. Физическая оболочка должна быть выпуклым телом, то есть сложные элементы не подойдут, иначе движок доведет их до выпуклых. Как же быть? Выход есть — нужно разбить сложную модель столкновений на несколько простых, выпуклых, и после этого каждой из них присвоить свою группу сглаживания (smoothing groups), тогда все будет нормально.

Рекомендую сначала сделать вокруг модели ее физическую оболочку и только потом удалить модель (скелет не трогайте), а оболочку привяжите к соответствующим костям, чтобы физическая оболочка двигалась так же, как и видимая модель. Теперь можно и ее экспортировать.

37 Kb

Модель перед экспортом. Текстуры меняются после их компиляции в vtf.

Все, что нужно, подготовлено — осталось лишь собрать все воедино. Это делается в специальном скриптовом файле с расширением qc.

Вот пример простейшего скрипта:

$modelname MyModel.mdl

$scale 1.0

$body "Body" MyModelReference.smd

$cd "C:/mypath"

$staticprop

$sequence SeqNameMyModel "MyModel_idle" fps 30

$collisionmodel "mymodel_phys.smd"

{

$mass 132

}

34 Kb

Физическая оболочка персонажа из Counter-Strike: Source.

Первая строка задает имя модели. Так будет называться файл, содержащий модель. Вторая строка отвечает за масштаб модели по сравнению с оригиналом. Параметр $body определяет название геометрии модели и название файла, содержащего эту геометрию. $cd задает путь к директории компилируемой модели. Если путь не задан, то модель выбирается из директории, где лежит файл qc.

Параметр $staticprop объявляет, что модель статична и не содержит анимации, кроме необходимой для компиляции (обычно там делают всего один кадр). Эта команда позволяет движку игнорировать движение костей внутри модели, в результате модель быстрее рендерится. Подходит только для статичных моделей вроде бочек, вывесок и похожих.

$sequence определяет анимацию, сразу после этого описателя идет название анимации и затем в кавычках — имя файла анимации. Слово fps задает скорость проигрывания анимации. Если у вас в редакторе анимация получилась длинной, например 30 кадров, и скорость проигрывания анимации вы поставите тоже 30 кадров, то анимация будет проиграна за 1 секунду, если же поставить скорость 15, то анимация проиграется за 2 секунды.

Параметр $collisionmodel задает имя файла с физической оболочкой. После идет блок команд в фигурных скобках. Команда всего одна — масса объекта, задается вами в килограммах. Например, бутылка водки будет иметь значение 0,5; а бронетранспортер БТР-80 — 13600.

Когда файл компиляции закончен, можно собрать модель. Делается это так же, как и в случае с текстурами. Перенесите значок qc-файла на значок studiomdl.exe, после чего начнется компиляция. Когда все будет закончено, модель появится в определенной вами директории.

Финальные аккорды

Вот мы и научились основам создания моделей для Half-Life 2. Многое осталось за кадром, но самые главные моменты мы рассмотрели. На базе полученных знаний вы можете самостоятельно творить и экспериментировать.

В описании компиляции нет ничего сложного, но иногда объемы текста просто поражают. Например, при создании ragdoll’а нужно описать каждый сустав и индивидуально задать ему диапазон подвижности. При создании техники нужно также описать очень много параметров, таких как точки соприкосновения с поверхностью, амортизация, анимация поворота и радиус поворота колес и много чего еще.

Пока поддерживается только четырехколесная техника, но, используя исходный код, предоставляемый Valve, это можно исправить. При создании моделей оружия важно помнить, что отображаемая на экране модель подгоняется под положение камеры — игрока. Камера всегда располагается в начале координат и смотрит вдоль оси X. Поэтому располагайте модель чуть ниже нулевой горизонтальной плоскости. Тогда ее будет хорошо видно на экране при тестировании.

Ошибки разные бывают

Коротко о возможных ошибках. Самые типичные из них — не найден файл материала, не привязаны кости к модели (если в модели остался хоть один свободный вертекс, модель не удастся экспортировать).

Не ставьте физическую оболочку копией файла reference — это, в зависимости от сложности модели, сильно нагружает процессор расчетом физики. Если расположение костей и их количество в файле геометрии не совпадает с количеством в файле анимации, то в лучшем случае компилятор выдаст ошибку, в худшем — компиляция произойдет, но при этом вся анимация изменится до неузнаваемости.

Если вы меняете скелет, то нужно создавать новую анимацию. Если ваши текстуры имеют размерность, не кратную двум, то результат также будет плачевным. Внимательно следите за вышеописанными вещами — и все будет нормально.

21 Kb

* * *

На этом вводный курс в моделирование завершен. Ждем ваших писем с отзывами и конкретными вопросами, ответы на которые мы напечатаем в игростроевской “Горячей линии”.

Также обратите внимание, что все статьи цикла “Моделлинг Half-Life 2” мы выкладываем на диск в разделе “ИнфоБлок”. Если что-то пропустили, то вам туда — прямой наводкой.

NNNN
NNNN
Всего обоев: 16Show all wallpapers
«300 спартанцев» Зака Снайдера и «Гладиатор» Ридли Скотта успешны и узнаваемы, но ни капли ни историчны. Российский «Викинг» идет другим путем.
Франшизы родом из девяностых продолжают доказывать, что им почти нет равных на арене.
Подводим итоги крупнейшей международной выставки потребительской электроники.
Знаменитая серия отправляет в прошлое, чтобы рассказать историю о том, как Кадзума Кирю стал одним из самых известных мафиози.
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Игра в кубики. В чем сила Minecraft?
Рецензии > Соборы в небесах. Обзор Space Hulk: Deathwing
Спец > Влюбиться в убийцу: история серии Assassin’s Creed
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
Спец > Горячий осенне-зимний сезон Windows Store. Главные игровые новинки
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Прямым текстом > Darksiders: Warmastered Edition — жизнеспособное чудище Франкенштейна
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования