Дневники разработчиков: The Uncertain (#2)
В рамках формата “дневники разработчиков” публикуем вторую заметку команды ComonGames. В новом материале менеджер проекта The Uncertain Артём Нетягин рассказывает о создании моделей для игры.
Во втором очерке я хочу рассказать о том, что я понял во время работы над проектом, а также о том, как мы создаем наших игровых персонажей на примере одного из роботов.
Как я писал в прошлом материале, раньше мои проекты делались на энтузиазме и не были столь масштабными. The Uncertain стал первым крупным проектом в моей жизни. И это по-настоящему захватило меня: я открыл для себя много нового, впервые поработал с большим коллективом, приобрел очень ценный опыт управления проектом.
Но сколько же ошибок было совершено по неопытности! Сегодня, оглядываясь на первые месяцы разработки, я удивляюсь, как мог быть так глуп. Но меня всегда утешает фраза: не ошибается только тот, кто ничего не делает. И хотя иногда доходило даже до того, что приходилось полностью переделывать модель или целую локацию, проект все равно двигался вперед.
Самая серьезная моя ошибка — это, конечно же, определение сроков проекта. Теперь-то я знаю, что времени на разработку стоит отводить как минимум вдвое больше от запланированного, поскольку всегда есть обстоятельства, замедляющие работу: выходные и праздники, болезни сотрудников и многое другое.
К слову, вступив на путь серьезной разработки в качестве менеджера, приготовьтесь к рутинной работе. Ее будет много. Вот такие, к примеру, страшные таблицы мне пришлось составлять, чтобы понять объем работ и необходимый размер команды.
Еще одна очевидная ошибка — недооценка сложности проекта. Работы всегда гораздо больше, чем кажется сначала (даже если проект не выглядит большим и сложным). Важно помнить, что каждый элемент игры создается целой группой разработчиков и именно от менеджера проекта зависит, насколько слаженным и продуктивным будет их сотрудничество. Поэтому грамотно организовать работу всей команды – его главная цель.
В нашем случае над каждым персонажем работал художник, два моделлера и аниматор, а программист и геймдизайнер создавали для каждого героя контроллер в движке, учили персонажей ходить и говорить.
Первым важным достижением нашей совместной работы стала новая модель главного героя.
Как вы могли заметить, в новой модели появилось множество отличий от первоначальной. Этот вариант внешнего вида героя понравился всем нам, и мы решили больше ничего в нем не менять.
Старая и новая модели главного героя
Персонажа мы назвали RT (RT-217NP).
Когда я продумывал, кем будет главный герой, то, в первую очередь, мне хотелось отойти от клише: я решил, что RT не будет обладать сверхспособностями, иметь особое предназначение, он не будет особенным, избранным. Это обычный робот, один из тысяч других, который неожиданно оказался в передряге. Единственная “изюминка” героя, добавленная, чтобы игроку не было скучно, — его лицо (точнее, экран). Игрок может видеть на нем не только глаза робота, но и различные символы, указывающие на его отношение к чему-либо. У остальных роботов — просто светящиеся окуляры.
Каждого персонажа мы создавали в шесть этапов. Рассмотрим их на примере медицинского робота Абигейл.
Первый этап: арт
На первом этапе мы детально обсуждаем персонажа с художником, и он делает несколько набросков. Мы выбираем понравившийся, а затем дорабатываем его.
В ходе разработки мы поняли, что нет нужды максимально детально прорисовывать персонажей на этом этапе, так как моделлеру достаточно средней детализации. Но важно рисовать роботов и сложные предметы с двух сторон, чтобы не рисковать, полагаясь на чью-то еще фантазию. Если что-то выйдет не очень удачным, художник легко внесет правки в рисунок. Гораздо сложнее это сделать в хайполи модели.
Второй этап: хайполи модель
На этом этапе CG-художник может сглаживать модель, создавая огромное количество полигонов, может вообще ни в чем себе не отказывать. Правда, есть сложность: нужно учитывать особенности движений. К счастью, инженерный опыт одного из наших моделлеров помог сделать конструкцию суставов правильной: они не должны были гнуться в тех местах, где суставы гнуться в принципе не должны. Кроме того, моделировать по арту сложнее, чем, например, по чертежу. Но ребята, которых я нашел, были опытными и справились с задачей.
Третий этап: лоуполи модель.
Он включает в себя ретопологию — повторение формы хайполи модели, но с минимальным значением поликаунта. Затем для этой модели делается развертка. После этого запекаются текстурные карты: normal, ambient occlusion, color ID и прочие.
Четвертый этап: текстурирование
На основе запеченных карт создаются текстуры под PBS в Unity. Множество специализированных программ значительно упрощают этот процесс и дают потрясающий результат и высокую детализацию. По окончании этого этапа полученную модель с текстурами загружают в игровой движок и настраивают ее внешний вид.
Пятый этап: риг
Чтобы модель могла двигаться, ей нужно создать кости. Это очень сложный этап, требующий большого опыта и знаний. Сегодня есть программные решения, которые могут сделать риг автоматически и привязать к нему анимацию, но при таком методе результат получается значительно хуже, чем при создании рига вручную. И они подходят больше для органических персонажей: у роботов начинают гнуться и искажаться металлические суставы, что в нашем случае выглядело ужасно.
Шестой этап: анимация
Если мы хотим вдохнуть жизнь в персонажей, то без этого этапа не обойтись. В нашем случае анимации роботов можно разделить на два вида: базовые и синематики.
Базовые анимации (ходьба, бег, взятие предметов, жесты при диалогах) используются в геймплее.
Синематики используются зачастую один или несколько раз за всю игру. Они созданы специально для важных моментов, в которые игрок не может вмешаться, или для Quick Time Events.
Подобным образом мы делали и некоторые другие модели. Когда не было необходимости в сильной детализации, мы сразу создавали лоуполи модели и текстурировали их. Некоторые модели мы покупали в Asset Store и немного видоизменяли, чтобы лучше вписать в наш игровой мир.
В следующей статье я расскажу, как создавались локации и геймплей.
Веб: http://theuncertaingame.com
Steam: http://store.steampowered.com/app/406970
NVIDIA SHIELD: https://shield.nvidia.com/games/android/the-uncertain
Понравился формат? Дайте знать в комментариях.
Если есть самим желание поучаствовать — пишите на press@app2top.ru. Заявки рассмотрим, если заинтересуют — обязательно ответим.