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