Размещение трех ИИ-персонажей в одной сцене Unity занимает около четырех минут. Решение о том, к кому именно обращается игрок, — это та часть, которая требует дизайнерского подхода.
Эта асимметрия — суть сессий с несколькими персонажами. Здесь нет режима «несколько персонажей», который нужно включать, нет компонента, который нужно добавить, и нет поля, которое нужно заполнить. Просто перетащите второй ConvaiCharacter в рабочую сцену, присвойте ему собственный Character ID, и в комнате их станет двое. То же самое верно для четвертого или десятого персонажа.
Изменяется то, что теперь сцена должна отвечать на вопрос, который никогда не возникает в сцене с одним персонажем. Игрок говорит в комнате, где стоят София, Итан и Маркус. Кто ответит? Один ИИ NPC никогда не ставит перед нами такой вопрос.
Эта статья охватывает первую часть серии материалов Convai о работе с несколькими персонажами для Unity: настройку, три режима выбора цели и скрытые правила, которые большинство команд не читают, а затем тратят целый день на борьбу с ними. Это применимо к играм, обучению и киоскам.
Также посмотрите обучающее видео, которому следует эта статья:
Что такое сессия с несколькими персонажами в Unity?
Сессия с несколькими персонажами — это сцена Unity, в которой одновременно активны два или более компонентов ConvaiCharacter, разделяющих одну комнату с Convai. Игрок обращается к одному персонажу за раз, а Convai SDK for Unity определяет, к кому именно, без необходимости добавлять component.
Причина, по которой ничего не нужно настраивать, заслуживает упоминания, так как она объясняет поведение системы в дальнейшем. Сцена с одним персонажем и сцена с несколькими персонажами проходят один и тот же путь подключения. Единственная разница заключается в том, сколько активных персонажей находит этот путь при запуске. Комната содержит всех активных персонажей в загруженных сценах, поэтому комната становится многопользовательской в тот же момент, когда такой становится сцена.
Этот дизайнерский выбор имеет последствие, которое вы заметите в инспекторе Convai Manager. Его раздел «Настройка сцены» (Scene Setup) обнаруживает каждого персонажа в сцене из Inspector и перечисляет их с флажком для каждого, а также кнопкой «Включить всех» (Include Everyone). Ничего в этом списке не настраивается вручную. Это «живой» обзор того, что уже содержит сцена.
Что включает в себя настройка?
Три шага, и первые два вы уже знаете, как выполнять.
Начните с рабочей сцены с одним персонажем: Convai Manager, Convai Room Manager, Convai Player и один персонаж, который отвечает в режиме воспроизведения (Play mode), с настроенной синхронизацией губ (lip sync), если хотите, чтобы это выглядело правильно. Если у вас этого еще нет, руководство по установке и настройке Unity поможет вам, как и руководство для начинающих.
Добавьте дополнительных персонажей. Перетащите больше персонажей prefabs или продублируйте GameObject, который у вас уже есть. Каждый персонаж несет те же компоненты Convai, что и первый, независимо от того, пришел ли он из Avatar Studio или вашего собственного арт-конвейера. Не существует дополнительного компонента для сцен с несколькими персонажами.
Присвойте каждому свой собственный Character ID из панели управления Convai, где также хранятся его знания, личность и основные настройки ИИ. Это важный шаг, и следующий раздел объясняет почему.
Затем откройте Convai Manager, убедитесь, что каждый персонаж отмечен галочкой, или нажмите «Включить всех» (Include Everyone), и прокрутите до раздела «К кому обращается игрок» (Who The Player Talks To). Этот раздел появляется, как только в сцене становится больше одного персонажа, потому что с одним персонажем нечего выбирать.
Краткое руководство проходит тот же путь с показаниями инспектора, которые нужно проверять на каждом шаге. С двумя персонажами в сцене значение «Персонажи в сцене» (Characters in Scene) равно 2, а «Присоединение к комнате» (Joining the Room) — «Все 2» (All 2).
Почему каждому персонажу нужен свой Character ID?
Потому что SDK маршрутизирует владение, участников и аудио по Character ID. Два персонажа с одним и тем же ID не получают собственную маршрутизацию. Второй конфликтует с первым, и комната отвечает за обоих через того, кто был зарегистрирован первым.
Причина, по которой это важнее, чем кажется, заключается в том, как в сценах появляются вторые персонажи. Дублирование рабочего персонажа — обычный способ, и дубликат несет с собой Character ID оригинала. Скопированный персонаж никогда не получает собственный ID.
Convai проверяет конфликт дважды, что достаточно необычно, чтобы обратить на это внимание.
Первая проверка выполняется во время редактирования. Выберите персонажа, который делит свой ID с другим в загруженных сценах, и в его инспекторе над всеми остальными разделами появится ошибка с заголовком «Другой персонаж имеет этот Character ID» (Another character has this Character ID). Сообщение называет всех остальных персонажей, разделяющих этот ID, а не только первого найденного. Проверка выполняется независимо от того, активна ли сессия с несколькими персонажами, потому что дубликат ID — это ошибка в любой сцене. Вспомогательный инструмент проверки (validation helper) сообщает о том же конфликте как об ошибке, поэтому запуск непрерывной интеграции (CI) или скрипт редактора обнаружат это без необходимости открывать инспектор.
Вторая проверка выполняется при подключении к комнате. Комната, чьи активные персонажи включают двух с одинаковым ID, вообще отказывается подключаться, и исключение называет обоих персонажей и общий ID. Этот отказ охватывает оба пути в список участников комнаты: полный состав, представленный при подключении, и одного персонажа, добавленного позже, когда комната уже работает.
Отказ от подключения — это интересный выбор. Альтернатива — подключение комнаты, которая работает для одного персонажа и «отбрасывает» другого без предупреждения — это версия, которая попадет в билд и будет сообщена как ошибка голоса через три недели.
Поле ID также проверяется по своим собственным правилам. Оно должно состоять из 36 символов, иметь формат GUID, без начальных или конечных пробелов. Сообщения инспектора конкретно указывают, что именно не удалось, включая предупреждение о том, что легко случайно скопировать имя персонажа. Сравнение дубликатов игнорирует регистр и окружающие пробелы, поэтому два ID, различающиеся только регистром, считаются одинаковыми.
Как Convai решает, с кем говорит игрок?
Три режима находятся в Convai Manager, в разделе «К кому обращается игрок» (Who The Player Talks To), в поле «Выбирается по» (Chosen By). Настройка находится в менеджере, а не в компоненте, и причина этого — принцип дизайна, который стоит перенять: сцена, в которой работает один персонаж, должна продолжать работать в тот момент, когда в нее добавляется второй. Правило, которое вступает в силу только после того, как кто-то найдет и добавит компонент выбора цели, — это ручной шаг, который лишь маскируется под автоматизацию.
«Взгляд» (Look At) — это режим по умолчанию. Он выбирает персонажа, ближайшего к центру поля зрения игрока, оценивая каждого подходящего персонажа по углу относительно направления взгляда, с расстоянием в качестве решающего фактора при равенстве.
«Близость» (Proximity) выбирает ближайшего персонажа, независимо от того, куда смотрит игрок.
«Ручное управление» (Manual) меняет цель только тогда, когда игра вызывает это событие, и больше никогда.
Какой режим подходит для вашей камеры?
Честный ответ заключается в том, что режим следует за камерой, а не за жанром.
Look At подходит для first-person и VR-сцен, а также для любых сцен, где направление camera совпадает с направлением взгляда игрока. В режиме по умолчанию выбор цели считывает направление взгляда игрока, а не выпускает ray в сцену, что является важным различием. Для луча требуется коллайдер на каждом персонаже и правильно настроенная маска слоя; если что-то из этого отсутствует или случайный коллайдер блокирует линию, система не сработает без уведомления. Считывание направления камеры вперед означает, что мышь, gamepad, сенсорный экран на мобильном устройстве и шлем виртуальной реальности управляют выбором цели одинаково, поскольку ни один из них не меняет то, на что указывает камера. Никаких коллайдеров, слоев или настройки ввода.
Proximity подходит для камер с видом сверху и от третьего лица, где камера не совпадает со взглядом игрока. В противном случае в isometric обучающей симуляции или сцене от третьего лица со свободной камерой выбор персонажа зависел бы от того, на кого направлена камера, а не от того, рядом с кем стоит игрок.
Manual подходит для диалоговых меню, этапов квестов и cutscenes, где игра сама решает, к кому обращаются, а не взгляд или положение игрока. Это также правильный ответ для повествовательных моментов, которые должны быть воспроизведены полностью, и сочетается с Narrative Design, когда сцена прописана в скрипте, по причинам, описанным ниже.
В видео используется Look At, который является режимом по умолчанию и правильной отправной точкой для большинства 3D-сцен, включая сборки WebGL.
Также посмотрите: руководство по установке и настройке Convai Unity, если ваша сцена еще не отвечает.
Три уровня, стоящие за каждым решением о выборе цели
Вот часть, которую видео проходит за тридцать секунд, а документация описывает на нескольких страницах. Convai Manager перезапускает правило выбора цели около пятнадцати раз в секунду, и это правило имеет три уровня. Два из них можно настраивать. Третий — нет.
Понимание того, с каким уровнем вы работаете, экономит большую часть времени, которое люди тратят на настройку выбора цели.
Уровень первый: кто подходит
Два числа определяют, можно ли вообще обратиться к персонажу.
Дальность (Range), представленная как MaxDistance, по умолчанию составляет 30 метров. Угол обзора (Look Angle), представленный как MaxAngle, по умолчанию составляет 35 градусов и измеряется от направления взгляда, поэтому значение по умолчанию описывает 70-градусный конус перед игроком. Увеличьте его, и вы расширите поле зрения, которое считается обращением к кому-либо.
Это числа, определяющие форму пространства. Если к персонажу невозможно обратиться, как бы сильно игрок ни смотрел, значит, один из этих двух параметров его исключает.
Уровень второй: насколько охотно происходит переключение
Еще два числа определяют, что нужно, чтобы подходящий претендент перехватил инициативу в разговоре.
Switch Margin по умолчанию составляет 10 градусов и определяет, насколько лучше должен быть показатель претендента, чтобы разговор переключился. Это применимо только к Look At, так как измеряется в градусах. Switch Delay по умолчанию составляет 0,2 секунды и определяет, как долго претендент должен оставаться лучшим выбором, прежде чем произойдет переключение. В режиме Proximity задержка — это то, что разделяет двух персонажей, стоящих на одинаковом расстоянии, поскольку маржа, измеряемая в градусах, ничего не значит для правила, измеряемого в метрах.
Эта вторая пара является hysteresis и существует для предотвращения мерцания. Без нее два персонажа, стоящие рядом друг с другом, перехватывали бы разговор при движении камеры на доли градуса, а панорамирование по комнате передавало бы разговор всем, мимо кого проходит взгляд. Оба недостатка очевидны в игре и невидимы в коде, поэтому для них предусмотрены отдельные настройки.
Каждое поле ограничивается, а не вызывает ошибку. MaxAngle принимает значения от 1 до 180 градусов, Switch Margin — от 0 до 90, а остальные два — минимум ноль. Значение вне диапазона будет приведено к допустимому, вместо того чтобы нарушить работу сцены.
Уровень третий: правила, которые нельзя отключить
Три правила управляют выбором цели, которые не отключаются никакими настройками, и каждое из них — это любезность, которую система оказывает от вашего имени.
Взгляд — это не обращение. Персонаж должен быть лучшим выбором в течение некоторого времени, прежде чем разговор переключится. Взгляд, который проходит мимо кого-то, не задерживаясь, ничего не перенаправляет. Switch Margin и Switch Delay обеспечивают это вместе, но принцип сохраняется при любых значениях.
Собственная фраза игрока фиксирует цель. Разговор не может переключиться в середине того, что говорит игрок, потому что если вторая половина предложения достигнет другого персонажа, это не то, что можно исправить последующей коррекцией. Взгляд, брошенный во время речи, запоминается, а не отбрасывается, поэтому взгляд, удерживаемый на протяжении всего предложения, переключает разговор в тот момент, когда предложение заканчивается, без необходимости смотреть дважды. Эта деталь делает turn-taking процесс естественным, а не заторможенным.
Цель никогда не сбрасывается сама по себе. Когда никто не подходит, последний выбранный персонаж сохраняет разговор, а отчет о доступности разговора показывает, слышит ли этот персонаж игрока. Сброшенная цель означала бы, что игрок говорит, а никто не отвечает, что воспринимается как сломанная сцена, а не как обращение в никуда.
Это третье правило чаще всего принимают за ошибку. Персонаж, который продолжает отвечать после того, как игрок отвернулся, — это система, удерживающая линию, а не теряющая контроль.
С чего начинается разговор?
Комната открывается на одном персонаже до того, как игрок посмотрел или сказал что-либо, потому что разговор должен с чего-то начаться.
Назначьте Initial Character в инспекторе Convai Manager, и комната откроется на этом персонаже независимо от порядка сцены или того, куда направлена камера. Оставьте его неназначенным, и комната откроется на первом персонаже в порядке сцены.
Этот выбор определяет только то, с чего начинается разговор. С момента готовности комнаты правило выбора цели пересчитывается, и разговор переходит к тому, к кому обращается игрок, если только не выбран режим Manual. Initial Character — это начальная позиция, а не блокировка.
Установка его из скрипта в комнате, которая уже подключена, ставит в очередь переподключение, а не перемещает текущий разговор, что стоит знать перед вызовом этого метода в середине сцены.
Как настроить выбор цели для своей сцены?
Используйте пару для определения подходящих персонажей, если к кому-то нельзя обратиться, и пару для переключения, если разговор переключается слишком рано или недостаточно быстро. Три настройки охватывают большинство сцен.
Когда разговор мерцает между двумя близкими персонажами, сначала увеличьте Switch Margin, затем Switch Delay, если мерцание сохраняется.
Когда взгляд на персонажа не переключает на него разговор, его расстояние или угол выходят за пределы Range или Look Angle. Расширьте тот параметр, который их исключает.
Когда цель переключается слишком часто, пока игрок проводит взглядом по комнате, увеличьте Switch Delay, чтобы мимолетный взгляд перестал считаться обращением.
Более узкий Look Angle подходит для персонажей, стоящих далеко друг от друга в цифровом двойнике или шоуруме, так как это позволяет игроку смотреть между ними, не обращаясь ни к одному из них. Более широкий подходит для широкоформатного экрана, где персонаж на краю кадра все еще виден. Руководство по настройке охватывает как поля инспектора, так и их аналоги во время выполнения.
Можно ли управлять целью разговора из кода?
Да, и поверхность здесь больше, чем предполагают три режима.
TalkTo направляет разговор на одного персонажа. Его можно безопасно вызывать в любое время; он ничего не делает, если в комнате нет нескольких персонажей или если указанный персонаж отсутствует. Если вызов происходит во время речи игрока, запрос удерживается до завершения фразы, а затем отправляется — это то же правило вежливости, что применяется к скриптовым перемещениям.
SetInitialCharacter выбирает, кто заговорит первым при подключении к комнате, с учетом оговорки о переподключении, упомянутой выше.
Для команд, которые хотят самостоятельно принимать решения, интерфейс провайдера таргетинга полностью заменяет встроенные режимы. Его метод resolve получает всех персонажей в текущей комнате в стабильном порядке, а также того, кто ведет разговор в данный момент, и возвращает персонажа, который должен продолжить. Если ничего не возвращено или возвращен персонаж вне списка кандидатов, разговор остается на прежнем месте. Исключение, возникшее внутри метода, перехватывается и записывается в лог, не прерывая работу сцены.
Два события сообщают о перемещении. Одно срабатывает после завершения ввода игрока и непосредственно перед тем, как SDK попытается выполнить изменение, которое все еще может не удаться. Другое срабатывает, когда авторизованный ответ от Convai подтверждает цель, спустя один цикл обмена данными. Проекты, использующие систему событий, получают единое доменное событие с указанием фазы (запрошено, подтверждено или не удалось) и причиной отказа в случае неудачи.
Также существует вердикт, который можно прочитать в любой момент; он объясняет, почему последнее решение было именно таким: предложение уже удерживало разговор, изменение зафиксировано, предложение длилось недостаточно долго, игрок находится в середине фразы или предыдущее изменение все еще в процессе. Последний набор данных — это разница между отладкой таргетинга и догадками о нем.
Как проверить настройки в режиме Play?
Выберите Convai Manager во время режима Play и откройте раздел Live. Он сообщает больше информации, чем ожидает большинство команд.
Characters in Room показывает количество персонажей, для которых была открыта комната. Talking To называет персонажа, к которому обращаются, и обновляется по мере того, как игрок поворачивается. Player Can Talk показывает «yes», как только персонаж может слышать игрока, и сообщает, что персонаж все еще присоединяется в течение короткого момента после входа в комнату. Room Holds показывает нескольких персонажей, как только их становится больше одного. Список Room Roster ниже содержит по одной строке на персонажа, отмечает того, к кому обращаются, и показывает, какие персонажи готовы. Используйте это вместе с API транскриптов, если хотите получить такое же состояние в собственном интерфейсе.
Раздел Live также называет вердикт, стоящий за последним решением по таргетингу, что позволяет отличить намеренно удерживаемую цель от «застрявшей».
Для разового отчета в меню Convai есть Troubleshooter, охватывающий таргетинг наряду с остальным состоянием разговора. Команды, работающие с помощником по написанию кода, могут получить тот же отчет через диагностический инструмент, включая правило таргетинга с его значениями и информацию о том, являются ли они стандартными заводскими настройками. Рабочий процесс Convai MCP для Unity охватывает эту настройку.
Что показывает демонстрационная сцена
В учебном пособии используются три персонажа: София, Итан и Маркус в небольшой детективной истории. Кто-то стоял у пустого дома в два часа ночи, и все фонари на улице погасли одновременно.
Игрок спрашивает Софию, что она видела. Она описывает фигуру, неподвижно стоящую у входной двери. Повернитесь к Итану и спросите, странно ли это; он ответит, что сама по себе фигура — нет, но одновременное отключение света — это то, что он не может объяснить. Повернитесь к Маркусу, который видел, как погас свет, и сам скажет, что дом пустует уже три недели.
В этом обмене репликами нет ничего скриптового. Секрет в том, что у каждого персонажа есть свой Character ID, а значит, своя база знаний (Knowledge Bank) и своя предыстория, знания и личность на стороне Convai. То, что Итан сначала ищет обычные объяснения, а Маркус умалчивает о детали, которая его беспокоит, — это не поведение таргетинга. Это три персонажа, созданные из разного материала, к которым обращаются по очереди.
Вклад слоя таргетинга незаметен, когда он работает, в этом и смысл. То же самое касается синхронизации губ (lip sync) и любого другого слоя, который игрок никогда не называет. Игрок поворачивается, и нужный персонаж отвечает.
Распространенные проблемы и их решения
Взгляд на персонажа не переключает разговор. Их расстояние или угол выходят за пределы Range или Look Angle. Увеличьте параметры, исключающие их.
Разговор мерцает между двумя персонажами. Switch Margin или Switch Delay слишком малы для того, насколько близко они стоят друг к другу. Сначала увеличьте отступ (margin).
Ничего не переключается. Режим Manual, поэтому цель не меняется, кроме как по скриптовому вызову. Либо управляйте этим из кода, либо измените режим.
TalkTo, кажется, ничего не делает, а консоль записывает предупреждение с именем персонажа. Этот персонаж не является участником текущей комнаты, и Console называет его. Он не был зарегистрирован или покинул комнату с момента ее подключения.
Разговор кажется застрявшим на одном персонаже. Проверьте вердикт, прежде чем предполагать ошибку. Удерживаемая цель и застрявшая цель выглядят одинаково со стороны, но различаются по коду причины.
Комната отказывается подключаться и называет двух персонажей. У них общий Character ID. Присвойте каждому свой собственный через панель управления.
Для всего остального: страница устранения неполадок таргетинга и страница устранения неполадок для нескольких персонажей рассматривают симптомы по одному, а форум разработчиков Convai — это место для вопросов по настройке, наряду с категорией руководств и учебных пособий, а также существующими темами о нескольких персонажах в одной сцене и нескольких персонажах в VR. Тема для этого учебного пособия собирает вопросы от людей, проходящих те же шаги.
Что будет во второй части?
Первая часть — это общение один на один в общей комнате. Игрок обращается к одному персонажу, тот отвечает, а остальные ждут.
Вторая часть расширяет это до всеобщей осведомленности (all-to-all awareness), где игроки и персонажи остаются в курсе разговоров и событий, происходящих вокруг них, поэтому персонаж может отреагировать, когда что-то сказанное поблизости имеет к нему отношение. Это другая проблема, отличная от таргетинга: таргетинг решает, кто отвечает, а осведомленность решает, кто слушал.
Также стоит знать о пути Playground. Многопользовательские разговоры можно прототипировать в виде чата, прежде чем все это попадет в 3D-проект: с добавлением нескольких персонажей, контролем над тем, кто отвечает, и групповыми разговорами, которые можно протестировать в браузере. В учебном пособии это упоминается как отдельное руководство, которое будет выпущено позже.
Где многопользовательские сессии приносят пользу
Большинство сцен, которые стоит создавать, содержат более одного персонажа. Игра с несколькими NPC, выполняющими разные роли. Тренировочная симуляция с инструктором, помощником и гидом, работающими на одном этаже. Виртуальный тур с персоналом на разных станциях. Социальное пространство, XR-среда, сборка смешанной реальности с использованием сквозного видения (passthrough), где персонажи делят физическую комнату с игроком, или бренд-опыт с несколькими ведущими.
Во всех этих случаях каждый персонаж обладает собственными знаниями, собственной долговременной памятью, собственными действиями, собственным видением сцены и собственной причиной находиться там. Сеансы с несколькими персонажами добавляют уровень маршрутизации, который позволяет игроку переключаться между ними без использования меню, горячих клавиш или триггеров приближения, написанных вами вручную.
Начало работы
Установите Convai SDK для Unity из Unity Asset Store или позвольте помощнику по программированию создать сцену за вас, затем следуйте руководству по началу работы, чтобы заставить одного персонажа заговорить, после чего создайте дополнительных персонажей и скопируйте каждый идентификатор персонажа (Character ID) в соответствующий компонент ConvaiCharacter. Краткое руководство по работе с несколькими персонажами поможет перейти от одного персонажа к двум, а готовая демонстрационная сцена покажет, как работают вместе несколько персонажей, система выбора цели и пользовательский интерфейс транскрипции.
Также смотрите: YouTube-канал Convai, где представлены остальные серии руководств по Unity, Unreal Engine и XR.
Часто задаваемые вопросы
Что такое сеанс с несколькими персонажами в Convai для Unity?
Сеанс с несколькими персонажами — это сцена Unity, в которой два или более компонентов ConvaiCharacter активны одновременно и находятся в одной комнате Convai. Здесь нет режима, который нужно включать, компонента, который нужно добавлять, или поля, которое нужно заполнять. Комната содержит всех активных персонажей Convai в загруженных сценах, а SDK определяет, к кому именно обращается игрок.
Как добавить второго ИИ-персонажа в сцену Unity?
Перетащите префаб второго персонажа в сцену или продублируйте GameObject существующего персонажа, а затем присвойте ему собственный идентификатор персонажа (Character ID) из панели управления Convai. Откройте Convai Manager, убедитесь, что оба персонажа отмечены в разделе настройки сцены (Scene Setup), или нажмите «Включить всех» (Include Everyone), после чего появится раздел «К кому обращается игрок» (Who The Player Talks To).
Почему каждому персонажу Convai нужен свой собственный идентификатор (Character ID)?
SDK маршрутизирует владение, участников и аудио по идентификатору персонажа. Если два персонажа используют один и тот же идентификатор, они будут конфликтовать вместо того, чтобы получать собственные ответы, и комната будет отвечать обоим через того, кто был зарегистрирован первым. Инспектор предупреждает о конфликте во время редактирования, а комната отказывается подключаться, если два активных персонажа все еще используют один и тот же идентификатор.
Какие три режима выбора персонажа существуют в Convai для Unity?
«Look At» (Взгляд) выбирает персонажа, ближайшего к центру обзора игрока, с оценкой по углу и расстоянию в качестве решающего фактора. «Proximity» (Близость) выбирает ближайшего персонажа независимо от того, куда смотрит игрок. «Manual» (Ручной) меняет цель только тогда, когда игра вызывает функцию TalkTo. «Look At» является режимом по умолчанию.
Что лучше использовать: «Look At» или «Proximity»?
Используйте «Look At» для сцен от первого лица и VR, где направление камеры совпадает с направлением взгляда игрока. Используйте «Proximity» для камер с видом сверху и от третьего лица, где камера не является направлением взгляда, и «Look At» выбирал бы того персонажа, на которого случайно направлена камера, а не того, к кому игрок ближе.
Как Convai определяет, к кому обращается игрок?
Convai Manager переоценивает ситуацию около пятнадцати раз в секунду. Диапазон и угол обзора определяют, кто может быть целью обращения. Параметры «Switch Margin» (Порог переключения) и «Switch Delay» (Задержка переключения) определяют, что нужно для того, чтобы новый кандидат перехватил инициативу в разговоре. Кроме того, мимолетный взгляд не перенаправляет разговор, цель не может измениться в середине фразы игрока, и цель никогда не сбрасывается сама по себе.
Почему разговор «мерцает» между двумя персонажами?
Значения «Switch Margin» или «Switch Delay» слишком малы для того расстояния, на котором стоят персонажи, поэтому небольших движений камеры достаточно для запуска переключения. Сначала увеличьте «Switch Margin», а если мерцание продолжается, увеличьте «Switch Delay».
Могут ли несколько персонажей Convai говорить одновременно?
Какой персонаж говорит первым при подключении к комнате?





