AI-НПС · что меняется, когда персонажи думают

AI-НПС: как работают неигровые персонажи под управлением AI (и как создать своего)

Создайте собственного AI-НПС

AI-НПС умеют говорить, помнить и реагировать. Узнайте, как работают AI-НПС, затем создайте одного в одном предложении и поместите его в проходимый 3D-мир.

✦Игра
Создайте AI-НПС

AI-НПС — это неигровой персонаж, чьи диалоги и намерения создаёт языковая модель во время выполнения, тогда как движение и столкновения остаются на детерминированном пути. AI определяет, что персонаж говорит и чего хочет; движок определяет, куда идёт тело. В Neta Studio вы описываете персонажа одним предложением, Agent Sprite Forge выдаёт низкополигональный компонент, и этот компонент попадает в проходимый 3D-мир, построенный на Three.js.

Это разделение важно, потому что показывает, где живут ошибки. Когда НПС проходит сквозь стену, виновата навигация. Когда НПС оскорбляет игрока без причины, виноват контракт промпта. Эта страница посвящена второй категории: как системы AI-НПС генерируют реплики, удерживают параметры личности, помнят сессию и терпят неудачу, когда модель планирует, а движок не может это выполнить.

Краткий ответ: что такое AI-НПС на самом деле

Разберём фразу. «AI» здесь означает, что текст и намерение высокого уровня порождает модель. «НПС» означает контроллер персонажа, коллайдер и машину состояний анимации. Оба работают на разных часах: модель отвечает за сотни миллисекунд, контроллер обновляется каждый кадр на частоте 60 Гц. Они общаются через узкий интерфейс — обычно небольшой объект JSON, который контроллер опрашивает.

На практике интерфейс выглядит так: модель возвращает {line, intent, target}. Контроллер читает намерение, проверяет, достижима ли цель на навмеше, и либо проигрывает реплику с подходящей анимацией, либо подставляет резервную реплику. Если объединить эти два слоя, получатся НПС, которые телепортируются, скользят или замирают посреди фразы, пока модель заканчивает генерацию.

Итак, рабочее определение: AI-НПС — это НПС, чья речь и выбор следующего действия исходят от генеративной модели, ограниченной фиксированным набором допустимых намерений, которые движок действительно может выполнить.

  • Слой диалогаВызов модели. Задержка 200–900 мс. Может дать сбой, упереться в ограничение частоты запросов или вернуть некорректный JSON.
  • Слой намеренийКороткое перечисление: приветствие, следование, бегство, торговля, атака, бездействие. Всё, что выходит за его пределы, отбрасывается.
  • Слой движенияПрокладка маршрутов по навмешу, коллайдер, смешивание анимаций. Работает каждый кадр. Модель не вызывает.
  • Слой памятиХранилище «ключ — значение» с фактами, которые НПС разрешено вспоминать, ограниченное бюджетом токенов.

НПС на правилах против НПС под управлением AI

НПС на правилах выбирает из таблицы. Вы вручную пишете состояния, переходы и реплики. Это точно, дёшево и воспроизводимо: один и тот же ввод всегда даёт один и тот же вывод, что делает его тривиальным для тестирования и отладки. Потолок — ваше время на написание, а режим отказа — игрок, который вводит что-то, чего вы не предусмотрели, и получает пустой взгляд.

НПС под управлением AI генерирует реплику. Вы пишете контракт и набор допустимых намерений, а модель заполняет пространство между ними. Она изящно обрабатывает непредвиденный ввод, но один и тот же ввод может дать разный вывод в двух запусках, что ломает наивные тесты воспроизведения. Стоимость растёт с длиной разговора, а не с числом персонажей, поэтому болтливая сцена стоит дороже молчаливой.

Ни один из них не лучше строго. Честное сравнение:

