AI in Action Как достичь кинематографичности в Action игре Александр Радченко программист КОНФЕРЕНЦИЯ РАЗРАБОТЧИКОВ КОМПЬЮТЕРНЫХ ИГР Апрель 1-3, 2005 Москва,

Презентация:



Advertisements
Похожие презентации
1 Федеральное агентство по образованию Государственное образовательное учреждение Московский государственный индустриальный университет (ГОУ МГИУ) Москва.
Advertisements

ИД «Первое сентября». Журнал «Физика» 2/ Роза ветров 9 ИД «Первое сентября». Журнал «Физика» 2/2014.
Печать документов Борисов В.А. Красноармейский филиал ГОУ ВПО «Академия народного хозяйства при Правительстве РФ» Красноармейск 2009 г.

Модуль 2. Математичні основи криптографії 1. Лекция 6 Криптография с использованием эллиптических кривых 1. Основные понятия 2. Способы использования.
OpenGL и Direct3D сравнение стандартов Выполнил: Пенкин А. Группа И-204.
Тренировочное тестирование-2008 Ответы к заданиям КИМ Часть I.
МАТЕМАТИЧЕСКАЯ СТАТИСТИКА Предмет и методы Лекция 2.
Модуль переноса решений Как средство распространения партнерских решений Варфоломеев Антон Директор по производству DocsVision.
Департамент экономического развития Ханты-Мансийского автономного округа - Югры 1.
Маршрутный лист «Числа до 100» ? ? ?
Тема 11 Медицинская помощь и лечение (схема 1). Тема 11 Медицинская помощь и лечение (схема 2)
Лекции по физике. Механика Законы сохранения. Энергия, импульс и момент импульса механической системы. Условия равновесия.
Использование ЭОР в процессе обучения в основной школе. Математика 1.

1 2. Матрицы. 2.1 Матрицы и их виды. Действия над матрицами. Джеймс Джозеф Сильвестр.
Права человека. Статья 1. Статья 2. Статья 3. Статья 4.
1 Уничтожение радикалов Рогозина Елена Геннадьевна Санкт-Петербургский центр подготовки спасателей ПУ-97.
ИСПОЛНИТЕЛЬ ЧЕРТЁЖНИК 1. Один из графических исполнителей, с которым мы будем работать - Чертежник. Он предназначен для построения рисунков на поле, "размер"
Информатика ЕГЭ Уровень-А8. Вариант 1 Укажите логическое выражение, равносильное данному: (А^B) v ((¬B ^ ¬A) v A). 1) (A^ B) v (¬B) 2) (A ^ B) v (¬A)
Транксрипт:

AI in Action Как достичь кинематографичности в Action игре Александр Радченко программист КОНФЕРЕНЦИЯ РАЗРАБОТЧИКОВ КОМПЬЮТЕРНЫХ ИГР Апрель 1-3, 2005 Москва, Россия

Александр Радченко – AI in Action 2003 Оглавление 2 Введение Общая архитектура AI системы. AI персонажей. AI рукопашного боя Кинематографическая система AI мотоциклетного боя AI для бокса на ринге Обобщение опыта автора в написании AI для Action игр

Game System Общая архитектура AI системы Александр Радченко – AI in Action AI System AI Actor Brain Agent Local ServiceGlobal Service NPC Character

Примеры использования Александр Радченко – AI in Action Содержит агентов Движение в точку Движение по пути Преследование Ближний бой Стрельба Мозг бандита

Александр Радченко – AI in Action Примеры использования Александр Радченко – AI in Action Мозг пешехода Содержит агентов Движение в точку Движение по пути Убегать Бояться

Примеры использования Александр Радченко – AI in Action Содержит агентов Движение в точку Искать мусорный бак Копаться в мусоре Попрошайничать Бояться Убегать Мозг бомжа

Александр Радченко – AI in Action 2003 Архитектура. Достоинства и недостатки 7 Достоинства Простота Гибкость Система компонентная и позволяет легко добавлять, переносить код Недостатки Слишком большая гибкость Вседозволенность программиста

