Українська

Гайд: как срежиссировать погони с перестрелками как в сюжете GTA: San Andreas

28 серпня 2023
Missiya

Авторский материал от пользователя LibertyCity AlexLeslie о том, из чего состоит любая погоня с перестрелкой игрока (drive-by) и как выглядит алгоритм создания вооруженной погони.


От автора

Меня зовут Борис Волохов (Chelews), и я начинающий гейм-дизайнер. Занимаюсь программированием, немного — сценарным мастерством. Работал над своей небольшой сюжетной модификацией Manhunt: Past Remembers Me, раньше — над виральной глобальной зомби-модификацией на мобильные версии GTA "Left to San Andreas". А это моя первая обучающая статья.

Почему я написал эту статью?
В одной из миссий мода Manhunt: Past Remembers Me я хотел сделать погони с перестрелками, какие были в сюжетной линии GTA: San Andreas: главный герой стреляет из окна автомобиля в преследующих его машину врагов. От лица игрока я считаю, что все погони в оригинальной игре были грамотно и, отчасти, захватывающе срежиссированы.

Я столкнулся с проблемой того, как мне было сделать так, как сделали в свое время Rockstar North. Обучающих статей, видеороликов и примеров я не нашел. В доступных модификациях я находил погони, основанные на примитивных и ненадежных, с технической точки зрения, инструментах.

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

Для кого эта статья?
Я написал эту статью для людей, которые умеют вручную устанавливать модификации, разбираются в файловой структуре GTA: San Andreas, немного программируют, умеют пользоваться Sanny Builder и знают, что такое RRR-пути. Проще говоря, статья для модмейкеров.


Из чего состоит погоня с перестрелками?

Закономерность: Вражеская цель подсвечена красным маркером: в пространстве, на радаре и мини-карте.
Причина решения: Показать игроку, кого атаковать и где находится цель.

Закономерность: Персонажи (включая игрока) в авто, из которого игрок стреляет, имеют бесконечное здоровье.
Причина решения: Вражеские NPC с большей вероятностью попадут в транспорт игрока, чем в водителя или самого игрока. Это вопрос игрового баланса.

Закономерность: Вражеские юниты появляются, когда транспорт игрока рядом.
Причина решения: Экономия памяти игры для будущих сценариев и благополучной работы игры.

Закономерность: Движение врагов на транспорте срежиссировано так, что их транспорт не соприкасается между собой и транспортом игрока во время погони.
Причина решения: Причина кроется в стремлении делать достаточно хорошие сценарии.

Закономерность: Со временем транспорт (авто, байк и пр.) врагов перестает свое движение, если игрок его не успел уничтожить. Вражеский транспорт либо останавливается, либо попадает в аварию.
Причина решения: На запланированном пути, в среднем, приходится 2-4 вражеского транспорта каждые 1-2 минуты. Если на протяжении всей погони за игроком следует десяток и более транспорта, то местности не хватит, и трудно контролировать движение каждого транспорта, чтобы он не соприкасался. По личным ощущениям, такая погоня будет смотреться нелепо.

Закономерность: Неуничтоженные вражеские NPC и их транспорт пропадают, если транспорт игрока далеко от них.
Причина решения: Экономия памяти игры для будущих сценариев и благополучной работы игры. Также если вражеские цели помечаются маркерами, то при их удалении из игры маркеры тоже пропадают. Это регулирует внимание игрока и устраняет некрасивую кучу маркеров в дали карты.


Элементы погони с перестрелкой

Разберем, из каких элементов состоит любая погоня, где игрок стреляет в вражеские цели и следит за здоровьем своего транспортного средства.

Движение транспорта — точки начала и конца поездки транспорта игрока и вражеских целей, траектория этой поездки.

Препятствия — сущность, мешающая транспорту игрока доехать до конечной точки пути. Препятствия бывают разными: NPC с оружием; объект (в том числе транспорт); особый сценарий.

Точка интереса — событие, которое привлекает внимание игрока и делает поездку с перестрелкой более разнообразной. Точка интереса не препятствует пути ТС игрока

В рамках режиссуры погони в игре нужно определить:

  • Движение транспорта;
  • Препятствия на пути ТС игрока;
  • Точки интереса на протяжении всей поездки;
  • Также использование инструментов разработки для режиссуры.

Движение авто, байков, вертолетов и лодок в погонях с перестрелками в “GTA: San Andreas” реализовано с помощью RRR-путей. Они позволяют создать путь движения транспорта, какой вы захотите. Он не ограничен искусственным интеллектом, который вычисляет, где можно ехать, а где – нельзя. С помощью RRR-путей мы контролируем движение всего транспорта в погоне и получаем некую свободу. RRR-пути можно записывать с помощью CLEO-скрипта от Seemann.


Алгоритм создания погони с перестрелкой

Я составил небольшой алгоритм, следуя которому вы сможете создать и срежиссировать более менее неплохую погоню. Я протестировал этот алгоритм, когда мне надо было сделать свою погоню в одной из миссий, и метод сработал в моем случае.

1. Движение транспорта

  • Определить точки начала и конца поездки транспорта (игрока, вражеского и нейтрального)
  • Изобразить траекторию движения ТС от точки начала до конца поездки (на карте)
  • Двигаться на транспорте по этой траектории в игре, чтобы запомнить путь движения и легко его воспроизвести при записи RRR-пути

2. Препятствие

  • Определить сущность препятствия: NPC с оружием, объект, особый сценарий. NPC с оружием обстреливает транспорт игрока, объект может повредить транспорт, а особый сценарий подразумевает задумки сценариста сюжета.
  • Конкретизировать препятствие. Если это NPC с оружием, то будет ли он в машине или пешком. Если это объект, то где конкретно он будет и какими свойствами обладает. И так далее. Если вражеский NPC управляет авто, то выполнить все пункты из 1 (движение ТС).
  • Отметить координаты (можно точку на карте) в игре данного препятствия. Можно разделять точки препятствий по цветам в зависимости от типа препятствия для удобства. Например, красный – NPC, зеленый – объект.
  • Повторить все, что связано с пунктом 2, если препятствий для вас пока недостаточно.

3. Точка интереса

  • Определить сценарий точки интереса. Например, полицейская машина попадает в аварию, переворачивается и взрывается (последняя миссия из ориг. GTA:SA). Или полицейский мотоциклист зацепился на лобовом стекле, а его покромсали на части лопасти вертолета (миссия "Воссоединение семей" из ориг. GTA:SA)
  • Повторить, если точек интереса для вас пока недостаточно

4. Режиссура погони в игре

  • Расставить все препятствия на траектории движения ТС игрока;
  • Записать RRR-путь движения транспорта игрока с учетом всех препятствий;
  • Запустить RRR-путь транспорта игрока и записать RRR-путь для препятствий игрока (как правило, это транспорт с вооруженными NPC, которые гонятся за ГГ);
  • Настроить таймеры запуска тех или иных препятствий и точек интереса.


Итоги

Мы рассмотрели, из чего состоит любая погоня с перестрелкой игрока (drive-by), прошлись по алгоритму создания вооруженной погони. В следующей части статьи я сделаю мастер-класс, где мы будем создавать свою небольшую погоню в игре, если этого захотят читатели.

Попробуйте применить алгоритм и дайте обратную связь в комментариях об эффективности этой методики.

Автор: AlexLeslie

Рейтинг: 5 (11 голосів)

Рекомендуемые файлы