АспектНПС на правилахНПС под управлением AI
Источник поведенияНаписанная вручную машина состояний и таблица репликВывод модели, ограниченный перечислением намерений
ВоспроизводимостьБит в бит при каждом запускеНедетерминированный, если не зафиксировать зерно и температуру
Форма затратФиксированная на этапе сборкиЗа токен во время выполнения, растёт с длиной разговора
ОтлаживаемостьОтследите переход; журнал — это и есть кодЛогируйте промпт, сырой ответ, разобранное намерение и резервный вариант отдельно
Режим отказаПустой ответ или неверная веткаРеплика вне контракта, всплеск задержки или неразбираемый JSON
Трудозатраты на написаниеМного на реплику, мало на состояниеМало на реплику, много на ограничение

Динамичный диалог

Дерево диалога — это граф с написанными вручную узлами. Автор контролирует каждое слово, поэтому квесты, контракты и сюжетно важные откровения до сих пор используют деревья. Ввод игрока сопоставляется с одной из N ветвей; всё, что выходит за пределы N, не обрабатывается. Деревья растут линейно вместе с контентом: удвоение разговора удваивает объём написания.

Сгенерированный диалог отличается по сути, а не только по объёму. Модель читает настоящую фразу игрока плюс контекст, который вы подаёте, — имя НПС, текущую цель, три последних обмена, — и пишет подходящий ответ. Она может справиться с вопросом, которого вы никогда не предвидели. Она также может справиться с этим вопросом плохо, уверенно и в образе, что хуже, чем просто неудача.

Где дерево всё ещё уместно: любая реплика, несущая состояние, от которого зависит остальная игра. «Код от ворот — 4417». Не позволяйте модели это придумывать. Надёжный шаблон — гибрид: дерево владеет фактами и точками ветвления, модель владеет формулировками и светской болтовнёй. В Neta Studio, когда вы создаёте AI-НПС из описания, сгенерированный компонент предоставляет перечисление намерений; факты, которые вы хотите гарантировать, попадают в компонент как фиксированные строки, а не в промпт как инструкции.

Форма промпта, которая выдерживает контакт с игроками

Держите системный промпт примерно до 300 токенов. Роль, тон, три ограничения и схема вывода. Всё остальное — инвентарь, состояние квеста, факты мира — идёт в отдельный блок контекста, который движок подаёт каждый ход. Если поместить весь мир в системный промпт, задержка вырастет, и модель начнёт игнорировать последующие инструкции.

Всегда запрашивайте структурированный вывод. Просите объект JSON с полями line и intent. Разбирайте его. Если разбор не удался, отбросьте реплику и проиграйте резервную. Никогда не выводите сырой текст модели прямо в окно диалога без проверки длины; вышедшая из-под контроля генерация выдаст монолог на 400 слов, который сломает ваш интерфейс.

Процедурная личность

Личность — это не абзац предыстории. Абзац предыстории — это обучающие данные для воображения модели, и он деградирует с длиной: после нескольких сотен слов модель начинает воспринимать его как антураж и дрейфует к обобщённой услужливости. Вместо этого относитесь к личности как к трём-четырём параметрам, каждый из которых меняет наблюдаемое поведение.

Цель — это то, чего НПС хочет прямо сейчас. Тон — то, как он говорит: отрывисто, официально, насмешливо. Ограничение — то, чего он не будет делать: не будет лгать, не будет говорить о войне, не будет торговать. Эти три помещаются в одну строку промпта и проверяются по отдельности. Добавляйте четвёртый, только если можете описать, что меняется при его варьировании.

В Neta Studio Agent Sprite Forge принимает описание и возвращает низкополигональный компонент, где эти параметры выставлены как поля на компоненте. Вы можете изменить цель, не трогая промпт модели, и можете клонировать компонент, изменив только тон, чтобы получить второго НПС. Два НПС с одной и той же сеткой и разным тоном читаются как разные персонажи в сцене, что дешевле, чем писать два спрайта.

  • ЦельОдно предложение в настоящем времени. «Заставить игрока покинуть святилище».
  • ТонДва-четыре прилагательных. «Отрывистый, архаичный, нетерпеливый».
  • ОграничениеЗапрещающие правила. «Никогда не называет реку. Никогда не принимает предмет».
  • Граница знанийТо, на что НПС может ссылаться. Всё за её пределами должно давать уклонение в образе, а не выдумку.

Адаптивное поведение

