Оружие для VR — [ RAILGUN TUTORIAL]

image

Вступление

Задача для оружия была сформулирована одновременно с задачей о персонажах. Оружие изготовлено для sci-fi сетевого шутера под VR платформы. Стиль оружия был выбран под впечатлением дизайна 90-х годов, c небольшим уклоном в Retro design. Проект является VR экспериментом и находится в разработке.
image

Замысел линейного снайперского оружия

Проект позволил мне создать оружия из далекого 2000 года. В это время моя душа была принадлежала такими играми как Unreal tournament и Quake. Целью было передать ощущение старого доброго Railgun. 
В центральной части оружия с помощью острых углов, треугольников и помятостей создал визуальное напряжение, похожее на сжатую пружину, именно в этом месте находится генератор энергии. Резкие углы и рубленые линии визуально говорят о том, что выстрел быстрый и оружие агрессивное. Если вести взгляд по стволу в сторону дула, то деталей становится меньше, поверхность чище и ровнее. Визуальное напряжение в сторону дула слабеет и функционально тут вырывается заряд. Советую книгу.

Набросок и Высоко полигональная модель

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

image

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

Коррекция наброска

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

image

Первый 3d набросок я делаю очень быстро. Ровная топология сетки не на первом месте, так как особое внимание я уделяю только формам и дизайну, на набросок трачу не больше 2–3 часов. За один рабочий день я перебираю до 4–5 разных вариантов.

image

Для игры с real-time материалами я использую визуализацию Marmoset toolbag. Он дает представить какие могут быть текстуры. Качество render из Marmoset достаточно, для презентации заказчику с минимальным overpaint.

image

Сетка для высоко полигональной модели

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

image

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

image

В результате получились неплохие hard surface поверхности. Также у проекта имелись аналоги качества hi_poly, и они давали хороший ориентир о том где можно не тратить время на сетку. (keyshot Rendering)

image

Основные инструменты моделирования в Modo

Инструментов не так много. Важна скорость использования нескольких инструментов желательно применять инструменты с закрытыми глазами. Для этого все основные инструменты должны быть на горячих клавишах и располагаться на клавиатуре подобно как в шутере.

image

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

imageimageimageimageimageimageimageimageimageimage

Низко полигональная модель

Для модели re-topology сетки отстраивал по полигонного, руками. У проекта были жесткие требования к количеству полигонов, количество треугольников…… Где в рамках этих требований я мог попасть только тогда, когда контролирую сетку руками, то есть до каждого треугольника.

image

Любую Re-topology последние 5–6 лет я делаю в modo. Для ре-топологии пользуюсь инструментами: 
Topology mode (hot key «O») — этот checkbox включает режим прозрачной сетки для верхнего item (layers) в окне item.

image

Pen (hot key) — это быстрый инструмент для создания полигонов на поверхностях.

image

Для snapping прилипания полигонов к нижнему слою, следует активировать вкладку, в настройках Mesh constraints → Background.

image

Проверка Normal Map и Low poly в Unreal Engine

Normal Map проверял не посредственно в редакторе. Так выглядит low_poly модель в редакторе UE4. Модель имеет только Normal map и AO map.

image

UV развертка

Каждый элемент стараюсь развернуть максимально квадратным. Это важно, если требуется занять всю площадь текстуры. У такого метода есть своя особенность, где на краях квадрата будет искажается повторяющаяся текстура и зеркальное отражение текстуры будет иметь шов. Такую особенность можно поправить, сделав квадратными только те стороны, которые не находятся на стыках зеркального отражения. Чтобы выровнять одну сторону uv куска, необходимо выделить линию точек или грани. После чего нажать на стрелку Align UV c нужной ориентацией, во вкладке UV.

image

Процесс развертывания модели

Для кусков uv с равным количеством полигонов, хорошо работает инструмент UV Rectangle. Такой uv кусок он преобразует самостоятельно в квадрат.

Весь процесс развёртки выглядит так: Выделение куска полигонов, маскировка всего лишнего или выделение замкнутой линии-граней по телу модели. Полученные куски требуется выровнять и применить UV Relgx. инструмент Relax имеет настройки. Меня интересует только одна настройка Mode → Adaptive. Этот метод разглаживая сетки. Он разглаживает uv кусок, учитывая форму и геометрию модели. Нужно помнить, не для всех кусков, это удачное решение использовать Adaptive.

