Достижения в технологии компьютерной графики в последние годы позволили создать многочисленные реалистичные и правдоподобные виртуальные вселенные. Поскольку такие виртуальные миры создаются для различных игровых, образовательных приложений, а также используются в киноиндустрии, то для обеспечения максимального правдоподобия, граничащего с реальностью, виртуальные вселенные должны быть населены такими персонажами, которых зритель будет воспринимать как живых. В связи с этим агентное моделирование получило новую нишу своего развития, так как способно предложить наилучшее решение проблем, связанных с симуляцией характеров и поведения персонажей. В действительности, так как виртуальные герои представляют собой материализованных автономных агентов – использование АОМ имеет здесь гораздо более широкое применение, чем практически в любой другой отрасли.
Виртуальные персонажи могут быть охарактеризованы как «интеллектуальные агенты», и в связи с этим должны подчиняться четырем основным критериям (свойствам):
- Автономность – агенты действуют без прямого вмешательства человека и имеют определенный уровень самоконтроля над собственными действиями
- Социальная активность – агенты вступают во взаимодействие с другими агентами (иногда с человеком) посредством определенных алгоритмов и языка
- Реактивность – агенты воспринимают внешнее окружение (которое может быть сформировано в виде графического интерфейса, материального мира, интернета и др., а также комбинаций названного) и реагируют действиями в связи с его изменением
- Проактивность – агенты не просто реагируют на изменение обстановки, но производят действия, характеризующиеся мотивацией к достижению определенных целей.
Основная задача агентного моделирования в области компьютерной графики и игр состоит в том, чтобы характер и поведение агентов в виртуальном мире было как можно более правдоподобным, а, следовательно, строгое следование заданным принципам обеспечивает успех создателя компьютерной игры или кинофильма. Именно в связи с предметом применения задачи АОМ можно условно разделить на две сферы: компьютерная графика (computer generated imagery, CGI) и игровые компоненты.
Использование АОМ в компьютерной графике.
Основное применение, которое получило АОМ в компьютерной графике, сконцентрировано на симуляции поведения больших групп агентов: толпа людей на городской площади или в фойе гостиницы, стая птиц, батальные сцены кинофильмов. Если изначально АОМ позволяло решать такие социально значимые проблемы, как поведение людей во время эвакуации из здания при пожаре, то те же самые подходы оказались востребованными и при симуляции поведения толпы (в широком смысле) при проектировании компьютерных игр и съемке кинофильмов. Дело в том, что с развитием технологий, с одной стороны, и повышением требований со стороны зрителей, с другой, медиа продюсеры были вынуждены усложнять качество «картинки», создавая все более сложные сцены с возрастающим числом объектов в кадре. Очевидно, что «ручная» прорисовка персонажей на «втором плане» обходилась дорого и занимала очень большого времени, если требовалось качественное воссоздание действий массовки. Приемы АОМ позволяют значительно сэкономить на такой симуляции, при этом у зрителя будет складываться впечатление, что отдельно взятый персонаж из массовки обладает своим уникальным характером и действует как бы независимо, хотя на самом деле, его действиями управляет специальный алгоритм, общий для всей группы.
Наиболее ранние модели представляли собой симуляцию поведения косяка рыб и стай птиц. Основные постулаты создателей таких моделей сводились к тому, что индивидуальные члены стай не способны (и от них не требуется) к сложному мышлению, а общее поведение стаи зависит от индивидуальных действий ее членов (Craig Reynold’s Boids system). Система Бойда предполагала, что элементам стаи свойственно совершать три основных действия: разделение, следование и воссоединение (илл.1)
Другая система (Tu and Terzopoulos) основывалась на биологических параметрах рыб, включая сложную систему мускулатуры и особое строение органов зрения. Включение такой логики действий агентов позволило эффективно симулировать такие состояния отдельных рыб и косяка в целом, как собирание в стаю (группировка) и избегание хищника.
В качестве переходной модели (от поведения групп животных к группам людей) выделим VICrowd (Лаборатория Virtual Reality Lab университета Ecole Polytechnique Fédérale176 de Lausanne in Switzerland), построенную на принципах иерархии верований, желаний и намерений. Верования представляют собой информацию об окружающей среде, которой агент владеет. Желания представляют собой основные цели и потребности, которые агент желает достичь. Наконец, намерения включают в себя действия, которые агент готов предпринять для достижения целей. Система VICrowd использовалась для симуляции поведения большого числа людей (население города, гости парка, посетители общественных зданий и др.) и хорошо зарекомендовала себя как инструмент моделирования поведения больших групп агентов в реальном времени.
Очевидно, что для успешной реализации АОМ в компьютерной графике количество требований, ограничений и характеристик задач многократно возрастает по сравнению с «классическими» сферами применения АОМ. Действительно, большинство экспертов склонны заявлять, что АОМ в компьютерной графике призвана не просто произвести правдоподобную симуляцию, а создать «иллюзию жизни» таким образом, чтобы агенты воспринимались как «вполне живые, дышащие персонажи со своими чертами характера». Важным для понимания отличия АОМ в компьютерной графике является отсутствие потребности в поиске наиболее эффективных или наименее затратных решений какой-либо проблемы (как, например, при моделировании производств, схем поставок), наоборот, на первый план выходит визуальная правдоподобность, т.е. создание не эффективного, а интересного персонажа. Таким образом, персонаж должен выбирать не наиболее эффективный, а наиболее разумный либо наиболее реалистичный вариант своих действий.
Очень красноречиво описывает данное противоречие классическому АО Blumberg: поведение агентов должно быть в первую очередь «разнообразным, а не надежным; характерным, нежели предсказуемым; подходящим, нежели верным; эффектным, нежели полным; интересным, а не эффективным; отличительно индивидуальным вместо оптимального». Bates дает, пожалуй, самое слабое ограничение на свойства персонажей и их целеполагание «достаточно чтобы не были идиотами или нереальными».
В продолжение мысли о степени эффективности агентов Aylet and Luck предлагают дифференцировать их на основе своей модели спектра (Spectrum of Agents). На одной стороне спектра сосредоточены «физические агенты», основной целью создания которой является правдоподобное повторение механических действий, включая особенности строения скелетов, мускулатур и сенсорики. С другой стороны – когнитивные агенты, специализирующиеся на принятии решений, планировании и обучении. Тот или иной агент в компьютерной симуляции принимает в определенной пропорции свойства и тех и других.
Еще одна важная концепция, описывающая модели АОМ в компьютерной графике – виртуальная достоверность, которая постулирует, что виртуальный мир должен быть настолько точным, насколько этого требует восприятие зрителя. В отличие от точности воспроизведения самих агентов (она максимизируется, для лучшего зрительского эффекта), само окружение, как правило, упрощается. Например, виртуальные города обычно имеют меньшие масштабы, наборы действий, необходимые для достижения целей также сокращаются.
АОМ в компьютерной графике для кинофильмов.
Успехи АОМ моделирования в компьютерной графике пришлись на пору бума использования CGI в кинопроизводстве. Традиционно компьютерная графика удешевляло создание сцен, производство которых в реальном мире стоило значительных средств, например съемка с использованием большой массовки в батальных сценах.
Решение, которое предлагает использование АОМ состоит в том, что кадры заселяются персонажами с уникальными свойствами характера, которые будут автономно вести себя соответственно потребностям режиссера, если первоначальная модель задана корректно. Таким образом, отпадает необходимость в управлении каждым из персонажей в отдельности.
Система Boids, описанная ранее, была едва ли не пионером в этой отрасли. В 1999 году в фильме «Бэтман возвращается» были использован аналогичные подходы для симуляции стай летучих мышей. Развитие технологии произошло при съемках фильмов «Король лев» и «От заката до рассвета». Помимо прочего заслуги Рейнольдса и его системы были отмечены премией Оскар в 1998 году.
Схожие технологии применялись во многих других фильмах, когда имелась необходимость имитировать действия большого числа животных, насекомых и людей. При съемках фильмов «Муравей Антц» (Dreqmworks) и «Приключения Флика» (Disney/Pixar) были созданы модели, имитирующие поведение насекомых при обходе препятствий, стадность и другие действия.
Самый большой толчок АОМ в видеографике получило при съемках трилогии «Властелин колец». Основное достижение связано со степенью сложности симуляции и многогранности характеров персонажей, а так же многократным увеличением числа персонажей в кадре в отдельных сценах. Для достижения поставленных целей была разработана специальная система Massive Software, показавшая наибольшую эффективность при съемках батальных сцен с многотысячным числом участников, а также отдельные сцены в третьей части включали до 200 000 единиц цифровых персонажей. Каждый из персонажей представляет при этом уникального агента, принимающего самостоятельные решения на основе знаний и окружающей информации – естественно, что при таких масштабах без АОМ не обойтись. Успех пакета Massive Software был далее доказан и при съемках таких картин как «Хроники Нарнии», «Рататуй».
Однако, несмотря на успехи применения АОМ при съемках кинопродукции, все же данные модели не позволяют быть использованными в задачах, которые подразумевают вмешательство человека в реальном времени.
АОМ в компьютерных играх
Гораздо большее развитие АОМ получило в отрасли создания компьютерных игр. Помимо графической компоненты, рассмотренной выше, виртуальные персонажи должны не только выглядеть и вести себя реалистично, но и являться игровой компонентой, то есть быть проактивными и реагировать на любые действия игрока, т.е. человека, в реальном времени. Это накладывает определенные ограничения и требования, предъявляемые к компьютерным играм:
Во-первых, это высокая степень интерактивности виртуальных персонажей. Современная компьютерная игра должна уметь обрабатывать практически любое действие игрока, каким бы нелогичным оно не было, и в соответствии с этим виртуальный персонаж (агент) должен выбирать то или иное действие, создающее эффект достоверного ответа.
Во-вторых, большинство современных игр реализовано в режиме реального времени. Соответственно сложность выбранных алгоритмов должна соответствовать ресурсам ЭВМ, с учетом того, что большая часть ресурса уже аллоцирована на обработку видео данных (в которых уже заложены процессы АОМ).
Наконец, современные игры содержат определенный сценарий, который может меняться в зависимости от действий игрока. Несмотря на то, что перед релизом игры проходят масштабное тестирование, только использование АОМ позволяет сгладить эффекты неожиданности, которые тестировщики «не догадались» проверить, тем самым игра будет реагировать и на неожиданные действия гладко и непрерывно.
С целью обсуждения компьютерных игр, как предмета где АОМ имеет прикладное значение, имеет смысл выделить основные жанры таких игр. Речь идет естественно о видео-играх с уникальным «геймплеем», то есть набором правил, персонажей и сценарием. В меньшей степени это связано с компьютерной реализацией классических игр вроде шахмат, карточных игр и прочее, где научный и исследовательский интерес в первую очередь концентрируется в проблемах поиска оптимальных и эффективных стратегий (Теория игр).
Выделяют следующие основные классы игр:
- Активная игра представляет собой наиболее популярный жанр, в котором игрок должен уничтожить (или иным образом победить) всех своих оппонентов (Half-Life 2, Halo)
- Стратегия позволяет игроку контролировать большие массивы игровых персонажей в сражениях против других игроков или компьютера. Игроки не имеют прямого контроля над своими армиями, но могут управлять ими посредством приказов, команд, которые далее выполняются агентными персонажами (Age of Empires, Command & Conquer)
- Ролевые игры представляют собой смешение стилей квеста, стратегии, баталий. Игроки выполняют различные действия через взаимодействие с виртуальными персонажами, природой и другими игроками с целью получения и использования информации.
- Спортивные игры. Наибольшая сложность здесь состоит в создании соперников и партнеров по командам, способных поддерживать сложность игры на заданном уровне.
- MMOG (massively multiplayer on-line game) подразумевали прийти на смену АОМ играм, так как население персонажей должно было полностью состоять из других игроков, управляемых напрямую людьми. Однако даже в этом сегменте есть ряд задач, для которых использование АОМ рационально (например, выполнение ролей, которые игрок не хочет выполнять).
Первые компьютерные игры использовали довольно простые и обобщенные алгоритмы поведения игровых персонажей: например, в стратегических играх перемещение виртуальных персонажей происходило по заданным заранее путям и сценариям. Однако в дальнейшем разработчики обратили внимание и на более реалистичные подходы к симуляции этого процесса.
Система планирования путей А*, например, разделяла пространство игры на участки и задавала для каждого из них стоимость преодоления (например через трудозатраты), таким образом алгоритм выбирал наиболее эффективный маршрут. Дальнейшая доработка алгоритма позволила внедрить его и в 3D, а также добавить переменные, связанные с вероятностью нападения.
Еще одно направление внедрения АОМ-механизмов связано с предложением изменения статусов агентов в играх. FSM (finite state mechanism) позволяет учитывать различные состояния персонажей, определять правила переходя между ними, а также выбор наилучшего действия. Типичная "стрелялка" подразумевает 4 основных состояния агента (см. илл.2): Преследование, Атака, Бегство, Исследование.
Использование FSM несмотря на многие преимущества, обладает и недостатком: данный механизм должен наперед угадывать все возможные состояния для адекватной реакции на действия игрока. Многие так называемые «баги» и «пасхальные яйца» явились результатом хитроумных действий игроков, под которые у создателей не было предусмотрено адекватного ответа. С другой стороны, чем больше состояний внедряется в FSM тем гораздо большее число связей между ними должно быть предусмотрено. Это означает, что со временем FSM теряет свою актуальность для разработки новых, сложных, интересных и реалистичных игр.
Другой подход состоит в создании набора правил, которые диктуют агентам различные стили поведения. Системы, основанные на правилах, также получили широкое распространение в играх для контроля NPC (Non-player character), в основном в ролевых играх. Правило определяют поведение персонажей в зависимости от наступления тех или иных событий, чаще всего связанных с поведением основного персонажа – игрока. Большое преимущество такого подхода состоит в том, что набор правил гораздо проще описать, а также редактировать в последствие. Использование специальных языков (API) позволяет уже пользователям модифицировать правила «под себя» и делать так называемые add-on-ы (пользовательские надстройки) к играм.
Как и в случае с FSM использование правил ограничено способностью разработчиков создавать большие наборы правил и учитывать весь набор потенциальных ситуаций.
Один из первых ярких успехов АОМ в компьютерных играх связан с выходом игры Sims в 2000 году. Персонажи этой игры вели в себя согласно целому ряду контролирующих принципов и мотиваций: чувство голода, любви и дружбы, усталость, потребность в собственном пространстве и тишине, необходимость найти предметы и так далее. Персонажи также умели создавать социальные связи между собой в зависимости от собственных характеристик и времени, проведенного вместе.
Одними из наиболее интересных шагов в развитии АОМ в играх были попытки внедрить чувство сенсорики и памяти в поведение персонажей. Игроки ожидают, что другие персонажи в игре будут испытывать те же самые проблемы, что и люди в реальной жизни, например, неспособность видеть через стены. В игре Thief: The Dark Project от игроков требовалось перемещаться как можно тише, чтобы не потревожить других персонажей и не привлечь к себе внимание. Соответственно разработчики создали модель, согласно которой персонажи не могли, например, распознать игрока, если он стоял в тени или перемешался «на цыпочках».
В игре Fable (2004) разработчики внедрили эффект памяти в игровой процесс: в зависимости от действий игрока, другие персонажи меняли свое отношение к нему и поведение и сохраняли его на протяжении последующих ступеней игры. Ощущение долгосрочных последовательности в определенной степени увеличило натуральность ощущений игроков от игрового процесса.
«Серьезные» игры и академические исследования
Особым видом компьютерных игр являются «Серьезные» или обучающие игры. Так в 2002 году основываясь на успехе игры Rainbow 6, американская армия заказала специальную обучающую игру, в которой игроки могли почувствовать атмосферу армейской жизни и тем самом повысить успехи рекрутинговой кампании. Примеров таких игр великое множество, все они в той или иной степени призваны моделировать в игровой форме те или иные ситуации из реальной жизни.
Автор данной статьи участвовал а разработке Дублинским Тринити Колледжем в создании Проактивного Устойчивого Агента (Proactive persistent Agent, PPA) – архитектуры контроля за второстепенными персонажами. Основное достижение команды PPA состоит в возможности симулировать поведение персонажей в довольно широком круге ситуаций. Основываясь на моделях персональных качеств, эмоций, отношений, разработчикам удалось смоделировать поведение персонажей и в ситуациях, которые, как первоначально казалось, находятся за пределами взаимодействий между персонажами.
Одним из наиболее интересных решений в создании «серьезных игр» является модуль “PMFserv”? разработанный в Университете Пенсильвании. Данный модуль основан на включении в модель АОМ когнитивных и поведенческих концепций. Несмотря на сложность их количественного измерения, создателям модуля удалось создать набор обоснованных моделей, основанных на биологических, культурных и эмоциальных началах. PMFserv также позволяет смоделировать взаимодействия между персонажами, а также определять выбор конкретных действий в различных ситуациях.
Наиболее яркий пример использования системы PMFserv – падение американского боевого вертолета в Могадишо в 1993 году. Внедрение технологии в игру Unreal Tournament позволило провести обучающую симуляцию для американского спецназа по спасению экипажа и остатков вертолета.
Дальнейшее развитие
Усложнение АОМ-моделей и повышение спроса со стороны киноиндустрии и производителей компьютерной игр в будущем привел к повышению степени детализации и качества симуляции в компьютерной графике. Прежде «запретные» идеи об автоматизации мимики, жестикуляции и других, казалось бы, «актерских» действий, уже получают первые этапы реализации посредством АОМ. Еще один путь развития АОМ специфичных игр – это внедрение способности игровыми персонажами развиваться, обучаться и использовать память.
Оригинал статьи: Agent Based Modeling in Computer Graphics and Games // Braian Mac Namee, Dublin Institute of Technology