Как вдохнуть жизнь в неигровых персонажей: Выводы из психологической атрибуции

Разработка игр | |

Моя специализация – это «восприятие движения», т.е. то, как человеческий мозг извлекает смысл из анимированных сцен. Я психолог, заинтересованный в спонтанных объяснениях, которые наш разум дает движениям, и тем, как он использует эти объяснения, чтобы генерировать связные представления о причинах и намерениях. Поэтому мне бы хотелось обратить внимание на одно важное дополнение к видеоигровому ИИ (хоть я и не специалист в этой области): на то, как в создании NPC может помочь когнитивная психология. Попутно я буду отстаивать идею минимализма в создании анимированных персонажей, и она важна по двум причинам. Во-первых, поведенческий реализм важнее реализма внешнего вида, и во-вторых, мозг склонен урезать сложность визуальных сцен до небольшого количества важных информационных элементов. То есть, обладая знанием, какие именно элементы мозг извлекает из визуальных сцен, разработчики ИИ могут использовать для создания живых и интересных NPC психологические ресурсы, попутно экономя ресурсы вычислительные. Впрочем, эта тенденция уже видна и выражается в виде буквально нашествия неантагонистических NPC, которых я называю компаньонами. Они иллюстрируют, как можно использовать паттерны движения, чтобы создать иллюзию жизни и разумности.

breathing-life-yorda

Кто такие компаньоны?

Долгое время NPC были просто мишенями для стрельбы. Их интеллект усиливался лишь для того, чтобы вам было труднее в них попасть. Однако в течение последних 10 лет в видеоиграх стали появляться NPC совершенно другого типа: компаньоны. Они нужны не для того, чтобы проверить ваши навыки стрельбы – наоборот, мы проникаемся к ним симпатией. Компаньоны, как правило, служат двум целям. Есть компаньоны вроде Вергилия, который вел Данте через Ад и Чистилище – такие NPC служат в качестве гидов и наставников. А есть компаньоны вроде Эвридики из греческой мифологии, которая ждала, когда Орфей спасет ее из царства Аида – такие NPC мешают продвижению, но добавляют в историю сильную эмоциональную составляющую. К примеру, это делает Эшли из Resident Evil 4. Это хрупкое, даже раздражающее существо, за которым нужно постоянно присматривать. Присутствие этого персонажа делает игрока более уязвимым, но в то же время усиливает драматическое напряжение. Элизабет из Bioshock Infinite – это компаньон типа Вергилия, которая по большей части исполняет роль нарративного инструмента. Во время сражений ее почти не видно, но когда становится мирно, она вновь появляется в кадре. Почти как пес из Fable, она изучает окружение и может подсказать, где находятся полезные предметы. Впрочем, тот факт, что игроку не нужно заботиться об Элизабет, может уменьшить эмоциональную связь между ними. Но Элизабет – это живой и подвижный персонаж со своим взглядом на мир. Она интересна как автономное существо, которое постоянно находится у вас перед глазами. А вот Йорда из Ico – это нечто среднее. Она поддерживает вас, но в то же время хрупка и нуждается в вашей защите.

Что нужно, чтобы создать сильную эмоциональную связь

Качества игровых персонажей часто рассматриваются через призму их схожести с человеком, а не через сложность их поведения. Возможно, вы знаете, что в робототехнике есть загадочный эффект, который японский ученый Масахиро Мори (Masahiro Mori) назвал «зловещей долиной». Его суть в том, что когда андроид становится слишком реалистичным, люди начинают чувствовать к нему неприязнь или даже отвращение. Чем ближе сходство с человеком, тем сильнее люди склонны фокусироваться на чертах, отличающих робота от человека. Кроме того, Мори отмечает, что в эффекте зловещей долины важную роль играют движения. Андроид может казаться отталкивающим, потому что не может воспроизвести плавность естественных движений. Он может иметь реалистичную кожу, но ему будет не доставать изящности. У робота нет мяса и костей, поэтому он не может воспользоваться жесткостью и упругостью биологической мышечной системы.