Память внутри сессии дёшева и эффективна. Вы держите скользящий буфер последних N обменов плюс небольшое хранилище «ключ — значение» с фактами, которые сообщили НПС. N от 8 до 12 подходит для большинства сцен; дальше промпт растёт быстрее терпения игрока, и старые ходы всё равно перестают влиять на вывод.

Что НПС помнит надёжно: названное имя игрока, был ли конкретный предмет отдан или отвергнут, закончилось ли предыдущее взаимодействие враждебностью и последнюю названную цель. Что он не помнит надёжно: точные формулировки двадцати ходов назад, факты, которые никогда не записывались в хранилище «ключ — значение», и всё, что переживает перезагрузку страницы, если вы это не сохраняете. Память, живущая только в промпте, — это память, которая испаряется.

Реакция — вторая половина. Движок следит за изменениями состояния — падение здоровья, передача предмета, пересечение порога расстояния — и подаёт событие в контекст НПС. Затем модель выбирает намерение из перечисления. Вот почему существует перечисление намерений: модель предлагает, движок располагает. НПС, который «решает» атаковать, всё равно должен пройти проверку достижимости. Если она не проходит, он проигрывает предупреждающую реплику и остаётся на месте.

Сколько на самом деле стоит сохранение

Запись памяти в хранилище — это одна строка кода и одно решение о схеме. Держите ключи короткими и плоскими: playerName, gaveItem, hostility. Вложенные объекты раздуваются и гниют. Версионируйте схему с самого начала; позднее переименование молча отбросит старые сохранения, если вы не напишете миграцию.

Между сессиями не пытайтесь воспроизвести всю историю разговора в контексте. Это дорого и делает НПС повторяющимся. Сохраняйте сводку — три-пять фактов — и начинайте с чистого листа, не подгружая расшифровку.

Создайте AI-НПС в одном предложении

Конвейер в Neta Studio намеренно короткий. Вы пишете описание. Agent Sprite Forge генерирует низкополигональный компонент с сеткой, палитрой и режимом поведения. Вы помещаете его в проходимую сцену, построенную в 3D-конструкторе игр, и он появляется с уже подключёнными столкновениями, навигацией и точкой подключения диалога.

Работающее описание конкретно в отношении роли, тона и одного ограничения. «Подозрительный смотритель маяка, отрывистый, с северным говорком, который не станет обсуждать кораблекрушение». Это даёт компонент, чей промпт включает ровно эти три параметра. Что-то вроде «крутой персонаж» даёт обобщённый результат, потому что ограничивать нечего.

Проверить результат можно в двух местах: The Cyclops' Island — это длинная проходимая сцена, и Mini World — меньше и быстрее для итераций. Обе работают в браузере на Three.js. Поместите компонент, подойдите к нему, введите реплику и прочитайте ответ. Если тон не тот, отредактируйте поле тона на компоненте, а не переписывайте промпт с нуля.

1

01

Напишите одно предложение: роль, тон, одно ограничение.

2

02

Пропустите его через Agent Sprite Forge, чтобы сгенерировать низкополигональный компонент.

3

03

Откройте Mini World или The Cyclops' Island в 3D-конструкторе игр.

4

04

Поместите компонент в сцену; он появляется со столкновениями и точкой подключения диалога.

5

05

Подойдите и введите реплику. Прочитайте ответ и выбранное им намерение.

6

06

Отредактируйте тон или ограничение на компоненте, а не в системном промпте.

7

07

Проверьте путь отказа: введите что-то не по теме и убедитесь, что срабатывает резервный вариант.

8

08

Перенесите компонент в большую сцену, когда он будет вести себя правильно.

Чего AI-НПС всё ещё не умеют

Долгосрочное планирование не работает. Модель, которую просят спланировать тридцать шагов по сцене, выдаст правдоподобный план, а к шестому шагу потеряет нить, потому что ничто не удерживает состояние между шагами, кроме промпта, а промпт становится длиннее и шумнее. Если вам нужен многоэтапный квест, напишите этапы сами и позвольте модели заполнять диалоги внутри каждого этапа. Не просите её удерживать всю арку.

