Игра в материале
Half-Life 2
?Рейтинг
Игромании
9.5Рейтинг
игроков
PC   Xbox   PS3   X360
Жанр: Боевик, Боевик от первого лица
Серия: Half-Life
Мультиплеер:  Интернет, локальная сеть (до 32 игроков)
Разработчик: Valve Corporation
Издатель: Vivendi Games
Издатель в России: Бука
Локализатор: Valve Corporation
Дата выхода: 16 ноября 2004
Дата выхода в России: 22 ноября 2004
Моделирование в Half-Life 2. Общие принципы

Моделирование в Half-Life 2. Общие принципы

Мастерская — Моделирование в Half-Life 2. Общие принципы
Сразу успокою ветеранов, создававших модели для первого Half-Life. Процесс этот изменился незначительно и в основном банально оброс расширениями, которые позволяют улучшить качество выдаваемой картинки. К таким расширениям относятся, например, bump-mappin
Игроманияhttps://www.igromania.ru/
Мастерская
Моделирование в Half-Life 2. Общие принципы
    Наверняка многие из вас уже задавались вопросами, как будет обстоять дело с моделями на новом движке Valve и какие преимущества по сравнению с движком первого Half-Life получат моделлеры второй части. А многих, возможно, взволновал вопрос, насколько усложнился процесс создания моделей для двигателя Source.
    На эти, а также многие другие вопросы мы постараемся ответить в этой статье. Все, что здесь будет описано, тестировалось и гарантированно работает только с лицензионной версией Half-Life 2 и Source SDK. Совместимость с пиратскими версиями не проверялась.

    Модель — на запчасти
   
Сразу успокою ветеранов, создававших модели для первого Half-Life. Процесс этот изменился незначительно и в основном банально оброс расширениями, которые позволяют улучшить качество выдаваемой картинки. К таким расширениям относятся, например, bump-mapping, ragdoll, physbox и другие. Подробнее их все мы рассмотрим позже. Сейчас нас больше интересует, как сделать модель и какие красивости можно на нее навесить.
17 Kb
Карта высот (слева) и карта ее
нормалей (справа).
    Первое, что вам понадобится для создания любой модели, — это редактор трехмерных сцен вроде SoftImage XSI Mod Tool, 3D Studio MAX или, в крайнем случае, MilkShape 3D. Любая модель, как и в первом Half-Life, состоит из нескольких составляющих. Раньше, как вы помните, это были файлы анимации и геометрии с расширением smd, а также файлы текстур, имевшие ограничение в 256 цветов. Теперь дело обстоит немного иначе.
    Как и раньше, в нашем распоряжении остались файлы анимации и геометрии. Это, соответственно, sequence.smd и reference.smd. Первый содержит данные о движении костей скелета модели (анимации), второй содержит данные о самой модели (вершины, треугольники, их соединяющие, координаты наложенных текстур, а также иерархическое дерево суставов, называемое скелетом). Но кроме них добавился еще один файл, который содержит информацию о collision model, — он, по замыслу разработчиков, должен содержать упрощенную геометрию модели и предназначаться только для физического движка, обрабатывающего столкновения этой модели с окружающими объектами. Но на деле некоторые моделлеры просто экспортируют копию reference.smd в physbox.smd. В случае, скажем, с кирпичом это не страшно, но если модель сложная, то лучше построить для нее упрощенную модель столкновений, иначе тормозить все будет даже на относительно мощных машинах.
    Collision model должна быть выпуклым пространственным многоугольником. Например, куб или пирамида — выпуклые многоугольники, а арка — нет. Если модель столкновений не будет выпуклой, то движок доведет ее до выпуклой, чего вам, естественно, не надо. Чтобы достичь той формы physbox’а, которая вам нужна, разбейте невыпуклый многоугольник на несколько выпуклых и назначьте каждому из них свою, уникальную группу сглаживания. Тогда все будет так, как вам нужно.