Однако вы можете простить неуклюжесть роботу, который не претендует на реалистичность человеческих движений. Взять, к примеру, пылесос Roomba – это довольно незамысловатый робот, однако эта незамысловатость не исключает выразительности и даже эмоциональности. Да, это просто кусок мягкого пластика. Да, он странно выглядит. Да, спектр его действий очень ограничен. Но мы по-прежнему можем импонировать тому, как он движется, его автономности и, возможно, даже чувству упрямства, с которым он чистит ваш пол.

Если пойти еще дальше в упрощении внешнего вида, можно представить обычную точку, двигающуюся на экране. Что нужно, чтобы эта точка начала казаться живой? Есть два вида специалистов, которые хотят ответить на этот вопрос – это аниматоры и когнитивные психологи. Те и другие знают о базовых паттернах движения, способных создать иллюзию жизни. Спонтанная связь, возникающая при наблюдении за тем, что выглядит живым, слабо зависит от внешнего вида. Гораздо больше на ее возникновение влияет поведенческий реализм, а он, в свою очередь, зависит от паттернов движения, распознаваемых мозгом.

Далее я попробую рассмотреть несколько важных компонентов поведенческого реализма. Каждый из них будет представлен в виде вопроса, который разработчик должен задать себе при наблюдении за поведением анимированного объекта, чтобы затем наделить его правильными психологическими чертами.

Оно живое?

Зрительная система – это изумительный механизм. Она рисует нам различные выводы об окружающем нас мире. Она может сказать вам, как далеко находится объект, основываясь на разнице между картинками из правого и левого глаз. Она может заполнить недостающие фрагменты, если объект виден только частично. Она может приблизительно подсказать, сколько конфет лежит в банке или насколько велика кружка с пивом, чтобы вы могли соответствующим образом за нее ухватиться. Кроме того, она способна считывать механические свойства в динамической сцене. Если вы видите столкновение двух объектов, то способны распознать причинно-следственную связь между объектом, который спровоцировал столкновение, и объектом, который от него пострадал. Как писал шотландский философ Дэвид Юм, в чувственном опыте нет ничего, что может сигнализировать о причинно-следственной связи. Выяснение причин – это вопрос ума, который собирает воедино кусочки сенсорной информации, создавая из них целостный объект восприятия.

Кроме того, мы знаем, что движения объектов диктуются определенными ограничениями. Без опоры объект будет падать, из-за трения движущийся объект будет замедляться, при отсутствии помех объект будет двигаться строго по прямой. Однако явные нарушения этих ограничений – к примеру, если объект движется сам по себе или внезапно ускоряется – говорят нашему мозгу, что движение этих объектов вызвано какими-то ненаблюдаемыми причинами. Многочисленные эксперименты в области психологии показывают, что наблюдатели, сталкиваясь с подобными аномалиями, интерпретируют их не так, как если бы это был инертный объект. Они начинают воспринимать его как нечто живое и способное управлять своими движениями.

То есть, чтобы создать жизнь, необязательно наделять персонажа знакомой мордашкой или одевать его в красивую звериную шкуру. Жизнь можно вдохнуть в простую геометрическую фигуру – нужно лишь заставить ее правильно двигаться. И тут можно выделить два основных момента:

breathing-life-spontaneity

Спонтанность – это склонность начинать движение и спонтанно менять скорость и направление движения (даже без взаимодействия с внешним объектом). Чем спонтанней объект, тем сильнее иллюзия жизни.

breathing-life-directeness

Направленность – это постоянство траектории в течение определенного периода времени. Чем чаще объект меняет скорость и направление движения, тем слабее иллюзия того, что он способен управлять своими движениями.

То есть спонтанность определяет общую живость движения, а направленность – то, может ли объект управлять своими движениями. Движение без спонтанности кажется механическим. Движение без направленности кажется случайным и хаотическим. Поэтому, если вы хотите, чтобы объект казался живым, между двумя этими параметрами нужно найти золотую середину. То есть он, с одной стороны, должен быть подвижным, а с другой, иметь над своими движениями определенный контроль, чтобы они не выглядели случайными. Ведь жизнь – это динамическая и изменчивая структура, существующая в относительно статичном мире, верно? В сущности, спонтанность представляет собой искру жизни, а направленность – это мимолетное движение, представляющее собой жест.

breathing-life-mario

