Ретопология в Blender: используем модификатор Shrinkwrap

Ретопология в Blender
Снова занимаюсь ретопологией High-Poly модели в Blender'е. Я уже немного рассказывал о методе создания низкополигональной (low-poly) модели на основе высокополигональной в статье о создании персонажа для компьютерной игры. Там я использовал встроенный инструмент Sculptris для снижения числа полигонов. Также на практике я применял метод ручной ретопологии в Blender, когда low-poly поверхность отрисовывается заново с нуля с привязкой к высокополигональной high-poly модели.

Сейчас же я напишу пару строк о крайне полезном модификаторе, который позволяет значительно упростить процесс ретопологии High-Poly модели в Blender.


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

Экспорт из Blender в Unity: расположение осей

При экспорте персонажа из Blender в Unity обнаружил, что когда я это делал в прошлый раз, то мне просто повезло с правильным расположением осей, и этого вопроса не возникало. Теперь же повторил процесс снова и наткнулся на грабли: импортировал модель из Blender в Unity, повесил на нее стандартный скрипт Third Person Controller, и обнаружил, что персонаж идет задом наперед.

Правильное расположение осей показано на картинке: при этом стандартный контроллер направляет персонажа в нужную сторону (идет лицом вперед).

Экспорт из Blender в Unity

Как видно из рисунка, +Z в Unity соответствует -Y в Blender'е; +X в Unity соответствует -X в Blender'е; и Y в Unity соответствует Z в Blender'е.
Речь идет о прямом использовании .blend-файлов в Unity, т.к. Unity отлично их поддерживает без какой-либо необходимости в экспорте из Blender.

По поводу единиц измерения — они в Blender и Unity совпадают.

Нормали вершин и рендеринг в 3D играх

Швы при освещении модульных конструкций
Занявшись модульным моделированием игровых локаций, я еще в Unity столкнулся с проблемой наложения освещения на блочные конструкции. Проблема в том, что при рендере блоки отчетливо видны, хотя в теории должны образовывать единую конструкцию. Это отчетливо видно на рисунке в верхней части кирпичной стенки.

Все, на что у меня хватило ума в тот раз — это отказаться от использования освещения в Unity и применять Unlit-шейдеры, да и вообще, отказаться от Unity и перейти на UDK:), в котором на первый взгляд таких проблем с модульными конструкциями не наблюдалось. Потом, правда, оказалось, что и в UDK эта проблема имеет место быть, в частности при создании травы. Теперь же хочу поделиться решением этой проблемы, да и вообще, немного погрузиться в теорию нормалей вершин в рендере 3D движков.


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

Экспорт анимации из Blender в UDK (Unreal Engine)

Blender 2.64aВ данный момент активно занялся анимацией своего персонажа для UDK (Unreal Development Kit), и столкнулся с проблемой экспорта из Blender в UDK. Ранее я уже писал про экспорт из Blender в UDK в статье Создание своего персонажа для UDK в Blender. Проблема заключалась в том, что при экспорте в FBX-формат Blender 2.63 неправильно понимал параметр Scale при экспорте, а точнее применял его только к самой модели, но не к скелету. Изначально приходилось работать с увеличенной в 50 раз моделью и, соответственно, скелетом, а это не очень удобно.

Все изменилось с выходом Blender 2.64a.

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

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

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

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

Качественную модель нельзя сделать наскоком: раз-раз, и готово!, если, конечно, вы не делаете мобильную игру. Моделирование персонажа для компьютерной игры, разрабатываемой для 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 в Blender

UDK Skeleton

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

Например вот это руководство по экспорту скелетных моделей из Blender в UDK ссылается на шикарный видеоурок по риггингу в Blender'е от создателя шедевров визуального искусства.

Что же касается экспорта скелетной модели (Skeletal Mesh) из Blender в UDK, то тут все уже не так однозначно. Существует несколько вариантов, и в них очень легко запутаться. Говорят, что новый экспортер в .FBX-формат в Blender'е работает очень хорошо и позволяет одновременно в одном .FBX-файле передавать сразу несколько анимационных треков, которые потом в UDK автоматически преобразуются в AnimSets. Однако в Blender'е реализована старая версия FBX-формата, на которую UDK постоянно ругается. Эту ошибку поможет исправить конвертер FBX от Autodesk, поставляемый в виде плагина или отдельного приложения.

Также существует плагин для Blender, позволяющий экспортировать Skeletal Mesh в родной формат Unreal Engine для скелетных моделей и анимации .PSK/.PSA. Этого плагина существует уже несколько версий, каждый из которых работает правильно в той или иной версии очень динамично развивающегося Blender'а. В этом, в основном, и заключается основная проблема. Слишком уж быстро он развивается и меняется. Не успевают разработчики плагинов корректировать код под все нововведения.


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

Экспорт моделей из Blender в UDK (Unreal Engine)

Экспорт из Blender в UDK

Сегодня занялся переносом готовых моделей зданий из Blender в UDK (Unreal Development Kit). Надо сказать, что процесс оказался несколько сложнее, чем я предполагал. Напомню, что я применяю модульное моделирование зданий и сооружений для игровых уровней. Так я планирую ускорить процесс разработки игры.

Особенность Unreal Engine 3 в том, что в этом игровом движке применяется модель освещения с использованием LightMap — карты освещенности для статичных игровых моделей. LightMap позволяет не тратить процессорные и графические ресурсы на просчет освещения в реальном времени. Вместо этого происходит предварительное «запекание» карты освещенности в специальную текстуру, которая называется LightMap.


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

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

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

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

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


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

Prefab'ы в Unity

Импортированная в Unity 3D-модель
Prefab — это заранее подготовленный игровой объект, который содержит все необходимые модели и компоненты. По-русски, наверное, можно назвать prefab «заготовкой». Так проще, чтобы не переключать все время клавиатуру :) Заготовки хранятся в специально организованной создателем игры библиотеке в папке проекта. Библиотека представляет собой также набор иерархически размещенных папок.

При создании игровых локаций можно просто кидать заготовки на сцену, а можно добавлять их динамически программным способом, как, например, новых врагов после смерти их соратников. Именно для этого и нужны заготовки. Один раз создал врага, навешал на него все необходимые компоненты (контроллеры столкновений, физику, AI, звуковые источники и т.д.), и через простой скрипт или готовый компонент Respawner генерируешь врагов в нужных местах сцены и в нужных объемах.

Но прежде чем воспользоваться всеми преимуществами заготовок, необходимо понять и освоить основные принципы работы с заготовками в Unity, а они не столь очевидны.

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

Первые модельки

2 фото
Рядовой германской армии
image
Вот заготовки первых моделек для игры Soviet Hero, сделанные в Blender'е. Хорошо видны общие пропорции персонажей, которые выглядят достаточно мультяшно. Этого я и хочу добиться, т.к. мультяшек любят и взрослые и дети.