28 Kb
Физическая оболочка
модели.
    Изменилась и работа с текстурами. Теперь основа движка — материалы. Материалы — это те же текстуры, только более сложные. Они имеют свои характеристики, например звук, издаваемый при падении объекта, “отделанного” этим материалом, вид частиц, отлетающих от него при попадании пули, и так далее. Материал имеет в себе два графических изображения: саму текстуру в формате targa (*.tga) и карту нормалей, которая реализует в игре bump-mapping. Максимальный размер текстур — квадрат со стороной 2048 пикселей. Поддерживаются и альфа-каналы.
    Карта нормалей, или normal-map, — это изображение, как правило, непонятного сине-розового цвета. Цвет каждого пикселя такой карты содержит информацию о направлении нормали (перпендикуляра) к каждому соответствующему пикселю текстуры tga. Карта нормалей рассчитывается из черно-белой карты высот, где каждый пиксель может иметь 256 оттенков серого цвета. Чем светлее пиксель на такой карте, тем выше соответствующий ему пиксель текстуры расположен над поверхностью полигона. Понятно, что длина и ширина текстуры должна быть такой же, как длина и ширина карты высот. Автоматически рассчитать карту нормалей из карты высот помогает специальный плагин для Photoshop, разработанный фирмой Nvidia (его вы можете найти на нашем компакте). Карту высот лучше всего рисовать на отдельном слое, после того как нарисуете текстуру.
    После того как текстура и карта нормалей подготовлены и сохранены, наступает время компиляции всего этого в файл *.vtf. Это делает утилита vtex.exe из набора Source SDK. Для того чтобы скомпилировать материал, вам понадобятся файлы с текстурой, картой нормалей и описание особых параметров компиляции. Это описание есть не что иное, как текстовый файл, имеющий имя, совпадающее с именем файла текстуры и с расширением txt. Чтобы скомпилировать текстуру, нужно лишь перетащить значок файла текстуры или файла с описанием на значок vtex.exe. Либо можно запустить vtex на компиляцию через командную строку.
    В общем случае текстурирование модели сначала проходит в одном из названных выше редакторов с использованием фалов bmp и tga. Затем, когда модель уже оттекстурирована и готова к анимации, материалы компилируют. После этого, используя плагин для 3D Studio, vtf-файлы накладывают уже в редакторе и затем анимируют. Этот плагин также можно обнаружить у нас на компакте. При использовании XSI такого делать не придется: специальная версия, разработанная для Half-Life 2,XSI Mod Tool, — позволяет работать с vtf напрямую.

    Скелет и анимация
   
В этой статье мы не будем изучать основы анимации. Я коснусь здесь только ключевых моментов и ограничений, наложенных на создание анимации. Как и в первой части Half-Life, здесь используется скелетная анимация. Основа этой технологии — скелет, состоящий из условных точек — суставов (джойнтов), к которым привязано “мясо” — вершины полигональной модели. Суставы внутри модели образуют иерархию. Высший сустав по иерархии абсолютно свободен и
12 Kb
Кости катера. Все
они привязаны к одной
центральной — родительской.
не привязан к какой-либо точке пространства. Суставы уровнем ниже привязаны именно к нему. Связь отображается как линия, проходящая от одного сустава к другому. Дочерние джойнты при вращении или перемещении родительского повторяют его движения.
    В новом двигателе Valve скелет выполняет еще несколько функций. Во-первых, с его помощью реализуется технология ragdoll. В переводе с английского это страшное слово означает “тряпичная кукла”. Именно благодаря этой системе персонажи после смерти так реалистично падают и раскидывают в стороны руки и ноги. Работа технологии основана на ограничениях вращения суставов так, чтобы соответствовать, например, реальной анатомической подвижности суставов гуманоида или выдуманной подвижности суставов любого другого существа или механизма — это зависит только от вашей фантазии. Ragdoll-система описывается в скриптовых файлах qc, о которых речь пойдет позже. Как именно создавать ragdoll, в рамках этой статьи рассказать невозможно из-за большого объема материала.
    Следующая функция скелета — это создание физически активных, пружинящих элементов. Например, подвеска автомобиля. Характеристики подвески также описываются в компиляционных скриптах qc. Каждое колесо анимируется отдельно, после чего для каждой анимации прописываются характеристики сжатия, такие как коэффициент жесткости и др. О создании техники нужна отдельная статья, поэтому подробно рассматривать ее сейчас нет ни смысла, ни возможности.
    На основе суставов скелета делаются также особые сочленения, которые могут контролироваться движком игры. Они называются controllers. Это особые суставы, анимация которых может проигрываться и останавливаться в произвольном порядке. Так еще в первом Half-Life был сделан пулемет вертолета “Апач”, во второй части так сделана стрелка спидометра “багги”. В общем-то, на том же принципе сделан и поворот колес — философия та же, только немного другая реализация. Но мы не будем вдаваться в подробности программирования.
    Если при компиляции скелет в файле геометрии модели не совпадает с данными о скелете в одном из файлов анимации, то компилятор выдаст ошибку. Не совпадать может количество джойнтов, их иерархия и расположение в пространстве. Поэтому будьте внимательны. Не изменяйте скелет на этапе создания анимации.