Александр Радченко – AI in Action 2003 Взаимодействие AI с игровой логикой 8 Common Game System Common Game AI Shadow Fight Game Shadow Fight AI AxleRage Game AxleRage AI

Александр Радченко – AI in Action 2003 AI рукопашного боя. Общие положения 9 Добежать до противника По прямой По waypoints Во время драки надо соблюдать требования Логичность Разнообразность Настраиваемость

Александр Радченко – AI in Action AI рукопашного боя. Драка 10 Постоянный «Lock» на противника в бою Прыжки aka уклоны Выбор атак Все на одного! Отталкивание и притягивание Стенка на стенку! Агент ближнего боя

Александр Радченко – AI in Action 2003 AI рукопашного боя. Выбор атаки 1/2 11 Бросок для ближней дистанции Две атаки для средней дистанции Атака с прыжком для дальней дистанции Цель AI Unit

Александр Радченко – AI in Action AI рукопашного боя. Выбор атаки 2/2 12 [BigGuyHammerAttack1_1 : gai::CloseCombatAttack] AnimCommand = bigguy_hammerattack1 DamageHealth = 0.2 DamageEnergy = 0.3 EnergyCost = 0.1 MinDistance = 1.1 MaxDistance = 2.1 [BigGuyHammerAttack1_1 : gai::CloseCombatAttack] AnimCommand = bigguy_hammerattack2 PrevAttack = 'BigGuyHammerAttack1_1' DamageHealth = 0.5 DamageEnergy = 0.6 EnergyCost = 0.1 MinDistance = 1.5 MaxDistance = 2.1

Александр Радченко – AI in Action 2003 AI рукопашного боя. Разнообразность. 13 Итак, мы выбрали наилучшую атаку А что же с разнообразностью ? Можно для атак в одном диапазоне писать задавать вероятности их появления Это плохой способ ! Мы получим разнообразность, сомнительного качества, но не сможем добиться легкой настройки Здесь и появляется первый раз кинематографическая система

Александр Радченко – AI in Action Исключение повторений атак. Красивый бой Выбор атаки для NPC идет по следующим правилам Выбирается наиболее подходящая атака по дистанции до цели. После этого идет проверка по заранее заданным фильтрам и буферу уже проводившихся атак. В самом простом случае будут отсекаться повторяющиеся атаки и прочие некрасивые последовательности. Некрасивые последовательности определяются эмпирически и задаются в специальном ini файле

2003 AI рукопашного боя. Все на одного! Александр Радченко – AI in Action Атакующая группа Группа поддержки Производит атаку Цель

Александр Радченко – AI in Action Рукопашный бой. Стенка на стенку! Эта система уже позволяет реализовать драку группа на группу Но! Возникает т.н. «самурайская тенденция», персонажи разбиваются на пары и дерутся только с одним противником А нам нужна массовая драка Победить это легко, достаточно сделать так, чтобы персонажи из одной группы отталкивались на малом расстоянии и начинали притягиваться с увеличением расстояния. Теперь бойцы одной команды будут держатся кучно, и цели у них будут меняться чаще.

Александр Радченко – AI in Action Кинематографическая система. Введение Агенты пешего боя по своей сути все одинаковы, и обеспечить только с их помощью разнообразное и не повторяющееся поведение невозможно Решения : Усложнение агентов Дополнительный модуль над игровым AI

Александр Радченко – AI in Action Кинематографическая система 1/2 Управление системой группа атаки и группа поддержки для пешего боя. Перевод NPC из одной группы в другую Выбор атак для нападающих. Исключение повторений атак Выбор момента для проигрывания idle анимаций Выбор момента для проигрывания idle звуков. Выбор типа получения удара легкий без отлетания тяжелый с отлетанием тяжелый с падением.