Это можно проиллюстрировать парой примеров из Super Mario. К примеру, черепахи Купа двигаются строго напрямую, пока не врежутся в препятствие, после чего начинают двигаться в обратном направлении. Хотя их движение начинается спонтанно, дальнейшие изменения в траектории зависят от взаимодействия с окружением. У них плохо и со спонтанностью, и с направленностью, потому что их движение практически полностью ограничено землей, по которой они передвигаются. В результате поведение Купа получается довольно глупым и предсказуемым. У черепах Паратрупа поведение интересней: они двигаются не только по земле, поэтому ограничений в передвижении у них меньше, в результате чего они слегка вибрируют. Блуперы еще интересней. Они хороши и в спонтанности, поскольку часто меняют направление, и в направленности, поскольку перед сменой направления несколько секунд двигаются по одной и той же траектории.

У него есть какие-то намерения?

Животные автономны, то есть им не нужен внешний источник питания, чтобы двигаться. Но автономность организма еще не говорит о том, что он может генерировать реалистичную картину окружающего мира и соответствующим образом подстраивать свое поведение. Подумайте о мухе, летающей по комнате. Она, вне всяких сомнений, кажется живой, однако осмысленного намерения во всех этих движениях практически нет. Большинство NPC в видеоиграх сродни мухам: они бродят туда-сюда, пока не заметят что-то, привлекшее их ограниченное внимание. Самый очевидный пример – зомби. Глядя на их поведение, наивные мы решаем, что эти существа не шибко умны. Однако они все же обладают как минимум одним намерением: гнаться за игроком. Такое «поведение гончей» – это базис игрового ИИ. С этого момента игрок начинает воспринимать NPC как персонажа, имеющего определенные намерения.

breathing-life-zombie

Другими словами, отсюда уже можно говорить о целенаправленном поведении. В предыдущем разделе мы упоминали лишь подсказки, генерируемые движением – вроде спонтанной смены направления. Однако при создании NPC, обладающего явными целями и намерениями, нужно также рассматривать его взаимоотношения с окружающими объектами и событиями. Особенно важный момент – это способность персонажа реагировать на события, возникающие в окружении (назовем это реагируемостью). Более того, сам игрок тоже должен быть в состоянии замечать события, возникающие при взаимодействии одних объектов с другими.

breathing-life-contingency

Реагируемость – это свойство реагировать на события. Если речь о физических взаимодействиях с участием физических сил, мы говорим о механической реагируемости. Если речь о целях и намерениях, а причинное событие происходит на расстоянии, то мы говорим о социальной реагируемости.

Для примера давайте вспомним Йорду из Ico, одну из самых изумительных NPC за всю историю видеоигр. Этот персонаж отлично передает социальное присутствие при помощи нескольких интересных реакций. Она поворачивает свою голову в сторону Ико, она поворачивает свою голову в направлении угрозы, она немного отступает назад, если Ико подходит к ней слишком близко. Нужно отметить, правда, что она все же обладает некоторой автономией. Ее поведение не всегда зависит от внешних сигналов. В некоторых случаях она вообще куда-то уходит. Это очень важное свойство, если вы хотите передать иллюзию того, что ваш компаньон свободен и самодостаточен.

Важный аспект реагируемости – это временный контакт, т.е. короткая задержка между двумя событиями (к примеру, между вашим действием и реакцией NPC). Зрительная система человека очень чувствительна к моментам, когда в непрерывности какого-либо действия возникает разрыв. К примеру, представьте сцену с участием двух объектов. Один из них движется в сторону другого, пока они не столкнутся. Второй объект начинает двигаться сразу после того, как в него врезается первый объект. При такой подаче очевидно, что первый объект дал толчок второму объекту. И тут можно поиграть с причинно-следственной связью – давайте добавим задержку в момент столкновения двух объектов. Задержки в 50 миллисекунд будет достаточно, чтобы разорвать ощущение причинно-следственной связи, то есть вы будете видеть два не связанных между собой движения. Таким образом, временный контакт служит тому, чтобы игрок мог определить реагируемость NPC или даже уровень его интеллекта.

