Привет! Меня зовут Дэниел Паз, и уже более трех лет я работаю профессиональным фриланс 3D-художником. Я работал на множестве коммерческих 3D проектов и инди играх, некоторые из которых были выпущены, другие – нет. Но практически для всех проектов, в которые я был вовлечен, я создавал нечто большее, чем просто 3D составляющую. В процессе работы над этими проектами я приобрел множество полезных навыков, начиная от технических артов и скриптинга и заканчивая работой с аудио и FX.
В июле 2017 я официально открыл небольшую игровую студию Dystopia Interactive (находится в Австралии) и начал работать над 103, надеясь выпустить ее в этом году. И пока все идет хорошо!
Честно говоря, большую часть времени я работал над игрой в одиночку. В начале проекта я работал с тремя иллюстраторами (рекламные, промо и игровые иллюстрации), двумя концепт художниками (персонажи, среда), актером озвучки и риггером персонажей, чтоб те помогли мне оформить первоначальные идеи. Но в остальном я создал всю игру сам. Вот несколько первоначальных концептов.
Коротко о проекте
103 – это видео игра от первого лица в мистическо- приключенческом жанре. Я начал разработку игры в январе 2017 и потратил полгода своего времени на планирование игры на бумаге. Я хотел, чтоб игра была простой, но хорошо исполненной. Более того, я хотел, чтоб игровой посыл влиял на людей, так как благодаря этому в общество внедряется необходимость предпринимать какие-то действия.
Повествование игры сосредоточено на исследовании через воображение Лили, студентки колледжа, которая пытается вспомнить, что произошло во время ночного кутежа с друзьями. Вы играете за Лили и проходите игру, просто смотря на предметы и пытаясь с их помощью восстановить историю. Чем больше вы всматриваетесь в среду, тем больше вы понимаете, что творится вокруг. Начальные инструкции и простые загадки нужны для того, чтоб направить игрока по мере того, как он проходит игру и начинает разбираться в том, что происходит.
Ограниченные среды
В основе всего история, и то, что я хочу показать. Среды и уровень могли бы быть побольше, но я посчитал, что это не нужно. Деталей тоже могло бы быть больше, но игроку оно не надо. Я думаю, что нужно показывать только нужное.
Я просто взял эту идею чистого аскетизма из того, что я написал еще в школьное время: каждое слово имеет смысл, продолжайте убирать элементы, оставляя только те, которые нужны для того, чтоб читатель понимал в чем ваша идея. В случае игры все ассеты, весь реквизит, каждый персонаж, каждый звук напрямую связан с историей персонажа. Нет таких вещей, которые вы воткнули только потому, что это круто (потому что сделать это можно до бесконечности).
Я разделил арт среды на 3 уровня детализации. Уровень 1 – это начальная модульная среда с более крупными объектами, типа стен, пола, деревьев и т.д. Уровень 2 включает оконные проемы, двери, углы, столы, ковры и многое другое. Последний уровень включает весь мелкий реквизит: картины, света, книги и все такое. Таким образом я раскидал все необходимое по уровням и начал строить их. Сначала я заканчивал один уровень детализации, а потом уже переходил к следующему. Каждая модель встраивается в сетку, так как это несколько убыстряет процесс собирания всего воедино в Unreal.
Работа над материалом
Уже довольно долгое время я использую Substance Painter, и мне реально нравится этот поток рабоn. В начале я текстурирую только персонажей и строю смарт материалы, которые я cмогу позже использовать заново. Закончив текстурирование, я готовлю все необходимые материалы для использования в среде. Есть несколько кастомных материалов, таких как стекло и FX частиц. Но каждая модель текстурируется в Painter.
Единственное, что не делалось в Painter – это картины, постеры, деколи и иллюстрации. Увидите в игре. В других случаях для установки материалов мне хватало перетаскивания и изменения нескольких значений.
в Unreal я установил базовый родительский материал, у которого есть опция рендеринга ткани, которую можно применить при необходимости. Шейдер ткани накладывается в качестве маски, основываясь на неровности текстуры, но также есть опция позволяющая управлять рендерингом тканевого шейдера. Наравне с обычной неровностью, такие есть такие параметры, как отзеркаливание и добавление металлического эффекта, которые помогают добиться нужного конечного результата.
Использование цветов
Эта часть для меня стала самой простой, так как я хотел, чтоб каждый визуальный аспект придавал игре последовательный вид. Я собрал необходимую палитру еще до того, как приступил к работе над артами. Абсолютно каждый цвет, который я использовал в игре, использует один из тех цветов, которые уже были частью текстур и даже цветных подсветок. Как вы видите, это баланс между холодными и теплыми оттенками, так как мне хотелось, чтоб в большинстве мест среды игрок чувствовал себя комфортно. И я также хотел убедиться в том, что все цвета работают хорошо не только поодиночке, но и вместе.
Трюки со светом
В этой конкретной игре я хотел, чтоб игрок чувствовал себя комфортно во всех освященных областях и озадаченным в других областях. Игрок постоянно оказывается то в освященных, то в темных областях, так что мне хотелось бы создать некое напряжение, которое будет возникать вместе с уходом в тень. Основываясь на внутреигровых ситуациях и технических ограничениях, мы получаем микс статичного и динамичного освящения.
Изначально я построил световую схему еще на стадии грейбоксинга, используя света без их окрашивания. Это помогло мне задать правильные значения для внешнего и внутреннего света. Добавив и оттекстурировав все модели, я добавил цвета (как в палитре). После этого я окончательно настроил интенсивность света, так как цвет влияет на этот параметр. И опять же палитра должна поддерживать света и текстуры. Когда цвета подсветки смешиваются с цветами текстур и мигающего света, то все сливается в единое целое очень гармонично, так что на среду легко смотреть, и она легко читается.
Анимация
Анимация, показанная в игре – это очень простая закольцованная анимация. Но я хотел, чтоб эта анимация была максимально идеальной. Оба персонажа в игре – это игрушки, так что я хотел, чтоб их движения были криповыми, но все же правдоподобными. Большую часть времени персонажи смотрят на игрока. Этот эффект был достигнут путем использования простого blueprint скрипта анимации, который позволил персонажам поворачивать голову в сторону игрока.
Вроде ничего слишком сложного, но я видел повороты головы в других играх, и выглядело это не так уж прям правдоподобно, так как это были постоянные повороты в сторону целевых объектов. В реальной жизни мы чаще переводим взгляд, а не вертим головой. Так я добавил задержку, во время которой скрипт чекает местосположение игрока, в результате чего голова поворачивается в определенных точках, и создается впечатление, что персонаж видит вас прежде чем повернуть голову. Риггер, запускает все это в Maya, а я заканчиваю процесс, конвертируя все в CAT риг в 3ds Max. Так я могу очень просто сохранять позы, сливать вместе и экспортировать апдейты анимации.
https://www.youtube.com/watch?v=hzjUZ5qNi9s
Трудности проекта и советы
Так как мне удалось ускорить свой рабочий процесс создания ассетов, я уже не сталкиваюсь с такими проблемами, которые я бы не мог решить быстро. Обычно процесс немного затягивается, когда начинается работа со всякими техническими штуками, например, если я пытаюсь создать идеальную симуляцию ткани на одном из персонажей. Благодаря интегрированной в Unreal системе ткани, мне удается сохранить гораздо больше времени, если сравнивать с работой в других приложениях.
Честно говоря, самое сложное для меня это всегда работа с чем-то новым, чем-то, с чем я еще не сталкивался. На данный момент самое сложное для меня это тестирование и оптимизация, так как это для меня в новинку. Но я интегрировал эти элементы в свой рабочий поток. В большинстве своем это касается использования памяти всех ассетов. Так что я тестирую, что могу, все еще создавая игру, оптимизирую производительность по ходу дела, в общем, пытаюсь учиться и делать по максимуму прямо по ходу производства. Я верю, что так смогу сэкономить гораздо больше времени, чем, если бы я все это делал в самом конце.
Мне всегда нравилось обозначать слабости /вещи, с которыми мне придется нелегко в самом начале проекта. Так я выигрываю время «на подумать» и всегда помню, на чём мне надо сфокусироваться. В противном случае я буду топтаться на месте. Думаю, что важнее всего понимать свои возможности, создать хороший рабочий поток для производства еще до его начала.