Создание персонажа для компьютерной игры

Создание персонажа для игры

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

Качественную модель нельзя сделать наскоком: раз-раз, и готово!, если, конечно, вы не делаете мобильную игру. Моделирование персонажа для компьютерной игры, разрабатываемой для PC или современной консольной платформы, состоит из нескольких этапов, каждый из которых представляет собой отдельную задачу. Вот как я вижу процесс создания модели персонажа:
  1. Создание высокополигональной модели (high-poly model) в соответствующем редакторе. Здесь прорисовываются все детали одежды, все складочки, морщинки, шрамы, выпирающие сосуды и т.д. В общем, все то, что нельзя делать в конечной игровой модели с помощью полигонов.
  2. Создание низкополигональной модели (low-poly model) на основе высокополигональной. На этом этапе создается конечная игровая модель, которая должна содержать как можно меньше полигонов, но при этом помогать передавать всю детализацию, созданную на предыдущем этапе. Сама детализация модели будет осуществляться при помощи карты нормалей (Normal Map), созданной позднее на основе высокополигональной (high-poly) модели.
  3. Создание развертки (unwrap) low-poly модели. Развертка модели нужна для дальнейшего текстурирования и создания карты нормалей (Normalmap).
  4. Создание карты нормалей (Normal Map). Карта нормалей нужна для отражения всех деталей персонажа.
  5. Создание текстуры (текстурирование) модели персонажа. Здесь мы окончательно раскрашиваем персонажа игры, одеваем его в одежду и т.д.
  6. Переход на этап 3 или этап 1, если модели персонажа требуется доработка. Да-да, процесс создания модели игрового персонажа является итерационным. Приходится повторять цикл несколько раз, пока не будет достигнуто требуемое качество модели.



( Далее обо всем по порядку... )

Оптимизация текстур под UDK

Мощный редактор материалов в UDK (Unreal Development Kit) позволяет использовать оптимизированные текстуры для экономии памяти. В чем заключается оптимизация текстур? Возьмем, например, карту спекуляра (Specular Map). Она показывает, какие части текстуры должны отражать свет и в каком количестве (подробнее про Specular Map). Для создания карты Specular Map нам достаточно всего одного канала в RGB-изображении. Если использовать под эту карту отдельную текстуру, то остальные каналы не будут использоваться вовсе. Это непростительное расточительство! Мы поступим хитрее, и запакуем карту Spacular Map в неиспользуемый канал другой текстуры, например Diffuse Map.

Аналогичным образом мы можем поступить и с картой прозрачности для прозрачных текстур, используемых в частности для создания решетчатых заборчиков. В данном примере я покажу, как запаковать карту прозрачности Opacity Mask в альфа-канал текстуры карты нормалей (Normal Map) того же заборчика. А так как я стараюсь использовать бесплатные программы, то сделаем мы это в Gimp.

Оптимизация текстур для UDK


( Итак, приступим... )

Создание карты нормалей (Normal Map) для готовой текстуры

Normal Map для текстурыВерхом мастерства 3D-артиста является самостоятельное изготовление текстур в 3D-редакторе. Для этого создается высокополигональная модель, из которой и запекаются текстуры (диффузная карта — Diffuse Map, а также карта нормалей — Normal Map). Но большинство использует готовые текстуры из общедоступных коллекций. А они обычно не включают карту нормалей в комплект поставки. Приходится расплачиваться за халяву и изготавливать карту нормалей самостоятельно.


( Читать дальше )

Текстурирование: Specular Map и Normal Map

В этой небольшой заметке хочу рассказать о важности Specular Map и Normal Map при текстурировании игровых моделей. Specular Map задает карту отражения объектом света. Она показывает, какое количество света и какого цвета будет отражено в каждой точке поверхности. Именно Specular Map придает объектам более реалистичный вид.

Обратите внимание на рисунок ниже. Первая картинка слева получена с использованием обычной диффузной текстуры, а картинка справа помимо диффузной использует также Specular Map. Почувствуйте разницу: на первой картинке кирпичная кладка отражает свет неестественно сильно и равномерно, вторая же картинка отражает гораздо меньше и неравномерно. Например, в местах стыков кирпичей свет вообще не отражается.

Использование Specular и Normal Map


( Читать дальше )

Создание карты нормалей (Normal Map) в Blender

Плоскость с картой нормалейОдной из главных задач текстурирования для 3d-игр является создание карты нормалей (Normal map). Карта нормалей служит для имитации высокополигональной графики в игровых моделях со значительно более низким числом полигонов. Например, при помощи карты нормалей можно на обычной плоскости, состоящей из двух треугольников, воссоздать сложный рельеф каменистой поверхности, каждый камешек которой будет выглядеть объемным и переливаться под воздействием источников освещения.

Существует множество способов создания карт нормалей. Каждый из способов хорош в своем случае. Можно воспользоваться специальным плагином для Gimp, который так и называется Normal Map; можно использовать специальным программным обеспечением, например Sculptris или Crazy Bump. Но для создания «честной» карты нормалей, которая требует точной передачи геометрии исходной высокополигональной модели, лучше всего воспользоваться именно средствами 3d-редактора.

Я расскажу, как это делается в Blender. Хотя в Интернете существует множество руководств по созданию Normal Map в Blender, я сразу же столкнулся с трудностями. Весь процесс настолько прост, что занимает всего несколько кликов, но нигде в руководствах я так и не смог вычитать, как именно работает создание карты нормалей внутри Blender.


( Читать дальше )