Как я создавал шутер на Unreal 5 по собственному сериалу «Зона 66» — рассказ разработчика. Часть 8
Вновь приветствую всех. Я — Шабуров Олег, и я продолжаю рассказ о планах по выпуску собственной инди-игры в жанре «шутер». Думаю, нужно немного рассказать про шутерную механику, и в конце расскажу с какими проблемами недавно столкнулся.
Начнем с того, что оружия в игре уже немало. Существует несколько видов вооружения, а каждая пушка в свою очередь может быть модифицирована, если это оправдано геймплеем. То есть повесить глушитель на гранатомет или оптику на пистолет не получится. Пистолеты и пистолеты-пулеметы относятся к легкому стрелковому оружию. Винтовки, автоматы и карабины к среднему. Пулеметы к тяжелому. Присутствует и специальное оружие: гранатометы, огнеметы и минометы.
Присутствует несколько видов крепежей для различных обвесов. Самая распространенная, естественно, планка Пикатинни. На оружие советского образца можно устанавливать прицелы предназначеные под крепление «ласточкин хвост». Присутствуют модификации: прицел, глушитель, подствольный гранатомет, магазины повышенной емкости (там где это возможно)
Все оружие я собираю в другой программе. Создаю там скелетные сетки и делаю карты весов. Так как считаю работу со скелетной арматурой в движке крайне неудобной. Хотя анимирую и создаю анимационные ассеты уже в движке. Несмотря на это, анимировать оружие мне проще и быстрее в движке. А вот с персонажами не все так однозначно, предпочитаю анимировать в сторонних редакторах. Головы и лица я делаю отдельно, методом фотограмметрии. Это когда рисуются вершины по комплекту фотографий, которые программа выставляет в пространстве сопоставляя точки. На данный момент также экспериментирую с разделением модели в движке. Отдельно кисти каждой руки, отдельно руки, верхняя часть тела, нижняя, голова, каждая нога выше колена, ниже колена и ступни. Все модели пересаживаю на «Анрил скелет» в сторонней программе, потом импортирую в движок. А после уже собираю бутерброд из скелетных сеток, чтобы иметь возможность скрывать или разделять кости без растяжения полигонов. Для организации механики расчленения именно это и необходимо делать.
В конце все же расскажу с какой проблемой недавно столкнулся. Логика НПС у меня получилась слишком жирная, со множеством проверок и опросов окружающего мира, а так же проверок изменяющихся условий и сменой модели поведения в зависимости от ситуации. В итоге, я снова начал оптимизировать проект, начав с текстур. И проводя аудит проекта, я никак не мог понять: почему я уменьшаю количество тяжелых для движка текстур, обьектов и освещения, но ФПС не прибавляется, задержка только увеличивается. Проблема крылась именно в ботах. Да, движку тяжело считать около пары десятков ботов на карте. Постепенно разгружая логику и заменяя бесполезно ходящих по карте ботов вне поля зрения игрока на «спаун точки» я увеличил ФПС в два раза. Кроме того, разгрузил видеопамять, уменьшив потребление ее на 40%. Буду и дальше экспериментировать с логикой НПС. Пока что данное явление меня несколько удручает, и да, придется идти на ухищрения и оптимизировать в том числе и это. Ведь в открытом мире хотелось бы создать умных врагов.





1 комментарий
Добавить комментарий