Реагируемость – лишь один из аспектов целенаправленного поведения. Представьте точку, двигающуюся по экрану. Она движется в определенном направлении, пока какая-то невидимая сила – скажем, порыв ветра – не отталкивает ее обратно. Представьте, что через какое-то время точка разворачивается и снова летит в изначальном направлении, но ветер снова ее отталкивает… И так несколько раз. Что можно подумать, наблюдая за этой картиной? Возможно, что точка – упрямая, глупая, смелая или просто не замечает своей неизбежной судьбы. Все эти описания входят в разряд интуитивных принципов, которые психологи иногда называют «фолк-психологией». Это понятие, обозначающее цели, мотивы, намерения и т.д., то есть причины, по которым кто-то делает что-то. Наблюдая за точкой и за постоянностью ее траектории, вы делаете вывод, что она «хочет» достичь определенного места. Учтя паттерны ускорения, замедления и отклонения от основного направления, вы можете сделать вывод о физических ограничениях, с которыми она сталкивается. И вы также можете сделать определенные выводы о чертах ее личности, которые добавляют еще один слой в объяснение наблюдаемого поведения.

Помимо намерений и личностных черт вы можете задаться вопросом, ПОЧЕМУ точка хочет достичь другой части экрана – у людей это, как правило, обязательный шаг в процессе присвоения чему-либо или кому-либо психологических характеристик (психологи называют это «психологической атрибуцией»). Трудно рассуждать о целенаправленном поведении, не спрашивая о мотивах, лежащих в основе этого поведения. Примером здесь может послужить новаторский эксперимент, поставленный для изучения психологической атрибуции Фрицем Хайдером и Марианной Зиммель в 1944 году. В этом эксперименте люди смотрели короткий фильм с участием простых геометрических фигур (посмотреть его можно тут), но вместо простого описания кинематографических характеристик сцены они начинали придумывать увиденному сложные сценарии. Они говорили, к примеру, что маленький треугольник спасает свою подругу (кружок) от хулигана (большой треугольник). Такой нарратив представляет собой концентрат намерений и мотивов, элегантно упакованный в цельную последовательность событий. Для человека это естественный способ восприятия последовательности движений, которые кажутся целенаправленными и зависящими друг от друга.

Еще один аспект – это рациональные мотивы. Принцип рациональности гласит, что если у объекта есть намерения, то он использует для достижения цели рациональные средства. Видя объект, который подстраивает свое поведение под внешние ограничения, вы можете сделать вывод, что он обладает способностью выбирать определенные стратегии для достижения цели. К примеру, если целью одного объекта является добраться до другого объекта, и на его пути нет никаких препятствий, то разумнее всего двигаться строго по прямой. С точки зрения наблюдателя поведение объекта кажется более осмысленным, если соответствует принципу рациональности.

breathing-life-rationality

Рациональность – склонность использовать для достижения цели наиболее эффективные средства, считаясь с ограничениями конкретной ситуации.

В видеоигровом ИИ рациональное поведение внедрить гораздо сложнее, чем примитивное «поведение гончей». Однако взяв на вооружение принципы психологической атрибуции, мы можем перенести критические умозаключения с вычислительных мощностей на мозг игрока. Интеллект NPC не должен быть в алгоритме. Вместо этого пробелы в поведении ИИ будет заполнять сам игрок – нужно лишь правильно реализовать контекстные подсказки. К примеру, подсказки для интерпретации некоторых движений как целенаправленных действий. Когда Эшли в Resident Evil 4 прячется, это кажется разумным. Однако это лишь заранее прописанное поведение, которое активируется при появлении врагов. В самом алгоритме рациональность не прописана. Рациональность считывается самим игроком, который обладает знаниями о том, что обычно люди делают в такой ситуации.

breathing-life-ashley

Может ли оно предугадывать ваши намерения?

Еще один слой в психологическую атрибуцию добавляет социальное поведение. Томас был один, но внезапно в комнату зашел кто-то еще. Как отреагирует Томас? Это зависит от его мотивов и социальных навыков. Если Томас является, скажем, пауком, то вряд ли проявит какой-либо интерес к своему компаньону и продолжит заниматься своими делами (или, может, попытается его съесть!). Но если Томас обладает человеческими социальными навыками, другой человек в комнате – это совсем другое дело. С другим человеком можно взаимодействовать, общаться, что-то совместно планировать, спорить, драться… Кем-то другим можете быть вы сами.

