-Добавил пункт корзина, чтобы можно было посмотреть элементы, от которых решили отказаться либо отложили на потом
-Актуализировал референсы боевой системы
-Подправил тезисы
1. Введение
1.1 Краткое описание
Боевая система - система содержащая в себе комплекс возможностей и ограничений позволяющий продукту симулировать боевое столкновение в рамках игрового процесса.
Прежде всего стоит отметить, что часть боевой системы, описанная в этом документе, является основой, позволяющей создавать разные стили боя, привязанные к определённым типам вооружения и имеющим разный темп и типовой паттерн действий. Что позволит игрокам найти свой собственный стиль.
Должна быть универсальной для всех пресетов экипировки.
Отличаются анимации. Анимации для каждого пресета должны отражать суть используемого пресета(топор должен рубить, а шпага колоть, воин с копьём использовать преимущество дистанции, а вооружённый парным оружием опираться на скорость и точность).
Система должна создавать возможность реализации динамичного боя вне зависимости от выбранного оружия. (меч/лук/магия и т.д.)
Не содержит смертельных контратак и прочих способов быстрой расправы в большинстве кейсов.
Должна работать с разными типами инпута.
Комбо-атаки.
Специальные атаки.
Сильная связь со Skill tree - большую часть особых атак/улучшений и комбо можно изучить в скилл три.
Возможность использовать атаки противника против него самого.
Возможность контролировать передвижение противников по полю боя.
Бои не должны быть слишком долгими.
Человекоподобные противники не должны сильно отличаться от ГГ по возможностям в большинстве кейсов.
Бои с боссами/минибоссами не должны сильно растягиваться за счет цифр и иметь потенциал наскучивания.
1.4 Терминология
Сложный инпут - сочетание клавиш, которое состоит из нескольких одновременных нажатий клавиш. Зажатие, Двойное нажатие, Shift, Alt + Буква к примеру.
Тип атаки - пресеты атак с определенными инпутами.
1.4.1 Геймплейные действия
Атаки
Блок
Прыжок, паркур, уклонение
Передвижение
Диалог
Взаимодействие с интерактивными обьектами
Использование расходников
Красться
Парирование
1.5 Ссылки
2. Описание
2.1 Базовые действия
Атаки - Действия направленные на нанесение урона персонажам, используются для выполнения комбо:
Легкая атака - Высокая скорость подготовки и восстановления, компенсируется низким уроном. Быстро проигрывающиеся анимации, позволяют провести большое количество атак и нарастить темп боя.
Тяжелая атака - В отличии от легкой атаки, меньше скорость атаки и восстановления, но урон больше.
Уклонение - действие позволяющее быстрое изменение текущего положения персонажа в мире. Предназначено для избегания персонажем урона, контроля дистанции и получения тактического преимущества в бою.
2.1.1 Блок
Блок - блокирует часть нанесенного урона с фронтального направления.
2.2 Специальные атаки
2.2.3 Заряженная атака
При удержании инпута [Легкая атака], через четверть секунды начинается зарядка удара. Каждую секунду изначальный урон скейлится. Чем больше зажал - тем больше скейл урона(есть предел), пробивает блок при достижении N коэф. скейла.
При зарядке удара нельзя передвигаться.
При создании анимации нужно визуализировать достаточную зарядку удара для пробития блока.
2.2.4 Атака на бегу
При нажатии одной из базовых атак при спринте, проигрывается другая анимация, анимация атаки на бегу не стопит персонажа, как при обычном передвижении.
2.2.5 Атака в рывке
При нажатии [Вперед]+[Уклонение]+[Легкая атака], проигрывается анимация атаки в рывке. Используется для быстрой сокращении дистанции с атакой.
2.3 Парирование
При нажатии на инпут [Тяжелая атака] в определенный промежуток кадров анимации атаки противника, прерывает атаку противника. Персонаж игрока проигрывает анимацию парирования, враг - анимацию парируемого.
Дает преимущество над врагом в виде стан-лока на него.
Какие типы атак можно парировать: легкие и тяжелые атаки.
Типы оружия: Любым типом оружия можно парировать любой другой тип.
Парирование
2.3.1 Рипост
Критический удар после парирования. Анимация нанесения урона проигрывается автоматический.
Дает преимущество над врагом в виде стан-лока на него и удара с критическим уроном.
Последовательность определенных типов атак. Комбо продолжается при нажатии на атаку под конец анимации. Конечная атака в последовательности - финишер, имеющий долгую несрезаемую анимацию восстановления.
При успешном выполнении комбо проигрывается особый финишер, дающий определенные эффекты(баффы, повышенный урон, дебаффы, итд).
Если нажать на атаку не соответствующая продолжению комбо - проигрывается незапланированный финишер (без особых свойств, но имеет долгую несрезаемую анимацию).
Маркер угрозы является своеобразным боевым компасом и помогает игроку ориентироваться на поле боя. Представляет из себя незримый горизонтальный диск вокруг персонажа. Все противники отмечаются на маркере в виде видимого сектора.
Белый указатель - указывает на НПС в агре на игрока, но вне поле зрения.
Красный указатель - указывает на НПС, который атакует игрока, в и вне поле зрения.
Игрок постоянно испытывает дефицит времени на принятие решений в бою.
Он вступает в бой и начинает с помощью комбо-атак зажимать противника.
Если противник получает преимущество, то игрок может свести его на нет особыми атаками. Если же игрок не может быстро вернуть преимущество, то будет вынужден защищаться с помощью блоков и уклонений и либо ждать момент когда противник остановит свой натиск, либо попытаться подловить его на одной из атак, парировав её дабы перехватить инициативу.
4. Визуальная составляющая
Нужны сеты анимаций для различных комбинированных и особых атак
Каждая из которых будет соответствовать своему оружию и определённому для него набору атак и блоков.
5. Связь с остальной игрой
Skill tree - разблокировка действий через изучение навыков.
Передвижения - в бою передвижение отличается
AI - поведение ботов в бою и вне его отличается
Предметы - через тип оружий в руке подбирается стиль боя
6. Баланс
*Ссылка на гугл таблицы*
7. Саунд
Список нужных саундов, приложить ТЗ для саунд отдела
SFX:
замахов
попаданий по:
кожи
железным доспехам
камням
дереве
грязи
земле
блоков/парирований
взятия в руку/достать из ножен оружие
рывка
Музыка:
Боевка
8. Техническая реализация
8.1 Состояния
8.1.1 Состояние боя(Battle mode)
Игрок входит в это состояние когда вражеский NPC агрится на него.
Состояние снимается, если все НПС в агре умирают или сами снимают агр через запланированные ивенты.
В этом состоянии:
Боевая стойка:
Боевая IDLE анимация персонажа с оружием в руках или кулаками.
Скорость персонажа изменяется с “Скорость передвижения вне боя” на “Скорость передвижения в бою”.
Скорость спринта изменяется с “Скорость спринта вне боя” на “Скорость спринта в бою”.
В бою, при нажатии спринта, персонаж выходит с боевой локомоции и проигрывает анимацию бега.
Режим сохранения недоступен(Быстрое, ручное сохранение, автосохранение):
Исключения - сохранения по ивенту(Обычно во время ключевых этапов сюжета, где бои идут один за другим).
Нельзя взаимодействовать с предметами и окружением с помощью кнопки взаимодействия:
Записки
Интерактивные объекты
Нельзя взаимодействовать с НПС
Начать диалог
Торговать
8.1.2 Инструментарий для ГД по состояниям
Скорость передвижения в бою
Скорость спринта в бою
Ивенты для НПС и триггеров:
Вход в агр.
Выход с агра.
8.1.3 Ограничение на применение
Нельзя использовать боевые действия(атаки, смещения, блоки, парирования, атаки в разрез) при:
Неотменяемых частей анимации
Анимация нанесения урона
Паркур, уклонение, прыжок
Проигрывание анимации получения урона
Диалог
Открытом меню
Блокирующий статус(оглушение)
Смерть
Нахождение в воздухе
8.2 Таргет
8.2.0 Таргет срабатывает на:
Ближайшего к игроку врага по радиусу
По максимальному углу обзора камеры (область видимости).
8.2.1 Взять камеру в таргет
При вхождении в боевой режим, игрок может взять врага в таргет. При нажатии на Mouse3, камера захватывает врага и игрок входит в таргетный режим.
В таргетном режиме:
Персонаж переходит в боевое передвижение(боевая локомоция), где персонаж при перемещении на любую стороны смотрит в сторону врага.
Камера меняет свое положение, плавно перемещается на указанный N (Offset).
Таргет срабатывает на ближайшего к игроку врага по радиусу и максимальному углу камеры (область видимости).
При повторном нажатии кнопки захвата камеры - захват камеры отменяется.
8.2.3 Авто-Смена таргета
При авто-смене/отмене таргета камера выходит из режима таргета и персонаж переходит в мирное передвижение.
Авто-смена таргета происходит, если:
Игрок отойдет на расстояние больше чем на N от таргета.
Между игроком и таргетом входит другой персонаж.
Таргет умирает.
Таргет выходит из поля зрения (НПС зайдет за большой объект к примеру).
8.2.4 Смена на клавишу
Смена таргета происходит на кнопку:
Сменить цель на след.
Mouse Wheel Up
Сменить цель на пред.
Mouse Wheel Down
Если пред. сдох или его теперь нет или не было, то срабатывает смена на след.
Таргет меняется на следующий ближайший таргет после первого.
8.2.5 Смена таргета камеры мышкой
Чтобы производить смену таргета мышкой - нужно чтобы стоял режим таргета камеры. Если дернуть мышь(камеру) в сторону больше определенной интенсивности N(сопротивляться таргету) - таргет меняется. В какую сторону дернули, на того ближайшего и меняется таргет.
8.2.6 Боевая локомоция
При таргете персонаж переходит с "Мирное Передвижение" на "Боевая локомоция".
Боевая локомоция - Персонаж повернут на врага и передвигается на 4 стороны не отрывая взгляд от него.
Инструментарий:
Анимации на боевую локомоцию в состоянии боя:
Тип оружия.
Тип передвижения.
Бег, ходьба, простая ходьба, прыжок.
Анимации на каждый из них.
8.3 Действия
8.3.1 Атака
Атаки - действия направленные на нанесение урона персонажам, используются для выполнения комбо.
Анимация атакиделится на три этапа:
Замах - прерываемая часть анимации. Прерывается блоком, прыжком или уклонением.
Момент нанесения урона - непрерываемая часть
Восстановление - Прерывается блоком, прыжком или уклонением.
Тайминг на след. удар в комбо
Дополнительно:
При замахе можно отменить атаку уклонением, перекатом, прыжком.
На этапе нанесения урона все геймплейные действия заблокированы.
Этап нанесения урона состоит из самого момента нанесения урона и несрезаемого участка анимации.
После окончания этапа нанесение урона и до момента окончания анимации персонаж может:
Нужно значение импульса отлета при получении урона.
Скорее всего не от зависимости урона, тк урон большого монстра может быть маленьким, а по визуалу отлетает на большое расстояние.
При воспроизведении следующей атаки, персонаж поворачивается в сторону направления камеры.
Конструктор анимации атак:
Моментально пробивает ли блок
Выставляет значение шкалы сознания на максимум.
Парируема ли атака
Множитель урона
Множитель умножается на урон определенного типа атаки в БП оружия (то есть для какого типа атаки приставлена анимация, на тот урон и умножается).
Список накладываемых эффектов при попадании атакой по врагу
Эффект(накладываемые статусы, дополнительный урон, исцеление, изменение параметров персонажа).
Цель эффекта(на врага, на себя).
Базовые типы атак:
Тип атаки - пресет атаки с определенным инпутом.
Легкая атака
Тяжелая атака
8.3.2 Заряженная атака
При удержании инпута [Легкая атака], через четверть секунды персонаж начинает заряжать атаку и не может перемещаться. После отпуска инпута производится удар.
Анимация заряженной атаки делится на три этапа:
Постановка - прерываемая часть анимации.
Удержание - зацикленная часть анимации прерываемая уклонением, прыжком, блоком.
Если да - данное действие нельзя использовать пока не разблокируется. Динамическое данное, можно изменять к примеру через скиллтри.
Минимальный множитель урона (с которого начинается зарядка)
Текущий множитель урона
Макс. время за которое заряжается множитель
Динамический изменяемый стат.
Множитель в секунду
Динамический изменяемый стат.
Порог множителя, при которой атака может пробить блок
Динамический изменяемый стат.
Отмена заряженной атаки при получении урона
Динамический изменяемый стат.
Минимальный урон при которой заряженная атака отменяется
Динамический изменяемый стат.
8.3.3 Атака на бегу
При достижении максимальной скорости передвижения, в спринте, при нажатии на одну из базовых атак, проигрывается другая анимация атаки.
Анимация атакиделится на три этапа:
Замах - непрерываемая часть анимации.
Момент нанесения урона - непрерываемая часть
Восстановление - Прерывается блоком, прыжком или уклонением.
Дополнительно:
Анимация атаки на бегу не стопит персонажа, как при обычном передвижении.
На этапе нанесения урона, замаха все геймплейные действия заблокированы.
Конструктор:
Значения с конструктора атаки
Блокировка использования
Если да - данное действие нельзя использовать пока не разблокируется. Динамическое данное, можно изменять к примеру через скиллтри.
Отдельная анимация на каждый тип атаки (легкая и тяжелая), тип оружия.
8.3.4 Атака в рывке
При нажатии [Вперед]+[Уклонение]+[Легкая атака], проигрывается анимация атаки в рывке.
Анимация атакиделится на три этапа:
Рывок, замах - непрерываемая часть анимации.
Момент нанесения урона - непрерываемая часть
Восстановление - Прерывается блоком, прыжком или уклонением.
Дополнительно:
Дистанция и скорость рывка зависит от анимации.
Множитель умножается на урон легкой атаки.
На этапе нанесения урона, замаха все геймплейные действия заблокированы.
Конструктор:
Значения с конструктора атаки
Блокировка использования
Если да - данное действие нельзя использовать пока не разблокируется. Динамическое данное, можно изменять к примеру через скиллтри.
Отдельная анимация на каждый тип оружия.
Множитель урона
8.3.5 Уклонение
Выполняется сложным инпутом - WASD+[Уклонение] (для уклонения в выбранном направлении). При нажатии без направления - выполняется уклонение назад (форвард вектор берется от лица персонажа).
Анимации уклонения делится на 3 части:
Начало - подготовка к рывку (непрерываемая действиями персонажа)
Движение - зацикленная анимация движения прерывается определёнными действиями героя
Во время блока (все три стадия) можно перемещаться.
Перемещение в блоке на N% медленнее чем Скорость в бою.
В блоке нельзя спринтовать.
Урон блокируется: во время постановки и удержания блока, урон приходит с фронтальной стороны. Тогда блок считается успешным и не накладывает станлок.
Если блок поставлен, но урон прошел через неблокируемую зону - персонаж получает полный урон и получает станлок.
До окончания анимации отпуска блока и/или проигрывания любой другой анимации, кроме удержания блока, невозможно поставить новый блок.
Конструктор блока:
Анимация постановки, удержания, отпуска на каждый тип оружия
Ширину фронтальной зоны
Процент блокируемого урона (БП оружия/щита)
Процент срезаемой скорости передвижения
8.3.7 Парирование
При нажатии на инпут [Тяжелая атака] в определенный промежуток кадров анимации атаки противника, прерывает атаку противника. Оппоненты должны смотреть друг на друга, атака врага должна входить в радиус и дистанцию парирования.
При успешном парировании персонаж игрока проигрывает анимацию парирования, враг - анимацию парируемого.
Область парирования
Конструктор парирования:
Блокировка использования
Если да - данное действие нельзя использовать пока не разблокируется. Динамическое данное, можно изменять к примеру через скиллтри.
Анимации на каждый тип оружия
на персонажа игрока
станлок на парируемого персонажа
Область парирования - N градусов от лица персонажа
Макс. дистанция парирования
Накладываемые эффекты
Эффект (накладываемые статусы, дополнительный урон, исцеление, изменение параметров персонажа)
Цель эффекта (на врага, на себя.)
Дополнительно:
При проигрывании парирования - игрок неуязвим к уронам.
Парирование происходит, когда в Области парирования находится враг, он производит атаку и момент удара находится на моменте за 1 минимальную единицу до нанесения урона и до -N% от этого момента.
При парировании персонаж игрока поворачивается к парируемому противнику.
Если персонажа атакует одновременно несколько противников, парирует атаку, которая началась раньше всех: одна атака парируется, вторая - нет.
Информация какая атака парируется ставится в анимации атаки.
8.3.8 Рипост
После парирования автоматический проигрывается анимация атаки.
Конструктор парирования:
Блокировка использования
Если да - данное действие нельзя использовать пока не разблокируется. Динамическое данное, можно изменять к примеру через скиллтри.
Анимация атаки на каждый тип оружия
Множитель урона на урон тяжелой атаки
Накладываемые эффекты
Эффект (накладываемые статусы, дополнительный урон, исцеление, изменение параметров персонажа)
Цель эффекта (на врага, на себя.)
Динамический изменяемый стат.
8.4 Конструктор комбо
Возможность выставлять:
Тип оружия
Последовательности анимации в зависимости от определенных типов атак
Условие до атаки. Какое событие должно произойти до выполнения атаки
Спринт, уклонение, Блок(момент удержания)
Блокировка комбо
Определённые атаки в комбо могут быть заблокированы.
Динамический изменяемый стат. Можно разблокировать например в скиллтри.
Анимации на незапланированный финишер на каждый тип атаки
Если нажать на атаку, которая не соответствует продолжению комбо - проигрывается незапланированный финишер.
К примеру, игроку доступно комбо Л+Л+Л (и ничего больше).
Если он нажмет Л+Л и потом не Л, а П (атака не соответствующая продолжению комбо), то проиграется незапланированный финишер.
Если успешно выполнит комбо, прожав Л+Л+Л, то конечная анимация будет особым финишером. (Отличия незапланированного и особого в пункте описании)
При получении урона от врага, теряет управление(стан-лок) и проигрывается анимация получения урона.
Проигрываемая анимация зависит от процента отнятого от макс. ХП. К примеру, у персонажа макс. 100 ХП, получил урон в 10 хп, это 10%: в промежутке 1-50% проигрывается другая, а в 51-100% другая анимация.
Тех. реализация: Отключаются возможность выполнения всех геймплейных действий, пока проигрывание анимации получения урона не закончится.
БП Персонажа:
Анимация станлока
Типы оружия
Возможность выставить анимацию на определенный промежуток процента отнятого ХП (полученного урона)
Время, в которой персонаж неуязвим к стан-локам(и проигрыванию анимации получения урона), после получения первого стан-лока.
Пример: Игрок после получения урона получает стан-лок. В течении N секунд после первого стан-лока, даже если игрок будет получать урон в эти N секунд - он не получит стан-лок(и проигрывание анимации получения урона).
Дополнительно:
Если персонаж получает урон находясь в воздухе / приземляется - проиграется анимация получения урона а не приземления/полета.
8.5.3 Маркер угрозы
В бою появляется горизонтальный диск вокруг персонажа.
Белый указатель - указывает на НПС в агре на игрока, но вне поле зрения.
Указатель на противника исчезает если он возвращается в поле зрения или умирает.
Красный указатель - указывает на НПС, который атакует игрока, в и вне поле зрения.
После прекращения атаки / попадания атакой, цвет возвращается в белый (если противник вне поле зрения. если в поле зрения - индикатор исчезает).
Пример
8.5.4 Добивания
Добивание - анимации убийства вражеского НПС, которые могут идти в связке отрывания конечностей.
Условия использования:
При нажатии атаки, если у вражеского НПС меньше чем N% HP, с шансом в M% срабатывает добивание.
При рипосте, парировании, если у вражеского НПС меньше чем N% HP, со 100% шансом срабатывает добивание.
Дополнительно:
При проигрывании добивания - игрок неуязвим к уронам.
Конструктор добивания:
Блокировка использования
Если да - данное действие нельзя использовать пока не разблокируется. Динамический изменяется, можно изменять к примеру через скиллтри.
Порог процента ХП, при которой появится шанс срабатывания.
Динамический изменяемый стат.
Шанс срабатывания.
Макс. дистанция добивания.
Радиус добивания.
Тип добивания.
Тип оружия.
Анимация добивающего.
Анимация добиваемого.
Оффсет сокета для редактирования правильности воспроизведения анимации.
Максимальная дистанция до сокета в плоскости.
11. Список фич на следующую итерацию
1.Переделать систему парирования-блока. Переработать тайминги, взаимодействие с боевым танцем, возможность параллельного использования нескольких действий. (блок слева, атака справа одновременно).
2.Возможно добавим систему направления атак нпц(или нпц и гг) и уворотов игрока и нпц, дальние рефы Infinity Blade, For Honor. Пока что не ясно ни как это будет выглядеть в конечном виде, ни будем ли мы это добавлять.
3.Анимации-комбо разных действий. Нужно будет добавить систему для настройки - какие действия можно применять за какими, какие будут срабатывать анимации. Это потребует полной переработки боевой системы, тк сейчас она предполагает расчет легкая, тяжелая, парирование.
4.Связь разных типов боевки через переходные комбо. Например, после атаки в мили можно нажать на смену стойки и тогда проиграется специальная атака , которая начинается с мили и заканчивается рейнжом, при этом плавно переводя игрока в дальний бой.
5.Полная переработка камеры. Написание своего плагина или подбор более подходящего, который мы сможем гибко настраивать.
6.Внедрение системы магических билдов.
7.Внедрение системы скилов и ультимейтов.
В связи с глобальными пунктами выше могут понадобиться дополнительные, которые сейчас сложно предсказать.