image

Еще один важный инструмент, обычный Transform c активным checkbox Tear off. С его помощью можно отсоединять выбранные куски полигонов от UV.


Для удобства я размещаю элементы одного объекта рядом друг с другом. Процесс текстурирования становится комфортнее и не возникает путаницы в поиски нужного элемента. Я формирую маленькие условные квадраты, из мелких частей развёртки. Так удобнее и плотно укладывать uv map в квадрат все части развёртки.

Группы сглаживания

Low Poly модель разбиваю по группам сглаживания только после uv map. В дальнейшем это не позволяет путаться и мне становиться легче отделить часть UV для hard edges. Потом сложнее собирать не логичные мелкие куски в кучу. 


Работа с smooth group in modo. Первое что я делаю, выставить правильный угол сглаживания под gamedev. Зайти в properties материала, выставить угол сглаживания 180 градусов. По умолчанию угол выставлен в 40 градусов. Ниже цветами помечены разные группы сглаживания на модели оружия.

image

image

Инструменты для групп сглаживания

После этого я могу выделять полигоны или куски UV map и назначать противоположную smooth group.

Для этого требуется зайти в Geometry → Polygon → Set Smoothing Group. В окне требуется назвать новую Smoothing Group.
! Обязательно! назначаю горячую клавишу для этого инструмент, например: shift+G.

image
image
image

В любом случае, все швы и hard edges стараюсь прятать и не наносить на видные и лицевые места модели.

Текстура в Substance paint

Процедура запекания начинается с проверки модели на ее позицию в системе координат. Все модели должны иметь одинаковую позицию »0». Самое лучше решение, когда выставляю модель на стадии концепта и с этого момента не меняю ее совсем. В этом случае ни какие правки и возвраты не страшны.

image

Low_poly модель для запекания и текстурирования главным образом всегда немного отличаются друг от друга. Это связано с симметрией объекта и некоторыми деталями. Базовое разрешение текстур для модели 4096×4096.

image

Текстурирование разбито на условные подгруппы: Цвет / Грязь / Инфографика / Ручная работа. Я редко пользуюсь заготовленными материалами, мне нравится самому их настраивать.

image

После работы с цветом и материаллами. Лист с различной инфографикой Подготавливаю для всех видов оружия.

image

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

Прицел


Ршено было отделить от модели. И подготовить как отдельный asset, в дальнейшим, для возможности переставлять его на другое оружие. Мне потребовалось исправить развертку и перезапечь текстуры с меньшим разрешением 512×512.

image


Модель была одобрена и загружена в проект. По прошествию нескольких дней ее вернули для добавления трансформации. Scope должен был прятаться во внутрь оружия. Для этого я нарезал low_poly модель с минимальными искажениями для текстуры. И добавил morph трансформаций.


Все искажения на uv map спрятал, новые куски uv наложил на темные места в текстуре.

Morphing в Modo

Что бы создать morphing на модели. Достаточно зайти во вкладку Lists → Morph Maps и двойным кликом нажать на строчку (new map).
В окне ввести имя новой Morph map. После этого любые перемещения полигонов и объекта будут сохранены в morph искажения.

image

Снаряд

Модель снаряда нужна для декалей при попадании в стену или преграду. И иногда снаряды могут падать на пол. Мы немного экспериментировали с цветом и свечением на проекте. Хотели понять как будет эффектнее, потому что в VR играх различные спец эффекты выглядят чрезвычайно хорошо.

image

image

ЗАКЛЮЧЕНИЕ

image

Следует обязательно закончить первый геометрический набросок. Не имеет значение какого качества он будет. Загрузить его в UE или Marmoset toolbag, включить тени назначить материалы и посмотреть в общем. Это вам поможет увидеть 3д модель с Другова ракурса и не закопаться в деталях, понять зачем нужны будут детали и где. У меня в этот момент экспериментов с render появляется много новых идей.

Это связано с базовым не эффектным освещение в 3д редакторе к которому быстро привыкаешь.

image

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

Работа от маленьких студиями расслабляет

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

image

Режим работы

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

image

Контакты и ссылки

© Habrahabr.ru