Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления
Разработчики находятся в достаточно трудной ситуации. С одной стороны начальство требует дойную корову, которая стабильно работает как автомат калащникова и приносит денежку. C другой стороны таких дойных коров уже изобретено достаточно и в целом все они похожи друг на друга с точки зрения наличия новых уникальных механик и их развития.
На первый взгляд все кажется просто. Вот, на самом деле, почему нельзя просто создать какую-то новую механику, даже много новых механик и улучшать их пока они не устроят? Если что, неудачные механики можно выкинуть :)
<<Для начала в игре существует только одна core-механика. И для ее реализации, поверьте, придется уйти в работу с головой. Создавать нексолько механик = создавать несколько разных игр. А это равносильно усложнению своей жизни. Вместо шлифовки одной механики вы должны распылиться на 10, а потом оставить из них только одну, а остальные выкинуть. Печально выкидывать результаты работы, правда?>>
Разработка игры с новой механикой - это примерно то же самое как работа над открытием или даже процесс поиска клада. Отлично, если вы опытный кладоискатель. Такие кладоискатели знают, что клад вряд ли спрятан в песочнице на детской площадке и не будут его там искать, тратить на это время. Потому что в свое время они уже наступали на эти грабли и ничего там не нашли. То есть существуют механики, которые заведомо неудачны / непригодны для игр. Конечно, все можно адаптировать, видоизменить, подогнать. Но все же существуют вещи которые не следует делать.
Вот рассмотрим очень простой пример такой механики на мобильной игре.
Допустим у нас есть персонаж в мобильной игре и наша задача управлять им. Мы видим персонажа сверху (2D). Как бы в сделали его управление?
Это очень щепетильный вопрос. Управление - это задача задач, которую решают в процессе разработки.
(1) Если вы будете приказывать персонажу идти за пальцем, когда он опущен на экран, то ваша рука будет перекрывать экран и вы будете смотреть на свою руку;
(2) А если персонаж будет идти в противоположную о пальца сторону, то будет ли удобно такое интвертирование управления?
(3) Если персонаж будет идти в точку, которую вы кликнули, то сможет ли он увернуться от летящей ракеты? Не перекроется ли экран рукой, когда вы смените направляение движения персонажа? Это управление точно удобно?
(4) А если просто... Джойстик и все тут! Не перекроет ли джойстик экран? Сколько экранного пространства он занимает (допустимо ли это)? Удобен ли он? Функционален? Позволяет ли он погрузиться в атмосферу игры?
Кто-то скажет: вот вы написали столько всего, так и управления не сделаешь, если все плохои все "неочень". Сделаешь, как раз это частично задача дизайнера интерфейсов, частично дизайнера, отвечающего за управление. Но больше, конечно, задача дизайна управления.
Да, вот такими задачами и занимаются дизайнеры: сделай то, не знаю что, пойди туда, не знаю куда и чтобы все было круто и никак иначе.
Оптыный дизайнер (опытный кладоискатель) способен быстро оценить все "за" и "против" каждого из пунктов [1-4]. Новичок же, очень вероятно, будет экспериментировать и постигать тайны управления с нуля :)
Надеюсь теперь стало очевидней, что разработка новой механики - это работа.
Это работа и она не всегда увенчивается успехом. Не всегда даже опытному дизайнеру удается создать новую механику. И это часто зависит не только от дизайнера, но и от команды, от возможностей платформы для которой все разрабатывается.
Дизайнер создает тех. задание, отдает ее на реализацию дизайнерам и программистам, через какое-то время получает результат. Если результат устраивает, то это успех. Если результат не устраивает, то процесс повторяется до того момента, пока инвестору все это не надоест или пока команда не замучается "пробовать". Да, людям не нравится работать, а потом выкидывать свою работу. Особенно, когда ты старательно работаешь и не один месяц. Да, ты получаешь зарплату, но где удовлетворение от проделанной работы? Так и свихнуться недолго, если каждый день все рабочее время выкапываешь, а потом закапываешь выкопанную яму.
Вот потому-то все и идут на ухищрения. Зачем пидумывать что-то новое, когда старое хорошо работает? Возможно нужно немного изменить старое и все будет хорошо?
То, что я написал, касается многих вещей. Не только core-механики. Другие вещи могут быть подвержены этому.
//===
В процессе работы над персонажем всплыло множество моментов, которые требовали такой хорошей и основательной проработки как со стороны дизайнера-программиста, так и со стороны дизайнера по механикам.
В процессе разаработки, было принято решение показыват игроку тело персонажа, чтобы он мог видеть себя своими глазами. Почему нет? Это добавляет атмосферы, смотрится круто.
Мы все фанаты крутого графона и в 21-м веке неприемлимо, когда твоя голова, руки, ноги или пушка влазят в полы или стену или еще куда-то. Нужно было это учесть.
С другой стороны, если персонаж стоит одной ногой на выступе обрыва, то все его тело должно как-то отреагировать на то, что вторая нога в воздухе. А если центр тела персонажа смещен в сторону обрыва, то тут уж 100% нужно это как-то отобразить на персонаже.
Мы справились с этой задачей, сбоку это выглядит так (скрины специально не содержат текстур, дабы не наспойлерить):
По части влияния смещения тела на механику движения: удалось добиться стабильности и минимизировать влияние анимации ног на перемещение игрока.
Ноги опускаются процедурно. Пришлось водключить инверсную кинематику и совместить ее с процедурной анимацией движения всего персонажа. О том как мы анимировали персонажа можно ознакомиться здесь: Процедурная анимация движения персонажа
Получилось весьма недурно :)
Руки.
C руками, как и со всем остальным, отдельная история. И она длинная.
Что требуется от рук? Чтобы они не пересекали стены, чтобы держали пушку. И чтобы это все выглядело нормально. Бывшый мой босс всегда ставил задачу примерно так. Он перечислял все требования до мельчайших и в конце добавлял: "И да, сделайте все это так, чтобы выглядело круто. Просто сделайте так, чтобы все было круто и не заставляйте меня говорить что получился отстой."
Руки персонажа эволюционировали и прошли очень долгий путь развития. Сперва мы работали над встроенной в руку "спец.пушкой". Всячески безуспешно пытались совместить то, что совместить трудно, да и нужно ли совмещать: руку + пушку + возможность изменения рукой гравитационного поля. Вот пара каких-то ранних скетчей "спец.пушки":
Подключенные первые варианты рук/манипуляторов выглядел примерно так:
Здесь один из вариантов ранних анимаций. Главное не внешний вид, а принцип работы:
Пробовали такие варианты:
Один манипулятор наехал на другой. Да, такое часто встречалось и приходилось много работать над исключением самопересечения манипуляторов.
Тесты инверсной кинематики. Чисто математика:
А здесь искусственный интеллект нечеловеческими способами учился взаимодействию рукой. Короче, робот как ребенок учился двигать рукой, а на видео некоторые промежуточные результаты, причем неуспешные XD
Инверсная кинематика в чистом виде (IK):
Еще немного инверсной кинематики для тех кому понравились видео:
Здесь эксперименты того как смотрится перемещение обьекта манипуляторами (как манипуляторы ведут себя при перемещении аюстрактного куба):
Навозившись порядочно с манипуляторами, убив тонну времени, сил и нервов, исписав кучу бумаги, мы все же сумели добиться желаемого результата. Финальный вариант на данный момент показать не могу, но могу рассказать к чему мы пришли и как.
Манипулятор мы разделили, условно, на руку (манипулятор) и пушку. Пушка выполняет свои функции, а рука дополняет пушку. Не в воздухе же ей висеть.
Пришлось прописат анимации обхвата пушки рукой и то как рука двигается за пушкой (законы движения, которые позволяют руке не пересекать пушку).
Так же рука может быть и без пушки. Для этого случая мы научили кисть немног взаимодействовать с окружением: если игрок вплотную подходит к стене, то рука как бы занимает промежуточную позицию между стеной и телом игрока. не дает игроку лицом воткнуться в стену. Классно, правда? Так же рука может огибать предметы, если игрок захочет как-то повести себя нестандартно и влезть рукой во что-то.
Когда рука держит пушку, то для этого случая прописаны процедурные анимации движения пушки, которые предостерегают ее от влазания в стены или еще куда-то там. Пришлось порядочно поработать чтобы хитрый игрок никак не смог засунуть пушку туда, куда нельзя.
Некоторые скетчи из процесса разработки игры выкладываю здесь:
https://www.instagram.com/cgaleksey/
--
Надеюсь статья понравилась и вы почерпнули из нее что-то новое.
На сегодня у меня все.
Спасибо за внимание!
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа
Набрасываю потихоньку разные варианты персонажа для игры, которую мы с другом делаем :)
Кто-то в одном из предыдущих постов отметил: "Я никогда не понимал этих скетчей, ранних дизайнов и арт-буков. Уж извините. Давайте готовый проект".
Пользуясь моментом, отвечу. Скечи, арт-буки, ранние дизайны, постеры - это очень разные вещи, которые предназначены для разных целей. Нежелательно их смешивать их во что-то одно.
Все равно что сказать: я никогда не понимал ваших набросков от руки, трейлеров к играм. Чувствуете разницу?
Наброски, скетчи, технические рисунки и все что рисуется "быстро" и в основном "для себя".
Быстрые наброски от руки делают обычно чтобы относительно наглядно что-то показать. Или когда программист решает задачу, он тоже делает очень много набросков. Качесвто набросков может быть разное. Например, при решении некоторых задач я увлекался и рисовал такое:
Или такое:
Без пояснения, очевидно, мало кто сможет разобрать что там нарисовано. Однако, такие "наброски" способствуют решению задачи, поиску/анализу рассматриваемых алгоритмов и так далее.
Ранние дизайны. Арт-буки.
Если у вас в команде есть люди, даже 1 человек, то им нужно совместно работать над внешним видом игры. Эта работа сопровождается созданием набросков. Они могут быть цифровыми или еще какими-то. Главное, чтобы команда увидела что они делают и к чему идут, какую атмосферу передают.
"Ранние дизайны" - они потому и называются "ранними", потому, что создаются в самом начале игры. Скажу по секрету всему свету: дизайн игры может сильно меняться. То, что было в начале может не соответствовать тому, к чему пришла команда.
Арт-буки - это набор зарисовок, которые были сделаны в процессе разработки. Зачем нужны? В процессе создания игры, арт-буки полезны для дизайнера. Он всегда может заглянуть и проанализировать/сравнить разные идеи из предыдущих наработок. В конце они могут использоваться для маркетинга.
На текущий момент удалось вот что набросать по персонажу. Здесь один из вариантов персонажа.
Здесь вариант персонажа и разные варианты его головы:
Еще один вариант песронажа. Кого-то он мне напоминает:
Варианты рук:
Варианты кисти. Немного экспериментировал с соединениями/суставами :)
Больше скетчей из процесса разработки выкладываю здесь:
https://www.instagram.com/cgaleksey
На сегодня все, спасибо за внимание!
Всем хороших выходных.