Размещение трех ИИ-персонажей в одной сцене Unity занимает около четырех минут. Решение о том, к кому именно обращается игрок, — это та часть, которая требует дизайнерского подхода.
Эта асимметрия — главная особенность сессий с несколькими персонажами. Здесь нет режима «несколько персонажей», который нужно включать, нет компонента для добавления и нет поля для заполнения. Просто перетащите второго ConvaiCharacter в рабочую сцену, присвойте ему собственный Character ID, и в комнате окажется двое. То же самое верно для четвертого или десятого персонажа.
Изменяется то, что теперь сцена должна отвечать на вопрос, который никогда не возникает в сцене с одним персонажем. Игрок говорит в комнате, где стоят София, Итан и Маркус. Кто ответит? Один ИИ-NPC никогда не ставит перед нами такой вопрос.
Эта статья охватывает первую часть серии Convai о нескольких персонажах для Unity: настройку, три режима выбора цели и скрытое правило, которое большинство команд никогда не читают, а затем тратят целый день на борьбу с ним. Это применимо как к играм, так и к обучению и киоскам.
Также посмотрите руководство, которому следует эта статья:
Что такое сессия с несколькими персонажами в Unity?
Сессия с несколькими персонажами — это сцена Unity, в которой одновременно активны два или более компонента ConvaiCharacter, разделяющие одну комнату с Convai. Игрок обращается к одному персонажу за раз, а Convai SDK для Unity определяет, к кому именно, без component необходимости что-либо добавлять вручную.
Причина, по которой ничего не нужно настраивать, заслуживает упоминания, так как она объясняет поведение системы в дальнейшем. Сцена с одним персонажем и сцена с несколькими персонажами проходят через один и тот же путь подключения. Единственная разница заключается в том, сколько активных персонажей находит этот путь при запуске. Комната содержит каждого активного персонажа в загруженных сценах, поэтому комната становится многопользовательской в тот же момент, когда такой становится сцена.
Это дизайнерское решение имеет последствие, которое вы заметите в инспекторе Convai Manager. Его раздел Scene Setup обнаруживает каждого персонажа в сцене из Inspector и перечисляет их с флажками, а также кнопкой Include Everyone. Ничего в этом списке не настраивается вручную. Это «живой» обзор того, что уже содержит сцена.
Что включает в себя настройка?
Три шага, и первые два вы уже знаете, как выполнять.
Начните с рабочей сцены с одним персонажем: Convai Manager, Convai Room Manager, Convai Player и один персонаж, который отвечает в режиме Play, с настроенной синхронизацией губ (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 — All 2.
Почему каждому персонажу нужен собственный Character ID?
Потому что SDK маршрутизирует владение, участников и аудио по Character ID. Два персонажа с одинаковым ID не получают каждый свою маршрутизацию. Второй конфликтует с первым, и комната отвечает за обоих через того, кто был зарегистрирован первым.
Причина, по которой это важнее, чем кажется, заключается в том, как в сценах появляются вторые персонажи. Дублирование рабочего персонажа — обычный способ, и дубликат несет с собой Character ID оригинала. Скопированный персонаж никогда не получает собственный ID.
Convai проверяет конфликт дважды, что достаточно необычно, чтобы обратить на это внимание.
Первая проверка выполняется во время редактирования. Выберите персонажа, который делит свой ID с другим в загруженных сценах, и в его инспекторе появится ошибка с заголовком Another character has this Character ID над каждым другим разделом. Сообщение называет каждого другого персонажа, использующего этот ID, а не только первого найденного, и проверка выполняется независимо от того, активна ли сессия с несколькими персонажами, потому что дубликат ID — это ошибка в любой сцене. Вспомогательный инструмент проверки сообщает о том же конфликте как об ошибке, поэтому запуск непрерывной интеграции или редакторский скрипт обнаружат это без необходимости открывать инспектор.
Вторая проверка выполняется при подключении к комнате. Комната, чьи активные персонажи включают двух с одинаковым ID, вообще отказывается подключаться, и исключение называет обоих персонажей и общий ID. Этот отказ охватывает оба пути в список комнаты: полный состав, отправленный при подключении, и отдельный персонаж, добавленный позже, когда комната уже работает.
Отказ от подключения — это интересное решение. Альтернатива — подключение комнаты, которая работает для одного персонажа и «отбрасывает» другого без предупреждения — это версия, которая попадет в сборку и будет сообщена как ошибка голосовой связи через три недели.
Поле ID также проверяется по своим собственным правилам. Оно должно состоять из 36 символов, иметь формат GUID, без начальных или конечных пробелов. Сообщения инспектора конкретно указывают, что именно не удалось, включая предупреждение о том, что легко случайно скопировать имя персонажа. Сравнение дубликатов игнорирует регистр и окружающие пробелы, поэтому два ID, различающиеся только регистром, считаются одинаковыми.
Как Convai определяет, с кем говорит игрок?
Три режима находятся в Convai Manager, в разделе Who The Player Talks To, в поле Chosen By. Настройка находится в менеджере, а не в компоненте, и причина этого — принцип проектирования, который стоит взять на вооружение: сцена, в которой работает один персонаж, должна продолжать работать в тот момент, когда в нее добавляется второй. Правило, которое вступает в силу только после того, как кто-то найдет и добавит компонент выбора цели, — это ручной шаг под другой маской.
Look At — это режим по умолчанию. Он выбирает персонажа, ближайшего к центру поля зрения игрока, оценивая каждого подходящего персонажа по углу относительно направления взгляда, используя расстояние как критерий при равенстве.
Proximity выбирает ближайшего персонажа, независимо от того, куда смотрит игрок.
Manual меняет цель, когда игра дает команду, и ни в какое другое время.
Какой режим подходит для вашей камеры?
Честный ответ заключается в том, что режим следует за камерой, а не за жанром.
Режим Look At подходит для VR-сцен, а также для любых сцен, где направление взгляда игрока определяет цель. В режиме по умолчанию выбор цели считывает направление взгляда игрока, а не выпускает луч в сцену, что является важным различием. Для луча требуется наличие коллайдера на каждом персонаже и правильно настроенная маска слоя; если что-то из этого отсутствует или посторонний коллайдер блокирует линию, луч не сработает без уведомления. Использование направления камеры означает, что мышь, геймпад, сенсорный экран на мобильных устройствах и шлем виртуальной реальности управляют выбором цели одинаково, так как ни один из них не меняет точку, на которую направлена камера. Никаких коллайдеров, слоев или сложной настройки ввода.
Режим Proximity подходит для камер с видом сверху и от третьего лица, где камера не совпадает с направлением взгляда игрока. В противном случае в обучающей симуляции или сцене от третьего лица со свободной камерой выбор цели падал бы на того персонажа, на которого случайно направлена камера, а не на того, рядом с которым стоит игрок.
Режим Manual подходит для диалоговых меню, этапов квестов и кат-сцен, где игра сама решает, к кому обращаются, независимо от взгляда или позиции игрока. Это также верное решение для повествовательных моментов, которые должны воспроизводиться полностью, и сочетается с Narrative Design, когда сцена прописана по сценарию, по причинам, описанным ниже.
В видео используется Look At — это режим по умолчанию и правильная отправная точка для большинства 3D-сцен, включая сборки WebGL.
Также посмотрите: руководство по установке и настройке Convai Unity, если ваша сцена еще не отвечает.
Три уровня, стоящие за каждым решением о выборе цели
Вот часть, которую видео проходит за тридцать секунд, а документация описывает на нескольких страницах. Convai Manager перезапускает правило выбора цели около пятнадцати раз в секунду, и это правило состоит из трех уровней. Два из них можно настраивать. Третий — нет.
Понимание того, с каким уровнем вы работаете, экономит большую часть времени, которое обычно тратится на настройку выбора цели.
Уровень первый: кто имеет право на выбор
Два числа определяют, можно ли вообще обратиться к персонажу.
Дистанция, представленная как MaxDistance, по умолчанию составляет 30 метров. Угол обзора, представленный как MaxAngle, по умолчанию составляет 35 градусов и измеряется от направления взгляда, поэтому значение по умолчанию описывает 70-градусный конус перед игроком. Увеличьте его, и вы расширите поле зрения, которое считается обращением к кому-либо.
Это параметры формы пространства. Если к персонажу невозможно обратиться, как бы игрок ни старался, значит, один из этих двух параметров его исключает.
Уровень второй: насколько охотно происходит переключение
Еще два числа определяют, что нужно для того, чтобы новый претендент перехватил инициативу в разговоре.
Switch Margin по умолчанию составляет 10 градусов и определяет, насколько лучше должен быть показатель претендента, чтобы разговор переключился. Это применимо только к Look At, так как измеряется в градусах. Switch Delay по умолчанию составляет 0,2 секунды и определяет, как долго претендент должен оставаться лучшим выбором, прежде чем произойдет переключение. В режиме Proximity задержка — это то, что разделяет двух персонажей, стоящих на одинаковом расстоянии, поскольку запас, измеряемый в градусах, ничего не значит для правила, измеряемого в метрах.
Эта вторая пара — настройка сглаживания, и она существует для предотвращения мерцания. Без нее два персонажа, стоящие рядом, перехватывали бы разговор друг у друга при малейшем движении камеры, а панорамирование по комнате передавало бы разговор каждому, мимо кого проходит взгляд. Оба недостатка очевидны в игре и невидимы в коде, поэтому для них предусмотрены отдельные настройки.
Все поля ограничиваются (clamp), а не вызывают ошибки. MaxAngle принимает значения от 1 до 180 градусов, Switch Margin от 0 до 90, а остальные два — минимум ноль. Значение вне диапазона будет приведено к допустимому, вместо того чтобы нарушить работу сцены.
Уровень третий: правила, которые нельзя отключить
Выбор цели регулируется тремя правилами, которые не отключаются никакими настройками, и каждое из них — это любезность системы по отношению к вам.
Взгляд — это еще не обращение. Персонаж должен стать лучшим выбором на некоторое время, прежде чем разговор переключится. Взгляд, который проходит мимо кого-то, не задерживаясь, ничего не перенаправляет. Switch Margin и Switch Delay обеспечивают это вместе, но принцип сохраняется при любых значениях.
Собственная фраза игрока закрепляет цель. Разговор не может переключиться в середине того, что говорит игрок, потому что если вторая половина предложения адресована другому персонажу, это нельзя исправить позже. Взгляд, брошенный во время речи, запоминается, а не отбрасывается, поэтому взгляд, удерживаемый на протяжении всего предложения, переключает разговор в тот момент, когда предложение заканчивается, без необходимости смотреть дважды. Эта деталь делает взаимодействие естественным, а не «тормозящим».
Цель никогда не сбрасывается сама по себе. Когда никто не подходит под критерии, последний выбранный персонаж сохраняет разговор, а статус доступности разговора сообщает, может ли этот персонаж слышать игрока. Сброшенная цель означала бы, что игрок говорит, а никто не отвечает, что воспринимается как ошибка в сцене, а не как отсутствие конкретного адресата.
Это третье правило чаще всего принимают за ошибку. Персонаж, который продолжает отвечать после того, как игрок отвернулся, — это система, удерживающая линию, а не теряющая контроль.
С чего начинается разговор?
Комната открывается на одном персонаже до того, как игрок посмотрел или сказал что-либо, потому что разговор должен с чего-то начаться.
Назначьте Initial Character в инспекторе Convai Manager, и комната откроется на этом персонаже независимо от порядка в сцене или направления камеры. Оставьте его неназначенным, и комната откроется на первом персонаже в порядке сцены.
Этот выбор определяет только то, с чего начинается разговор. С момента готовности комнаты правило выбора цели пересчитывается, и разговор переходит к тому, к кому обращается игрок, если только не выбран режим Manual. Initial Character — это начальная позиция, а не блокировка.
Установка этого параметра из скрипта для уже подключенной комнаты ставит в очередь переподключение, а не перемещает текущий разговор, что стоит знать перед вызовом этой функции в середине сцены.
Как настроить выбор цели для своей сцены?
Используйте пару для определения права на выбор, если к персонажу невозможно обратиться, и пару для переключения, если разговор переключается слишком рано или недостаточно быстро. Три настройки покрывают большинство сцен.
Если разговор мерцает между двумя близко стоящими персонажами, сначала увеличьте Switch Margin, затем Switch Delay, если мерцание сохраняется.
Если взгляд на персонажа не переключает на него разговор, значит, его дистанция или угол выходят за пределы Range или Look Angle. Расширьте тот параметр, который их исключает.
Если цель переключается слишком часто, когда игрок проводит взглядом по комнате, увеличьте Switch Delay, чтобы мимолетный взгляд перестал считаться обращением.
Более узкий Look Angle подходит для персонажей, стоящих далеко друг от друга в цифровом двойнике или шоуруме, так как это позволяет игроку смотреть между ними, не обращаясь ни к одному из них. Более широкий угол подходит для широкоформатного экрана, где персонаж на краю кадра все еще виден. Руководство по настройке охватывает как поля инспектора, так и их аналоги во время выполнения.
Можно ли управлять целью разговора из кода?
Да, и поверхность здесь больше, чем предполагают три режима.
TalkTo направляет разговор на одного персонажа. Его можно безопасно вызывать в любое время; если в комнате нет нескольких персонажей или указанный персонаж отсутствует, вызов ничего не делает. Если запрос вызван в момент, когда игрок произносит фразу, он удерживается до завершения фразы, а затем отправляется — это то же правило вежливости, что применяется к скриптовым перемещениям.
SetInitialCharacter выбирает, кто заговорит первым при подключении к комнате, с учетом вышеупомянутого нюанса о переподключении.
Для команд, которые хотят принимать решение самостоятельно, интерфейс провайдера выбора цели (targeting provider) полностью заменяет встроенные режимы. Его метод 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. Присвойте каждому свой собственный через панель управления.
Для всего остального: страница устранения неполадок выбора цели (targeting troubleshooting) и страница устранения неполадок для нескольких персонажей (multi-character troubleshooting) рассматривают симптомы по очереди, а форум разработчиков Convai — это место для вопросов по настройке, наряду с категорией руководств и учебных пособий, а также существующими темами о нескольких персонажах в одной сцене и нескольких персонажах в VR. Тема для этого руководства собирает вопросы от людей, проходящих те же шаги.
Что будет во второй части?
Первая часть — это общение один на один в общей комнате. Игрок обращается к одному персонажу, тот отвечает, а остальные ждут.
Вторая часть расширяет это до всеобщей осведомленности (all-to-all awareness), где игроки и персонажи остаются в курсе разговоров и событий, происходящих вокруг них, поэтому персонаж может отреагировать, если что-то сказанное поблизости имеет к нему отношение. Это другая проблема, отличная от выбора цели: выбор цели решает, кто отвечает, а осведомленность решает, кто слушал.
Также стоит знать о пути Playground. Многопользовательские разговоры можно прототипировать в виде чата еще до того, как все это попадет в 3D-проект: с добавлением нескольких персонажей, контролем того, кто отвечает, и групповыми разговорами, которые можно протестировать в браузере. В руководстве это упоминается как отдельное прохождение, которое будет позже.
Где многопользовательские сессии приносят пользу
Большинство сцен, которые стоит создавать, содержат более одного персонажа. Игра с несколькими NPC, выполняющими разные роли. Тренировочная симуляция с инструктором, помощником и гидом, работающими на одном этаже. Виртуальный тур с персоналом на разных станциях. Социальное пространство, XR-среда, проект смешанной реальности с использованием сквозного видения (passthrough vision), где персонажи делят физическую комнату с игроком, или бренд-опыт с несколькими ведущими.
Во всех этих случаях каждый персонаж обладает собственными знаниями, собственной долговременной памятью, собственными действиями, собственным видением сцены и собственной причиной находиться там. Сеансы с несколькими персонажами добавляют уровень маршрутизации, который позволяет игроку переключаться между ними без использования меню, горячих клавиш или триггера приближения, написанного вами вручную.
Начало работы
Установите 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 говорить одновременно?
Какой персонаж говорит первым при подключении к комнате?