24 Kb
    Компиляционные скрипты
   
Компиляционный скрипт — это файл с расширением qc, в котором описывается информация о модели. Он содержит информацию о директории, хранящей текстуры и файлы анимации, имя конечного файла mdl, координаты особых точек — аттачментов (attachments). Этот файл указывается программе studiomdl.exe (которая обитает в недрах Source SDK) в качестве аргумента (просто значок файла перетаскивается на значок studiomdl).
    В компиляционных скриптах также прописываются некоторые физические свойства объекта, такие как масса, описывается поведение колес для техники, поведение суставов системы ragdoll, свойства используемых материалов и т.д. Обязательно в скрипте присутствуют имя файла геометрии модели и список файлов анимации. О компиляции мы поговорим подробнее в будущем, подготовим список доступных команд и откомпилируем нашу первую модель.

   
Результирующие
   
Основываясь на том, что вы уже знаете, мне хотелось бы остановиться на некоторых элементах моделирования. Во-первых, максимально возможное количество треугольников на модель — 25 000. В этот предел необходимо укладываться в любом случае. В среднем же в игре ни одна модель не имеет больше
12 Kb
Красные
точки — это
аттачменты.
7000 полигонов. Максимальное количество суставов — 256. На количество используемых материалов ограничения нет.
    Я упоминал об особых точках — аттачментах. Это “служебные” точки модели — они доступны для программиста, пишущего код будущего мода. Как правило, к этим точкам привязывают спрайты выстрелов или положение моделей оружия, если речь идет о моделях людей, которые будут держать это оружие в руках (так сделано в Counter-Strike). Но программист может привязать к этой точке все, что угодно.
    Также обратите внимание на то, что созданная вами техника может иметь только четыре колеса. Другое количество колес техники может быть реализовано программистами в процессе создания мода.
    Модели в Half-Life 2 делятся на четыре вида. Это обычные модели интерьера, призванные детализировать уровень и как-то реализовывать физику (раскалывающийся арбуз — это пример такой модели). Второй вид моделей — это действующие персонажи, враги, турели и прочее. Почти все они имеют ragdoll и несколько десятков анимаций, отражающих их действия. Эти модели в движке описываются отдельными классами и часто имеют свой ИИ.
    Третий вид — это модели оружия. Они делятся на три вида. Первый — модель, которую вы видите на экране. Она является максимально детализованной и содержит анимации выстрела, перезарядки и т.д. Второй — модель, которую персонаж держит в руках. Она минимально детализирована, потому как малозаметна, и таких моделей на одной сцене может присутствовать много.
    Третий вид — это модель, которая лежит на полу, и ее можно подобрать. Она также минимально детализирована, чтобы не отличаться от той, которую модель персонажа держит в руках. Наконец, четвертый вид моделей — это техника. Наиболее сложный по реализации, но интересный вид моделей. Создание техники — весьма кропотливый и долгий труд. Компиляционный скрипт такой модели может занимать несколько страниц формата А4 десятым шрифтом.
    На этом вводный материал для начинающих моделлеров исчерпан. В ближайших номерах мы планируем рассмотреть процесс создания модели в редакторе SoftImage XSI Mod Tool.
Комментарии
Загрузка комментариев