По-настоящему открытые цели тоже не работают. «Делай что хочешь» даёт либо паралич, либо цикл обобщённой услужливости, потому что у модели нет сигнала о том, что считается прогрессом. Цель пригодна, только если движок может проверить, была ли она достигнута. Если вы не можете написать эту проверку, у вас не цель, а настроение.

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

И более мелкие провалы: задержка выше примерно 1,5 секунды воспринимается как сломанная игра, а не как задумчивый персонаж. Недетерминизм ломает тесты воспроизведения, если не зафиксировать зерно и температуру. И любая сгенерированная реплика может противоречить тому, что уже установило дерево, поэтому факты остаются в дереве.

  • Горизонт планированияНадёжен на 1–2 шага. Дальше резко деградирует.
  • Проверка целиДолжна быть проверяема движком. Иначе цель декоративна.
  • Потолок затратНужен предел ходов на взаимодействие плюс предел токенов плюс режим резервных ответов.
  • Бюджет задержкиМенее 1,5 с для ощущения беседы; выше — игроки решают, что игра зависла.
  • ДетерминизмПо умолчанию недетерминированный. Фиксируйте зерно и температуру, если тестируете воспроизведением.
Опишите персонажа — и он окажется в проходимом мире. AI-НПС в одном предложении.
Little Ritual — база на правилах, которую должен превзойти AI-НПС.

Войдите в мир, которому он принадлежит

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

FAQ

НПС — это AI? +

Традиционно нет. Классический НПС — это машина состояний с написанными вручную репликами, и это по-прежнему норма в большинстве выпущенных игр. Термин «AI-НПС» обозначает именно персонажей, чьи диалоги или выбор намерения порождает модель во время выполнения, а не выбирает из таблицы.

Что такое AI-НПС? +

Неигровой персонаж, чья речь и выбор следующего действия исходят от генеративной модели, ограниченной фиксированным набором намерений, которые движок может выполнить. Движение, столкновения и анимация остаются детерминированными; модель лишь заполняет диалог и предлагает намерение.

Могут ли AI-НПС что-то помнить? +

Внутри сессии — да: скользящий буфер последних 8–12 обменов плюс небольшое хранилище «ключ — значение» с фактами покрывает большинство сцен. После перезагрузки страницы — только если вы сохраняете факты в хранилище. Память, живущая только в промпте, исчезает вместе с контекстом.

Можно ли создать его бесплатно? +

Agent Sprite Forge и 3D-конструктор игр работают в браузере и позволяют сгенерировать компонент из одного предложения без локального набора инструментов. Вызовы модели во время выполнения — та часть, что несёт затраты, и эти затраты зависят от того, к какой модели вы направляете запросы и как долго идут ваши разговоры.

Нужен ли игровой движок, чтобы создать AI-НПС? +

Для сцены в браузере — нет. 3D-конструктор игр отвечает за рендеринг на Three.js и даёт сгенерированному компоненту столкновения, навигацию и точку подключения диалога, так что вы пропускаете этап настройки движка. Полноценный движок нужен, только если вы нацелены на нативную сборку.

Работают ли AI-НПС в браузере? +

Да. Вызов модели — это сетевой запрос, а рендеринг — WebGL, поэтому обе стороны работают в браузере. Практическое ограничение — задержка: держите системный промпт коротким, а блок контекста отдельным, иначе ответы начнут приходить после того, как игрок уже решил, что игра зависла.

Сколько стоит эксплуатация AI-НПС? +

Это зависит от длины разговора, а не от числа размещённых персонажей. Молчаливый НПС почти бесплатен; болтливый тарифицируется за ход. Важнейший контроль — жёсткий предел ходов на взаимодействие плюс предел токенов, с переходом на заготовленные ответы при достижении предела.

Назад к 3D-конструктору игр

Все 31 готовых 3D-мира, игры и сцены живут на одной странице — в каждую из них можно играть.

Платформа: Neta StudioСтраница: AI-НПС: как работают неигровые персонажи под управлением AI (и как создать своего)Читайте далее: /explore/guide/npc-behavior · /explore/guide/ai-npc · /explore/tool/ai-npc-generator
×