Александр Радченко – AI in Action Кинематографическая система 2/2 Активизация двойных атак (атака двух NPC против одного). Поведение камеры: выбор наиболее красивых моментов смерти врагов и показ их с различными эффектами Поведение npc атакующих главного героя в поле зрения камеры

Александр Радченко – AI in Action AI мотоциклиста Было решено разделить задачу Низкий и высокий уровни Езда по путям Драка 1 на 1 Драка все на одного! Связь AI с физикой мотоцикла Связь AI с анимацией мотоциклиста

Александр Радченко – AI in Action AI мотоциклиста. Езда по пути. По трассе в несколько рядов были проложены пути Мотоцикл катался исключительно по путям, иногда перестраиваясь из одного пути в другой Если надо было убегать «огородами» – создаем специальный путь Если надо гнаться за целью – дополнительный путь создается на ходу

Александр Радченко – AI in Action 22 AI мотоциклиста. Драка один на один 1/2 Требования : Должно быть достаточно легко приблизиться к врагу и начать его бить NPC не должен вести себя слишком пассивно Как упростить принятие решения ? AI мотоциклетной драки работал в системе координат цели

Александр Радченко – AI in Action AI мотоциклиста. Драка один на один 2/2 Было сделано множество агентов, реализующих разные мотоциклетные действия Виляния позади цели Виляния впереди цели Обгон персонажа cлева и параллельное нанесение атаки Обгон персонажа cправа и параллельное нанесение атаки Байкер едет в отдаление слева от Акселя Байкер едет в отдаление справа от Акселя Байкер атакует Акселя с наездом из режима эскорта Байкер едет в отдаление впереди от Акселя и стреляет И все было хорошо…

Александр Радченко – AI in Action 24 AI мотоциклиста. Драка несколько на одного Действия двух байкеров против одного выглядели ужасно Настройки поведения байкера были вынесены в отдельную папку (.ini ) и их можно было менять. Проблема была в том, что эти настройки были одни, для всех байкеров И байкеры не знали друг о друге И поскольку мы активно использовали вероятности, байкеры часто делали синхронные действия. Чтобы это решить, были применены наработки из кинематографической системы В частности идея с конфликтующими действиями. Активация одного действия блокировала как минимум такое же действие, как максимум – все то, что выглядело неестественно

Александр Радченко – AI in Action AI мотоциклиста. Достоинства и недостатки Достоинства Система компонентная и легко настраиваемая Работы над AI удалось распараллелить Недостатки Высокий уровень часто неспособен адекватно и вовремя реагировать на сигналы из низкого Распараллеливание привело к дополнительным сложностям в определении интерфейсов

Александр Радченко – AI in Action Боксерский AI 26 Модифицированный рукопашный бой Боксеры постоянно «залочены» на цель И цель только одна Очень простые перемещения

Александр Радченко – AI in Action Боксерский AI. Атаки и блоки 27 Система «Атака – Пауза» При атаке - только бьем При паузе – только блокируем. Длительность атаки 0.7 +/- 0.3 сек. Пауза 70% +/- 30% от времени атаки При пропущенной атаке вероятность блока по этому уровню должна расти С течением времени надо уменьшать вероятность блока по обоим уровням

Александр Радченко – AI in Action 28 Подведение итогов Компонентная структура AI дала возможность легко добавлять и изменять код Кинематографическая система - как отдельный модуль над AI С вероятностями надо быть очень осторожным, случайности совсем не случайны! AI должен быть логичным, разнообразным и легко настраиваемым Визуальная настройка AI параметров очень сильно облегчает жизнь

Александр Радченко – AI in Action 29 Подведение итогов. Изменения в runtime Очень важно, чтобы была возможность изменить параметры AI прямо в игре У нас есть среда разработки, в которой можно запускать игру Там доступен весь граф сцены В том числи и настройки AI персонажей Это очень удобно, время на доводку сокращается на порядок

Спасибо за внимание Александр Радченко – AI in Action Вопросы ? Вопросы автору также можно задать на