Когда мы говорим о социальных взаимодействиях, то рассматриваем способность объекта действовать не только относительно своих целей, но и относительно целей других объектов. Именно это и означает слово «социальный»: согласование целей в переговорном пространстве. Представьте, к примеру, квадрат или треугольник. Треугольник пытается взобраться по склону – или, по крайней мере, вы делаете такой вывод, исходя из его движений и контекста, в котором они происходят. Квадрат находится ниже треугольника и движется в том же направлении. Квадрат как бы подталкивает треугольник, чтобы тот достиг вершины склона. Наблюдая за этой сценой, вы можете сделать вывод, что квадрат хочет помочь треугольнику. Если разложить это на последовательность когнитивных операций: 1) вы делаете вывод, что треугольник хочет достичь вершины, 2) вы делаете вывод, что квадрат хочет, чтобы треугольник достиг вершины, 3) вы интерпретируете совпадение целей квадрата и треугольника как «просоциальное поведение» (т.е. поведение, при котором один человек приносит пользу другому) и 4) вы заключаете, что треугольник и квадрат – друзья. Ряд экспериментов показал, что младенцы в возрасте шести месяцев чувствительны к альтруистичным действиям. Они, как правило, предпочитают объект, который «помогает» другому подняться по склону, а не тот, что находится вверху и «мешает» другому объекту подниматься.

breathing-life-goal-alignment

Совпадение целей – ситуация, при которой цель одного объекта соответствует цели другого объекта. Если цели объектов совпадают, объекты будет рассматриваться как помогающие друг другу. Если цели объектов противоположны, объекты будут рассматриваться как мешающие друг другу. Если цели объектов не совпадают, они будут рассматриваться как равнодушные друг к другу.

Реализация настоящего социального поведения у NPC – это сложная задача. Игровому ИИ нужно будет оценивать и предсказывать текущую цель игрока, чтобы подстроить под него поведение NPC. Чтобы генерировать модель личности и стиля игрока, разработчикам нужно будет использовать различные показатели: к примеру, его скорость, предпочтение определенным тактикам или решения, принятые в схожих обстоятельствах. Если вкратце, игровой ИИ должен будет предугадывать действия игрока – во многом как это делают люди, когда взаимодействуют друг с другом. Разумеется, разработчики могут воспользоваться парой трюков, чтобы создать видимость того, что NPC пытается предугадывать намерения игрока. Игра «знает» цель игрока, если это единственная цель, имеющаяся в игре. Игра «знает» цель игрока, к примеру, если ему нужно найти предмет, чтобы открыть портал, и это единственное, что он может делать в данный момент. Таким образом, поведение NPC можно подрегулировать под цель игрока. Именно это делает Йорда, направляя внимание Ико в сторону подсказок для решения паззлов. Указательный жест является примером соответствия целей. Он указывает на возможность смотреть с позиции другого объекта и влиять на его поведение при помощи способа, имеющего отношение к его цели.

Это все?

Я надеюсь, мне удалось передать ощущение, что при создании интересных компаньонов нужно учитывать определенные правила. Эти правила связаны с процессом психологической атрибуции – процессом, через который наш мозг воссоздает структуру социального мира. Мира целей, намерений, стремлений, эмоций, убеждений и настроений. Разработчики интуитивно уже используют то, что мозг считает убедительными причинно-следственными связями. Однако принципы, изложенные в этой статье, могут помочь в улучшении поведения NPC, причем с небольшими затратами. Я попытался дать краткое описание этой концепции и надеюсь, что это вдохнет искру жизни в область, которая заслуживает того, чтобы ею стали заниматься более активно. И стоит отметить, что я затронул лишь самую верхушку айсберга. Что насчет эмоций и личности? Как передать их через движение? А эмпатия? Как эмпатические отношения развиваются с течением времени? Как это связано с процессом психологической атрибуции? Здесь еще достаточно плодородной почвы, ждущей, пока мы засеем ее семенами жизни.

Владимир FrostBite Хохлов frostbite@progamer.ru

Поделиться

Обсудить