Демо игры «Again»

Всем привет. Мой первый пост здесь. Хочу представить короткую запись демо игры «Again». Это платформер с пазлами и боевой системой. Главный герой должен изучить исследовательский комплекс, на котором произошел некий инцидент. В демо персонаж проходит через пещеру и руины древнего города в старый комплекс, где обнаруживает необычное копье…

Сеттинг

За это время изменился сеттинг, в первых версиях действие разворачивалось в темном Средневековье с магией и тп. Далее из-за ограничений в создании пропсов и VFX сеттинг перенес уже в своеобразное будущее.

Старая попытка в темное фэнтази

Старая попытка в темное фэнтази

Техника

На данный момент демо сделано на UE 4.27. Возможно далее перенесу на UE5. Механики, акторы, аниминстанс написаны на плюсах (90%).

В демо использовал левел стриминг. Игра из меню грузит только малую часть окружения — sublevel. Остальное подгружается по мере прохождения. По задумке, игра должна проходиться за раз без прерывания экранными загрузками.

Далее, после смерти героя игра не перезагружает уровень, а делает рестарт акторов, которые участвуют в сцене. Это существенно сокращает время загрузки после смерти персонажа. Однако, это требует прописывать действия при рестарте для каждого актора, который должен вернуться в изначальную позицию.

Анимация

Основной упор делал на интерактивности, взаимодействии персонажа с окружением. Для этого в движения верхней части тела в анимациях перемещения подмешана физическая симуляция (physical animation). Каждое взаимодействие и механика начинаются с отдельной анимации или целой Anim State Machine. На данный момент многие анимации ещё сырые. Большая часть анимаций — этой ассеты, но многие пришлось делать самому. Для этого использовал Cascadeur.

Веревка

Отдельная боль — это механика подъема, спуска, раскачивания персонажа на веревке. К сожалению, на просторах интернета и даже в Epic Store не так много толковых материалов на эту тему. Из этих крупиц собрал собственную, весьма накрученную систему. На данный момент она включает в себя физическую веревку (skeletal mesh), сплайн, IK рук, физическую симуляцию нижних конечностей.

Кости веревки и персонажа

Кости веревки и персонажа

Боевая система

Перепробовал достаточно много вариантов с боевкой. Самый простой вариант — дуэльный стиль, как, например, в самом первом Принце Персии. Данный вариант отпал, так как хотелось столкнуть игрока с несколькими противниками. А для это плоскости XZ не хватало. На данный момент при вхождении в боевую зону персонаж достает оружие, и появляется доступ к третьему измерению. Есть ограничения: персонаж всегда повернут к противнику (может переключаться), персонаж не может прыгать, ускоряться, приседать и взаимодействовать с окружением. После устранения всех противников спавнится невидимый актор, который является целью для персонажа. Как только игрок подходит к этой цели — игра переходит в режим XZ.

Оружие

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

Физический ассет с копьем

Физический ассет с копьем

Противники

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

Выводы

На данный момент демо достаточно сырое. Есть баги. Многие системы требуют доведения. Многие вещи сделаны условно, это свет, звук, пропсы. Печаль в том, что это требует времени и специализации в определенных областях. Жду ваши комментарии и советы. Критику только приветствую — делать в одиночку — зло (ИМХО).

© Habrahabr.ru