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

Авторский материал от пользователя 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
Рекомендуемые файлы

ASSC (Anti Social Social Club) Grey Hoodie White Title 1.0


Airbus A380-800 F-WWDD Etihad Titles


Custom Wasted/Busted Title

GTA 3 titles upscaled

GTA SA Style loadscreens

Сайлент Хилл. Тизер.

DYOM# v1.7

[RU] Новый русификатор для GTA 3 Definitive Edition v2.1.2 Remastered

CLEO Redux v1.2.2

[RU] GTA San Andreas - Миссии 27-28 (Русская озвучка)


Emotion 98.3 (Advanced Track Player)


Интро ролик GTA SA с участием Young Maylay
