Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемkriconf.ru
1 AI in Action Как достичь кинематографичности в Action игре Александр Радченко программист КОНФЕРЕНЦИЯ РАЗРАБОТЧИКОВ КОМПЬЮТЕРНЫХ ИГР Апрель 1-3, 2005 Москва, Россия
2 Александр Радченко – AI in Action 2003 Оглавление 2 Введение Общая архитектура AI системы. AI персонажей. AI рукопашного боя Кинематографическая система AI мотоциклетного боя AI для бокса на ринге Обобщение опыта автора в написании AI для Action игр
3 Game System Общая архитектура AI системы Александр Радченко – AI in Action AI System AI Actor Brain Agent Local ServiceGlobal Service NPC Character
4 Примеры использования Александр Радченко – AI in Action Содержит агентов Движение в точку Движение по пути Преследование Ближний бой Стрельба Мозг бандита
5 Александр Радченко – AI in Action Примеры использования Александр Радченко – AI in Action Мозг пешехода Содержит агентов Движение в точку Движение по пути Убегать Бояться
6 Примеры использования Александр Радченко – AI in Action Содержит агентов Движение в точку Искать мусорный бак Копаться в мусоре Попрошайничать Бояться Убегать Мозг бомжа
7 Александр Радченко – AI in Action 2003 Архитектура. Достоинства и недостатки 7 Достоинства Простота Гибкость Система компонентная и позволяет легко добавлять, переносить код Недостатки Слишком большая гибкость Вседозволенность программиста
8 Александр Радченко – AI in Action 2003 Взаимодействие AI с игровой логикой 8 Common Game System Common Game AI Shadow Fight Game Shadow Fight AI AxleRage Game AxleRage AI
9 Александр Радченко – AI in Action 2003 AI рукопашного боя. Общие положения 9 Добежать до противника По прямой По waypoints Во время драки надо соблюдать требования Логичность Разнообразность Настраиваемость
10 Александр Радченко – AI in Action AI рукопашного боя. Драка 10 Постоянный «Lock» на противника в бою Прыжки aka уклоны Выбор атак Все на одного! Отталкивание и притягивание Стенка на стенку! Агент ближнего боя
11 Александр Радченко – AI in Action 2003 AI рукопашного боя. Выбор атаки 1/2 11 Бросок для ближней дистанции Две атаки для средней дистанции Атака с прыжком для дальней дистанции Цель AI Unit
12 Александр Радченко – 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
13 Александр Радченко – AI in Action 2003 AI рукопашного боя. Разнообразность. 13 Итак, мы выбрали наилучшую атаку А что же с разнообразностью ? Можно для атак в одном диапазоне писать задавать вероятности их появления Это плохой способ ! Мы получим разнообразность, сомнительного качества, но не сможем добиться легкой настройки Здесь и появляется первый раз кинематографическая система
14 Александр Радченко – AI in Action Исключение повторений атак. Красивый бой Выбор атаки для NPC идет по следующим правилам Выбирается наиболее подходящая атака по дистанции до цели. После этого идет проверка по заранее заданным фильтрам и буферу уже проводившихся атак. В самом простом случае будут отсекаться повторяющиеся атаки и прочие некрасивые последовательности. Некрасивые последовательности определяются эмпирически и задаются в специальном ini файле
15 2003 AI рукопашного боя. Все на одного! Александр Радченко – AI in Action Атакующая группа Группа поддержки Производит атаку Цель
16 Александр Радченко – AI in Action Рукопашный бой. Стенка на стенку! Эта система уже позволяет реализовать драку группа на группу Но! Возникает т.н. «самурайская тенденция», персонажи разбиваются на пары и дерутся только с одним противником А нам нужна массовая драка Победить это легко, достаточно сделать так, чтобы персонажи из одной группы отталкивались на малом расстоянии и начинали притягиваться с увеличением расстояния. Теперь бойцы одной команды будут держатся кучно, и цели у них будут меняться чаще.
17 Александр Радченко – AI in Action Кинематографическая система. Введение Агенты пешего боя по своей сути все одинаковы, и обеспечить только с их помощью разнообразное и не повторяющееся поведение невозможно Решения : Усложнение агентов Дополнительный модуль над игровым AI
18 Александр Радченко – AI in Action Кинематографическая система 1/2 Управление системой группа атаки и группа поддержки для пешего боя. Перевод NPC из одной группы в другую Выбор атак для нападающих. Исключение повторений атак Выбор момента для проигрывания idle анимаций Выбор момента для проигрывания idle звуков. Выбор типа получения удара легкий без отлетания тяжелый с отлетанием тяжелый с падением.
19 Александр Радченко – AI in Action Кинематографическая система 2/2 Активизация двойных атак (атака двух NPC против одного). Поведение камеры: выбор наиболее красивых моментов смерти врагов и показ их с различными эффектами Поведение npc атакующих главного героя в поле зрения камеры
20 Александр Радченко – AI in Action AI мотоциклиста Было решено разделить задачу Низкий и высокий уровни Езда по путям Драка 1 на 1 Драка все на одного! Связь AI с физикой мотоцикла Связь AI с анимацией мотоциклиста
21 Александр Радченко – AI in Action AI мотоциклиста. Езда по пути. По трассе в несколько рядов были проложены пути Мотоцикл катался исключительно по путям, иногда перестраиваясь из одного пути в другой Если надо было убегать «огородами» – создаем специальный путь Если надо гнаться за целью – дополнительный путь создается на ходу
22 Александр Радченко – AI in Action 22 AI мотоциклиста. Драка один на один 1/2 Требования : Должно быть достаточно легко приблизиться к врагу и начать его бить NPC не должен вести себя слишком пассивно Как упростить принятие решения ? AI мотоциклетной драки работал в системе координат цели
23 Александр Радченко – AI in Action AI мотоциклиста. Драка один на один 2/2 Было сделано множество агентов, реализующих разные мотоциклетные действия Виляния позади цели Виляния впереди цели Обгон персонажа cлева и параллельное нанесение атаки Обгон персонажа cправа и параллельное нанесение атаки Байкер едет в отдаление слева от Акселя Байкер едет в отдаление справа от Акселя Байкер атакует Акселя с наездом из режима эскорта Байкер едет в отдаление впереди от Акселя и стреляет И все было хорошо…
24 Александр Радченко – AI in Action 24 AI мотоциклиста. Драка несколько на одного Действия двух байкеров против одного выглядели ужасно Настройки поведения байкера были вынесены в отдельную папку (.ini ) и их можно было менять. Проблема была в том, что эти настройки были одни, для всех байкеров И байкеры не знали друг о друге И поскольку мы активно использовали вероятности, байкеры часто делали синхронные действия. Чтобы это решить, были применены наработки из кинематографической системы В частности идея с конфликтующими действиями. Активация одного действия блокировала как минимум такое же действие, как максимум – все то, что выглядело неестественно
25 Александр Радченко – AI in Action AI мотоциклиста. Достоинства и недостатки Достоинства Система компонентная и легко настраиваемая Работы над AI удалось распараллелить Недостатки Высокий уровень часто неспособен адекватно и вовремя реагировать на сигналы из низкого Распараллеливание привело к дополнительным сложностям в определении интерфейсов
26 Александр Радченко – AI in Action Боксерский AI 26 Модифицированный рукопашный бой Боксеры постоянно «залочены» на цель И цель только одна Очень простые перемещения
27 Александр Радченко – AI in Action Боксерский AI. Атаки и блоки 27 Система «Атака – Пауза» При атаке - только бьем При паузе – только блокируем. Длительность атаки 0.7 +/- 0.3 сек. Пауза 70% +/- 30% от времени атаки При пропущенной атаке вероятность блока по этому уровню должна расти С течением времени надо уменьшать вероятность блока по обоим уровням
28 Александр Радченко – AI in Action 28 Подведение итогов Компонентная структура AI дала возможность легко добавлять и изменять код Кинематографическая система - как отдельный модуль над AI С вероятностями надо быть очень осторожным, случайности совсем не случайны! AI должен быть логичным, разнообразным и легко настраиваемым Визуальная настройка AI параметров очень сильно облегчает жизнь
29 Александр Радченко – AI in Action 29 Подведение итогов. Изменения в runtime Очень важно, чтобы была возможность изменить параметры AI прямо в игре У нас есть среда разработки, в которой можно запускать игру Там доступен весь граф сцены В том числи и настройки AI персонажей Это очень удобно, время на доводку сокращается на порядок
30 Спасибо за внимание Александр Радченко – AI in Action Вопросы ? Вопросы автору также можно задать на
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.