2D- и 3D-аватары
Два скачиваемых агента дают персонажам и персонам анимированный аватар, который реагирует, пока приходит ответ. 2D Avatars (2D-аватары) показывает спрайты в стиле PNGTuber или mesh-аватары. 3D Avatars (3D-аватары) показывает модели VRM, MMD PMX, GLB и FBX. Выражение лица меняется вслед за ответом, а рот движется в такт тексту или синтезу речи.
Модели Live2D не поддерживаются. Лицензия Live2D требует отдельного соглашения даже для бесплатных приложений с открытым исходным кодом, а среду выполнения Live2D нельзя поставлять вместе с Marinara Engine.
Установка агентов аватаров
Оба агента доступны в Agent Organizer (организатор агентов) при любой установке, под фильтрами Roleplay (ролевая игра) и Game (игра). Им нужно приложение Marinara Engine 2.5.1 или новее. Более старый Engine откажется их устанавливать. Агенты скачиваются отдельно, так что можно установить только нужный. Оба работают для персонажей и персон в чатах Roleplay и Game и во время чата не отправляют дополнительных запросов к вашим моделям ИИ.
- Откройте Agents → Agent Organizer (агенты → организатор агентов) и установите 2D Avatars, 3D Avatars или оба. Перезапуск не нужен ни одному из них.
- Настройте каждый аватар на странице агента (смотрите Настройка аватара).
- В чате Roleplay или Game откройте Chat Settings → Agents → Misc Agents (настройки чата → агенты → прочие агенты) и добавьте агента.
Аватар появляется в чате Roleplay, Visual Novel или Game, если в чате включены агенты и добавлен подходящий агент. Он работает и с агентом Expression Engine, и без него. Аватар не скрывает спрайт во весь рост, поэтому выключите спрайт сами, если аватар его заменяет. Аватары стоят там, где стоял бы спрайт во весь рост, и имеют тот же размер.
Настройка аватара
Откройте Agents, затем 2D Avatars или 3D Avatars, и воспользуйтесь разделом Avatars (аватары) в верхней части страницы.
- В поле Character or persona (персонаж или персона) выберите, кому достанется аватар. У имен с пометкой "(has an avatar)" аватар уже есть.
- В поле Avatar type (тип аватара) выберите вид. 2D Avatars предлагает PNGTuber sprites (спрайты PNGTuber) и Mesh avatar (mesh-аватар). 3D Avatars предлагает VRM model (модель VRM), MMD PMX model (модель MMD PMX) и GLB or FBX model (модель GLB или FBX).
- Настройте его в разделе этого типа ниже: используйте свои спрайты или импортируйте файл, выберите выражение лица для каждой эмоции или удалите аватар.
- Проверьте результат в блоке Preview (предпросмотр). Try a face (попробовать выражение) переключает эмоции, а Talk (говорить) двигает ртом. Пока показывать нечего, в предпросмотре виден пример аватара.
- Включите Show this avatar in chats (показывать этот аватар в чатах).
Show this avatar in chats включает и выключает настроенный аватар, не удаляя его. Переключатель остается выключенным, пока вы не настроите аватар или подходящие спрайты. Одно изображение профиля не создает 2D-аватар.
В разделе Movement (движение) три переключателя для всех типов: Lip sync (синхронизация губ) двигает ртом, Blinking (моргание) моргает каждые несколько секунд, а Idle motion (движение в покое) заставляет аватар дышать и покачиваться в ожидании. Если у персонажа несколько типов аватара, Show this one (показывать этот) выбирает тип, который используют чаты. Если агент этого типа в чате выключен, чат показывает другой тип, агент которого включен. Удаление типа стирает его файлы. Ваши спрайты остаются.
Размер и расположение аватаров в чате
- Откройте Chat Settings → Agents, затем Avatars.
- Выберите аватар в списке и воспользуйтесь его ползунком размера.
- Нажмите Arrange (расставить), чтобы перемещать аватары. Перетаскивайте их мышью или пальцем либо выделите аватар и двигайте его клавишами со стрелками (с зажатой <kbd>Shift</kbd> – дальше).
- Нажмите Done (готово). Аватары останутся там, куда вы их поставили, а нажатия снова будут попадать в чат. Reset (сбросить) возвращает все аватары на исходные места.
У 3D-аватара есть еще Framing (кадрирование): Portrait (портрет) показывает голову и плечи (по умолчанию), Half body (полфигуры) – модель до бедер, а Full body (во весь рост) – всю модель. Аватар сохраняет свой размер, а более высокий кадр показывает больше модели. У 2D-аватаров кадрирования нет.
Расположение сохраняется для этого чата на этом устройстве. С другими устройствами оно не синхронизируется. Собственная кнопка Arrange агента Expression Engine тоже перемещает аватары.
Где хранятся файлы аватаров
Импортированные файлы проверяются перед сохранением. Единственное ограничение размера – обычный лимит загрузки сервера. Файлы лежат в папке данных в avatar-models/<character or persona>/<id>/, рядом с файлом avatar.json с настройками. Резервные копии и экспорт профиля включают эту папку. Удаление персонажа или персоны удаляет и аватар; то же происходит при очистке всех Characters (персонажи), Personas (персоны) или Media & Assets (медиа и файлы) в разделе Danger Zone настроек. Экспорт карточек персонажей никогда не включает аватары.
Групповые чаты
Групповые чаты показывают всех участников с сохраненным и включенным аватаром, чей агент включен, без фиксированного ограничения. В режиме Individual говорит и выражает эмоции отвечающий персонаж. В режиме Merged (Narrator) теги говорящего и реплики с указанием имени направляют нужного персонажа. При включенных голосах синхронизация губ следует за персонажем, чей голос воспроизводится.
2D-аватары: спрайты PNGTuber и mesh-аватары
2D Avatars показывает один из двух видов аватара. PNGTuber sprites – плоские картинки, которые меняют выражения лица, открывают рот и моргают. Mesh avatars (mesh-аватары) – рисунки, которые плавно двигают головой, глазами и ртом. Оба вида настраиваются на странице агента, после того как вы выберете персонажа или персону.
Спрайты PNGTuber
Персонаж или персона со спрайтами выражений лица может использовать их как аватар PNGTuber: спрайты служат выражениями лица. Если есть портретные спрайты, используются они, иначе – спрайты во весь рост, так что один аватар никогда не смешивает оба вида. Посмотрите предпросмотр, затем включите Show this avatar in chats или сохраните спрайты через Use my sprites (использовать мои спрайты).
- Картинки речи и моргания. Добавьте спрайты с названием выражения и окончанием
_talkдля открытого рта и_blinkдля закрытых глаз, напримерhappy_talk,happy_blinkиhappy_blink_talkдля обоих сразу. Подходят и_talking,_speak,_mouth_open,_blinkingи_eyes_closed. Выражение без таких картинок все равно подпрыгивает, пока говорит. - Выражение для каждой эмоции. Выберите, какое выражение лица показывается для Neutral, Happy, Angry, Sad, Relaxed и Surprised. Resting face (лицо в покое) использует выражение Neutral. Предлагается каждый спрайт, в том числе добавленный позже, – до 64 выражений. Импорт PNGTuber Plus предлагает только собственные выражения. Когда Expression Engine или Game Master (ведущий игры) выбирает спрайт, который у вас есть, показывается именно это выражение.
- Дополнительные эмоции. В разделе Face for each feeling (выражение для каждой эмоции) раскройте More feelings (дополнительные эмоции), чтобы выбрать выражение для 23 более конкретных эмоций, сгруппированных по шести основным (таблица ниже). Каждая из них использует выражение своей основной эмоции, пока вы не выберете другое. Спрайт, названный по одной из них, например
fear,amusementили словом вродеscaredилиlaughing, используется для нее без всякой настройки. - Движение. Hop while talking (подпрыгивать во время речи) и Hop height (высота прыжка) задают подпрыгивание. Time between blinks (время между морганиями) – это среднее значение. Каждое моргание наступает чуть раньше или чуть позже. Если на устройстве включено уменьшение анимации, аватар не подпрыгивает и не дышит, но его выражение лица и рот все равно меняются.
- Спрайты показываются как есть. Спрайт, нарисованный на фоне, показывается вместе с фоном, а ваши файлы никогда не изменяются. Выражения лица без фона можно сделать в разделе Выражения лица по аватару.
- Use my sprites сохраняет спрайты как выражения лица. Выбор выражения или изменение движения тоже сохраняют аватар. Update from sprites (обновить из спрайтов) подхватывает спрайты, добавленные позже, и сохраняет выбранные вами выражения. После импорта нажмите Remove (удалить), чтобы вернуться к своим спрайтам.
| Дополнительные эмоции в группе | Эмоции |
| Neutral | Curiosity |
| Happy | Admiration, Amusement, Desire, Embarrassment, Excitement, Gratitude, Optimism, Pride |
| Angry | Annoyance, Disapproval, Disgust |
| Sad | Disappointment, Grief, Nervousness, Remorse |
| Relaxed | Approval, Caring, Love, Relief |
| Surprised | Confusion, Fear, Realization |
Import PNGTuber Plus save (импортировать сохранение PNGTuber Plus) читает аватар, сохраненный программой PNGTuber Plus (файл .save). Каждый костюм становится одним выражением лица, а его слои речи и моргания – картинками речи и моргания. Костюмы сопоставляются с эмоциями по названиям картинок, например angry eyes.png. Для эмоций, которые названия не покрыли, выберите выражение сами. Кое-что не переносится:
- Покачивание, инерция, поворот и растяжение не импортируются. Аватар показывает каждый слой в покое.
- Анимированные слои показывают только первый кадр.
- Очень старые сохранения хранят только пути к картинкам на компьютере автора. Сначала пересохраните их в более новой версии PNGTuber Plus.
- Очень большой аватар уменьшается до 2048 пикселей, чтобы телефоны могли удержать в памяти все картинки.
Для импорта сохранения нужна обработка изображений на сервере. В некоторых установках на Android (Termux) ее нет, и там импорт отклоняется с сообщением.
Mesh-аватары
Mesh-аватар – это файл .mavatar. Marinara может сделать его из спрайта (смотрите Mesh-аватар), или вы можете сделать его в Mesh Avatar Studio (смотрите Mesh Avatar Studio). Нажмите Import .mavatar file (импортировать файл .mavatar), чтобы добавить его, или Replace file (заменить файл), чтобы заменить. При включенном движении в покое аватар сам дышит и оглядывается. Он моргает, а его рот следует за ответом. Если в файле есть нарисованные формы рта, используются они. Иначе рисуются простые.
В разделе Look for each feeling (облик для каждой эмоции) выберите, что показывает каждая эмоция: одну из шести эмоций или Smile (улыбка), Shy (смущение), Half-closed eyes (полузакрытые глаза) или Wink (подмигивание).
Каждый файл проверяется при импорте. Поврежденный файл, файл, слишком детализированный для плавного воспроизведения, или файл, который после распаковки превышает лимит загрузки, отклоняется с кратким объяснением причины. Сохраняются только нужные аватару части, так что исходная иллюстрация внутри файла не хранится. Рисунок принадлежит его автору, поэтому проверьте лицензию, прежде чем делиться им.
Mesh-аватарам нужен WebGL2, который есть в современных браузерах. Без него, а также когда браузер останавливает графику ради экономии памяти, вместо аватара показывается ваша настройка PNGTuber или ваши спрайты.
3D-аватары: модели VRM
3D Avatars показывает модели VRM – формат, в который экспортируют VRoid Studio, надстройка VRM add-on for Blender и UniVRM для Unity. Подходят файлы и VRM 1.0, и VRM 0.x. Если модели еще нет, сделайте ее в VRoid Studio, бесплатной программе.
- Откройте 3D Avatars и выберите персонажа или персону.
- В разделе VRM model нажмите Import VRM (импортировать VRM) и выберите файл
.vrm. - Прочитайте The author's terms (условия автора). Они берутся из файла модели и говорят, кто может использовать модель как аватар, разрешены ли коммерческое использование, изменения и сексуальный или очень жестокий контент, а для VRM 1.0 – нужно ли указывать автора и можно ли распространять файл. Откройте и все ссылки на лицензию в файле. Marinara показывает условия, но не следит за их соблюдением, поэтому соблюдайте их сами.
- В разделе Faces and mouth shapes (выражения лица и формы рта) проверьте, какое выражение модели показывает каждое выражение лица (Neutral, Happy, Angry, Sad, Relaxed, Surprised), каждую форму рта (A, I, U, E, O) и моргание. Set by the model (задано моделью) означает, что у модели есть стандартное выражение VRM. Guessed from its name (угадано по названию) означает, что у одного из ее собственных выражений подходящее название. Пустое выражение ничего не меняет, поэтому его подставляют только для Neutral. Если догадка кажется неверной, выберите другое выражение или None (нет).
- По желанию добавьте в разделе Idle animation (анимация в покое) файл
.vrma, который модель будет проигрывать в ожидании. Без него она мягко дышит и покачивается.
Replace model (заменить модель) сохраняет анимацию в покое, потому что анимации VRM подходят к любой модели VRM. Remove model (удалить модель) удаляет и модель, и анимацию.
В чате модель смотрит на вас, сама моргает, если у нее есть выражение моргания, и наклоняет голову, когда думает или слушает. Некоторые модели VRM 1.0 не двигают ртом, пока показывают выражение лица. Когда такая модель говорит, это выражение показывается не в полную силу, чтобы рот мог двигаться. При включенном уменьшении анимации выражение лица и рот по-прежнему меняются, но модель перестает покачиваться, дышать и проигрывать анимацию в покое.
Если не получилось, импорт объясняет почему. Обычные причины:
- Сжатые модели. Сжатие Draco или meshopt либо текстуры KTX2 не загружаются. Экспортируйте модель заново с выключенным сжатием.
- Обычные 3D-модели. У файла
.glbили.gltfбез данных VRM нет выражений лица и гуманоидного скелета. Импортируйте.glbсо скелетом как GLB or FBX model (смотрите Аватары GLB и FBX) или преобразуйте его в VRM (смотрите Blender). - Неполные модели. Модель отклоняется, если в ней нет костей, нужных VRM, или она ссылается на части, которых нет в файле, либо на файлы вне него.
Большие модели загружаются дольше, особенно на телефонах.
Аватары MMD: модели PMX и анимации VMD
- На странице 3D Avatars выберите MMD PMX model в поле Avatar type.
- Нажмите Import PMX or ZIP (импорт PMX или ZIP). Выберите ZIP с одной моделью PMX и ее изображениями. Сохраните папки и имена файлов модели, включая японские названия. Модель, которой не нужны изображения, может быть отдельным файлом
.pmx. - В разделе Faces and mouth shapes выберите выражение для каждой эмоции, формы рта и моргания. Распространенные английские и японские названия сопоставляются автоматически. Проверьте предпросмотр и исправьте неверные догадки. Модель без подходящих выражений лица все равно может отображаться и двигать телом.
- По желанию добавьте в разделе VMD motion (анимация VMD) файл
.vmd, созданный для этой модели. Он воспроизводится, пока включен Idle motion, а выбранные выражения лица по-прежнему следуют за чатом. Без VMD модель слегка покачивается.
Отсутствующие изображения, небезопасные пути и поврежденные файлы отклоняются до того, как заменят сохраненную модель. В настройках перечислены первые 256 названий выражений; если их больше, появится предупреждение. Замена PMX удаляет прежний VMD, поэтому добавьте анимацию для новой модели. Удаление модели MMD удаляет ее изображения и анимацию, не затрагивая другие типы аватаров. Уменьшение анимации останавливает анимацию, но сохраняет выражения лица и синхронизацию губ.
Поддерживаются модели PMX 2.0 и совместимые модели PMX 2.1 с изображениями PNG, JPEG, BMP и TGA, в том числе .sph и .spa. Некоторые новые возможности PMX 2.1 не поддерживаются, и импорт сообщает причину. Модели PMD, позы VPD и анимации камеры или света не поддерживаются. Физика не моделируется, поэтому волосы и одежда могут выглядеть иначе, чем в MikuMikuDance. Модели с более чем 256 путями к изображениям, очень длинными путями, изображениями, требующими слишком много памяти, или чрезмерно сложными скелетами отклоняются. Проверьте свою модель, особенно на телефоне.
Аватарам MMD нужен WebGL2, и они используют те же настройки паузы, частоты кадров и кадрирования, что и остальные аватары. Модели загружаются только из вашего Engine. Соблюдайте лицензии и условия авторов. Импорт и воспроизведение такой модели ничего не передают сервису ИИ.
Аватары GLB и FBX: модели со скелетом
- На странице 3D Avatars выберите GLB or FBX model в поле Avatar type.
- Нажмите Import GLB or FBX (импорт GLB или FBX) и выберите один файл
.glbили.fbxс персонажем, у которого настроен скелет.
У обычной модели нет данных VRM, которые называют ее кости, поэтому импорт сопоставляет кости по названиям. Скелеты из Mixamo, Unity, VRoid, Unreal, Blender, 3ds Max, Maya HumanIK, Character Creator и DAZ используют названия, которые он распознает. Раздел показывает, сколько костей тела удалось сопоставить. Модели нужны как минимум кости таза, позвоночника и головы, а также плеча и предплечья на обеих руках. Иначе импорт отклоняет модель и называет недостающие кости. Переименуйте их в своей 3D-программе или добавьте модели скелет в Mixamo. Модели в A-позе, повернутые спиной или сделанные в сантиметрах, выпрямляются, разворачиваются и масштабируются автоматически.
Выражения лица берутся из ключей формы модели (blend shapes, их также называют shape keys или morph targets). В разделе Faces and mouth shapes распространенные названия сопоставляются автоматически: формы рта VRoid, VRChat и Oculus (aa, A, viseme_aa, Fcl_MTH_A), открытая челюсть (mouthOpen, jawOpen), эмоции (happy, Joy, mouthSmile) и моргание (blink или пара для левого и правого глаза, например eyeBlinkLeft и eyeBlinkRight из ARKit). Проверьте предпросмотр и исправьте неверные догадки. Модель без ключей формы все равно двигает телом и кивает во время речи.
Поддерживаются двоичный glTF (.glb), в который встроено все содержимое, и FBX 2014 (7.4) или новее, двоичный или ASCII. Экспортируйте FBX с включенным параметром Embed Media (встраивать медиа) или Embed Textures (встраивать текстуры), иначе модель показывается без своих изображений. Сжатие Draco, meshopt и KTX2 не загружается, а отдельный .gltf с собственными файлами использовать нельзя. VRM, сохраненный как .glb, относится к разделу VRM model. Собственные анимации модели, физика и редактирование позы не поддерживаются. Соблюдайте условия автора. Импорт и воспроизведение такой модели ничего не передают сервису ИИ.
Как получить 3D-модель
Если у персонажа или персоны нет модели VRM, сделайте ее в VRoid Studio. Это бесплатная программа от pixiv для Windows, macOS и iPad. Сделанные в ней модели вы можете использовать как свои, но у некоторых встроенных элементов и у любых купленных текстур собственные условия. Ее модели уже содержат шесть выражений лица, пять форм рта и моргание, поэтому выражения лица и синхронизация губ работают сразу.
На странице 3D Avatars выберите персонажа или персону. В разделе Get a 3D model (получить 3D-модель) кнопка Read the guide (прочитать руководство) открывает этот раздел, а Copy prompt (скопировать промпт) копирует описание внешности.
- Скачайте и установите VRoid Studio.
- По желанию нажмите Copy prompt, вставьте промпт в генератор изображений и используйте картинку как образец. В VRoid Studio нет поля для промпта.
- В VRoid Studio создайте новую модель. Выберите прическу, лицо, глаза, тело и одежду, наиболее близкие к персонажу, затем измените формы и цвета, чтобы они совпали.
- Экспортируйте модель в формате VRM (1.0 или 0.0). Когда появится запрос, заполните сведения о модели и условия ее использования.
- Откройте 3D Avatars в Agents, выберите персонажа или персону и нажмите Import VRM в разделе VRM model. У модели из VRoid Studio все выражения лица, формы рта и моргание уже заполнены.
Промпт описывает персонажа для инструментов, которые делают картинку или 3D-модель по тексту: персонаж в аниме-стиле во весь рост в T-позе, вид спереди на однотонном фоне. Внешность берется из поля Appearance (внешность), из тегов Image Appearance Override (отдельное описание внешности для изображений), если они включены, или из описания, если внешность не задана. В промпте есть только имя и внешность: ничего другого из карточки и ничего из ваших чатов. Промпт на английском. Меняйте его как угодно.
У модели VRM из другого инструмента выражений может быть меньше или не быть вовсе. Какие есть, показывает раздел Faces and mouth shapes. Некоторые сайты обещают сделать VRM с выражениями лица по картинке, но в октябре 2026 года ни одно такое обещание подтвердить не удалось, поэтому это руководство ни один из них не рекомендует. Модель, сделанная раньше удаленным генератором Tripo, по-прежнему загружается и двигает телом, но ее лицо неподвижно.
Как выражения лица и рот следуют за ответом
Аватары реагируют сами. Здесь ничего настраивать не нужно.
Выражения лица в Roleplay. Пока ответ приходит по частям, Marinara читает каждое законченное предложение и угадывает его настроение. Чтобы выражение лица не мелькало:
- Выражение меняется, только если новое настроение явно сильнее текущего.
- Выражение держится не меньше двух секунд.
- Лицо возвращается к спокойному выражению после двух спокойных предложений подряд, а также примерно через четыре секунды после конца ответа.
При выключенном стриминге у каждого предложения по-прежнему свое настроение, и выражения лица меняются по порядку за время произнесения ответа. Когда синтез речи читает ответ, выражения лица вместо этого следуют за голосом (смотрите ниже).
Аватар PNGTuber с выражениями для дополнительных эмоций может показывать более конкретную эмоцию, например Amusement при настроении Happy. Такое выражение подчиняется тем же правилам, а эмоция без собственного выражения показывает выражение своей основной эмоции. Так же работает выбор Expression Engine и Game Master: если нет выражения с названием scared, аватар показывает Fear. 3D- и mesh-аватары показывают только шесть эмоций.
Как определяется настроение. Модель чата при этом не задействуется, а текст чата никогда не отправляется во внешний сервис.
- Встроенный список слов отвечает сразу и везде и знает распространенные слова настроения на нескольких языках.
- На компьютерах, способных ее запустить, предложения вместо этого читает небольшая модель эмоций – определитель настроения. Он понимает 36 языков. Он скачивается один раз, около 300 МБ, когда вы впервые открываете чат Roleplay с включенным 2D Avatars или 3D Avatars. Страница каждого агента аватаров в Agents показывает ход скачивания. Неудачное скачивание повторяется примерно через 10 минут. Пока определитель не готов, отвечает список слов, а после скачивания он работает без интернета. Во время работы он занимает около 1 ГБ памяти и выгружается после 10 минут простоя. Сборки Lite, Android и компьютеры, где памяти меньше 3 ГБ, остаются на списке слов.
Выражения лица в Game Mode. Каждая реплика, которую показывает Game Master, приходит с выражением лица, и аватар говорящего персонажа его принимает, даже когда реплику читает голос. Внутренние мысли меняют выражение лица, но не рот.
Expression Engine. Если этот агент включен, его выбор после ответа становится окончательным выражением лица для этого ответа. Выбор, который приходит уже после того, как вы отправили следующее сообщение, остается при своем ответе. При синтезе речи выбор показывается, когда голос заканчивает чтение.
Рот. По тексту рот двигается только на прямой речи (слова в кавычках, строки [Name]: и теги говорящего), а не на повествовании, примерно в темпе речи. Если текст появляется быстрее, чем кто-либо успел бы его произнести, рот ускоряется, а затем перескакивает вперед. При выключенном стриминге прямая речь ответа проговаривается не дольше чем за восемь секунд. Когда реплику воспроизводит синтез речи, рот вместо этого двигает голос.
Тело. Аватар думает с момента отправки вашего сообщения до своих первых слов, говорит, пока двигается его рот, слушает, пока говорит кто-то другой или пока вы печатаете, а в остальное время отдыхает.
Групповые чаты. В группе Individual говорит тот участник, который отвечает, в том числе когда вы делаете свайп сообщения одного из участников. В группе Merged тег говорящего направляет речь и выражение лица этого персонажа, даже в абзаце, где назван кто-то другой. Реплики с указанием имени тоже следуют за своим говорящим. Повествование без тегов принадлежит первому персонажу, которого оно называет, или предыдущему персонажу. Пока абзац, где никто не назван, еще появляется, его прямая речь ждет, пока имя или конец абзаца не покажут, кто говорит. При выключенном стриминге в группе Individual аватар пока двигает только ответ последнего участника.
Синхронизация губ с синтезом речи
Когда синтез речи читает ответ в Roleplay, аватар говорящего персонажа двигает ртом в такт голосу. На громких звуках рот открывается шире, в паузах закрывается, на звуках вроде "у" округляется, а на звуках вроде "с" показывает зубы. Чтобы включить синхронизацию, настройте синтез речи, как описано в руководстве Настройка синтеза речи (TTS). Тогда она работает с Auto-play (автовоспроизведение) и с кнопкой Speak (озвучить) у сообщения, в том числе в виде визуальной новеллы.
Когда ответ читается вслух при включенном Auto-play, голос обычно начинается через несколько секунд после появления текста, поэтому аватар его ждет.
- Пока текст появляется, аватар моргает и двигается как обычно, но его рот остается закрытым, а выражение лица пока не меняется.
- Когда голос начинается, рот следует за голосом, а выражение лица меняется, когда голос доходит до каждого предложения, если только Expression Engine еще не выбрал выражение.
- Лицо расслабляется примерно через четыре секунды после конца голоса. Короткие паузы между репликами его не расслабляют.
- Если голос не удается воспроизвести или он не начинается в течение нескольких секунд, аватар один раз проигрывает выражения лица и движения рта ответа по тексту. Если сбой случается позже, аватар показывает последнее настроение и расслабляется.
- Через 30 секунд без голоса аватар перестает ждать. Голос, который начнется позже, все равно двигает рот.
Подробности:
- Кто говорит. Двигается рот того персонажа, чьим голосом читается реплика, – того, для которого Voice option (выбор голоса) подбирает голос. Рот каждого персонажа двигается только во время его собственных реплик. Реплики, прочитанные голосом рассказчика, и говорящие, которые не являются персонажами чата, ничей рот не двигают. Если Only read dialogues (читать только диалоги) выключено, собственное повествование персонажа читается его голосом и двигает его рот.
- Пауза, остановка и переключение чатов. Пауза или остановка голоса останавливает рот. Если вы переключитесь на другой чат, пока ответ читается, аватары там остаются неподвижными. Вернитесь, пока голос еще звучит, и аватар снова подхватит его.
- Громкость. Line volume (громкость реплики) меняет громкость, а не то, насколько широко открывается рот.
- Персоны. Рот персоны не двигается на ваших собственных сообщениях.
- Game Mode. Если включены синтез речи и Auto-play, рты ждут голоса своего персонажа и следуют за ним. Реплики без голоса сохраняют анимацию по тексту. Голоса рассказчика и игрока не двигают рот ни одного персонажа. Внутренние мысли остаются непроизнесенными.
Синхронизация губ не меняет воспроизведение голоса. Marinara читает отдельную копию каждого фрагмента, чтобы рассчитать движение рта, поэтому воспроизведение работает как раньше, в том числе в Safari и на iPhone и iPad. Если первый фрагмент начинается до того, как расчет готов, его текст двигает рот, пока управление не перейдет к расчету по голосу. Если браузер не может прочитать фрагмент, голос все равно звучит, и только рот перестает за ним следовать.
Создание аватара из спрайта
На странице 2D Avatars выберите персонажа или персону, затем воспользуйтесь разделом Make an avatar from a sprite (сделать аватар из спрайта). Он работает со спрайтами, которые у них уже есть. Ваш аватар не меняется, пока вы не сохраните результат, так что пробовать можно сколько угодно.
Выражения лица по аватару
Make faces from the avatar (сделать выражения лица по аватару) создает выражения лица без фона, в том числе для персонажа или персоны, у которых еще нет спрайтов. Для этого нужны аватар и аккаунт для генерации изображений. Кнопка открывает ту же генерацию спрайтов, что и в редакторах персонажа и персоны, с аватаром в качестве образца.
- Выберите All faces (все выражения), чтобы сделать все 29 эмоций, Main faces (основные выражения) – для шести основных, или выберите выражения сами. Каждая дополнительная эмоция стоит в строке своего основного выражения, пока у нее нет собственного выражения.
- Выражения рисуются партиями, сначала основные. Старые модели GPT Image рисуют по одному выражению на картинку. Неудавшаяся картинка повторяется один раз. Если и это не удается, работа останавливается с кнопкой Retry picture (повторить картинку). Cancel (отмена) сохраняет уже готовые выражения.
- Если включено Expose media prompts before sending (показывать промпты медиа перед отправкой), вы просматриваете все промпты сразу, до отправки первого. Каждое выражение рисуется с открытыми глазами и закрытым ртом, чтобы картинкам моргания и речи было что закрывать и открывать.
- Marinara рисует выражения на однотонном фоне, убирает его и сохраняет их как спрайты персонажа или персоны. Новый спрайт заменяет спрайт с тем же названием, поэтому, чтобы сохранить старый, переименуйте новый на последнем шаге.
Если аватар уже сохранен, каждое новое выражение становится выражением той эмоции, для которой оно нарисовано, даже если вы его переименовали. Остальные спрайты остаются. Заново сделанное выражение начинается без картинок моргания и речи, потому что старые к нему не подойдут. Сделайте новые в разделе Картинки моргания и речи. Импорт PNGTuber Plus сохраняет собственные выражения.
Картинки моргания и речи
Каждое выражение, которое аватар показывает для эмоции, – это одна строка, где рядом с Face (выражение) стоят его картинки Eyes closed (глаза закрыты) и Mouth open (рот открыт). Это сохраненные вами картинки, добавленные вами спрайты _blink и _talk или новые. Если есть портретные спрайты, используются только они, потому что аватар никогда не смешивает портретные выражения и выражения во весь рост. Выражение, которое не является одним из ваших спрайтов, например из импорта PNGTuber Plus, показывает свои картинки, но новые для него сделать нельзя.
- Проверьте Image model (модель изображений) – ваш аккаунт для изображений по умолчанию уже выбран.
- Нажмите Make (сделать) для одной недостающей картинки или кнопку Make N pictures (сделать N картинок) для всех. Каждая картинка – это один запрос изображения. Если включено Expose media prompts before sending (в настройках), вы сначала увидите каждый промпт и сможете его отредактировать.
- Новые картинки появляются по одной. Нажмите Keep (оставить) на удачных и Try again (повторить) на остальных. Try again также перерисовывает картинку, которая у вас уже есть. Перерисовываемая картинка остается затемненной со значком загрузки. Cancel останавливает ее, в том числе на сервере. Если Try again не удается, остается старая картинка. Чтобы переделать оставленную картинку, сначала нажмите Kept (оставлено), чтобы отказаться от нее.
- Нажмите Save kept pictures (сохранить оставленные картинки). Они становятся картинками моргания и речи аватара рядом с копией спрайта, по которому нарисованы, поэтому всегда с ним совпадают. Если вы замените спрайт до сохранения, сделайте его картинки заново.
Если аккаунт для изображений принимает картинку-образец, ваш спрайт становится единственным образцом, в том размере и тех пропорциях, которые принимает модель, вместе с промптом, который просит изменить только глаза или рот. Модели сдвигают, масштабируют или дополняют полями картинку, которую возвращают, поэтому сначала она выравнивается по вашему спрайту. Из нее берутся только глаза (для моргания) или рот (для речи). Все остальное остается собственными пикселями вашего спрайта, поэтому аватар не дергается. Если глаза не закрылись, рот не открылся или картинка сдвинута слишком далеко, чтобы ее выровнять, картинка не создается и появляется сообщение. Попробуйте еще раз.
Некоторые аккаунты не умеют редактировать картинки, например Pollinations, Together AI, Horde, DALL-E или процесс ComfyUI без места для картинки-образца. С таким аккаунтом Make рисует новое выражение лица вместе с его картинками моргания и речи на одной картинке, чтобы все три совпадали, как в разделе Выражения лица по аватару. Строка показывает New face. Keep оставляет выражение вместе с обеими картинками, а при сохранении новое выражение становится выражением этой эмоции. Сам ваш спрайт не меняется. Для этого у персонажа или персоны должна быть заполнена внешность или описание.
Mesh-аватар
- Выберите Sprite to use (спрайт для аватара). Если есть нейтральный спрайт во весь рост, он выбирается за вас. Лучше всего подходит спрайт анфас во весь рост или погрудный.
- Выберите Chat provider that can see pictures (провайдер чата, который видит картинки). The agent's provider (провайдер агента) использует провайдера, заданного на странице 2D Avatars, а если его нет – ваш аккаунт агентов по умолчанию. Его модель должна принимать картинки.
- Нажмите Make mesh avatar (сделать mesh-аватар). Модель чата находит лицо, а Marinara строит аватар из вашего спрайта как есть. Cancel останавливает процесс.
- Проверьте предпросмотр: контуры должны лежать на глазах, бровях и рте. Нажмите Save as mesh avatar (сохранить как mesh-аватар) или Discard (отбросить) и попробуйте другой спрайт или другую модель.
Созданный mesh-аватар двигает головой, глазами, бровями и ртом, а моргает и говорит собственными веками и ртом. Волосы двигаются вместе с головой. Руки, отдельные пряди и свисающие аксессуары отдельно не анимируются. Для небольших спрайтов аватар собирается из увеличенной копии, чтобы рот подходил к лицу. Если лицо занимает большую часть крупного спрайта, используется уменьшенная копия, чтобы создание оставалось быстрым.
Для картинок моргания и речи ваш спрайт отправляется в аккаунт для изображений (и в его резервный аккаунт для изображений, если он задан и принимает образец), а для mesh-аватара – в модель чата. Аккаунт, который не умеет редактировать картинки, получает только промпт, в который входит внешность. Промпты поставляются вместе с агентом 2D Avatars. Если включено Expose media prompts before sending, вы можете прочитать и изменить каждый промпт. Если включен режим отладки, каждый промпт записывается в журнал сервера.
Как сделать свою модель
Персонаж или персона может использовать свои спрайты выражений лица как аватар PNGTuber, ничего не рисуя. Создание аватара из спрайта добавит картинки моргания и речи или построит mesh-аватар за вас. Чтобы сделать свою модель, воспользуйтесь одним из этих инструментов. Импортируйте каждый файл на странице агента в Agents и включите Show this avatar in chats.
| Что вам нужно | Инструмент | Что получится |
| Спрайты PNGTuber | Любая программа для рисования, затем вкладка Sprites (спрайты) персонажа | Спрайты |
| Спрайты PNGTuber со слоями и костюмами | PNGTuber Plus | Файл .save |
| Mesh-аватар | Mesh Avatar Studio | Файл .mavatar |
| 3D-модель | VRoid Studio или Blender с VRM Add-on for Blender | Файл .vrm и по желанию анимация в покое .vrma |
Свои спрайты
- Нарисуйте по одной картинке на каждую эмоцию, все одного размера и с персонажем на одном и том же месте. Назовите каждую по ее эмоции:
neutral,happy,angry,sad,relaxed,surprised. Подходят и названия, содержащие слово эмоции, напримерsmile,cry,calmилиshock. Для необязательных дополнительных эмоций назовите картинки, например,amusement,fearилиgratitude. - Чтобы рот двигался, нарисуйте ту же картинку с открытым ртом и добавьте к ее названию
_talk, напримерhappy_talk. Для моргания закройте глаза и добавьте_blink. Для обоих сразу добавьте_blink_talk. - Добавьте картинки на вкладке Sprites, в категории Facial Expressions (выражения лица). Имя каждого файла становится названием его спрайта. Смотрите Спрайты персонажа (выражения лица и Full-body).
- Откройте 2D Avatars в Agents, выберите персонажа или персону и включите Show this avatar in chats.
PNGTuber Plus
- Соберите аватар из отдельных слоев. Показывайте открытый рот только во время речи, а закрытый – только в тишине. Показывайте закрытые глаза только при моргании, а открытые – только когда аватар не моргает.
- Для каждой эмоции сделайте костюм, который меняет глаза или рот, и назовите эти картинки по эмоции, например
angry eyes.pngилиhappy_mouth.png. Более конкретные эмоции работают так же, напримерfear eyes.png. Костюм 1 – это лицо в покое. - Сохраните аватар, чтобы получить файл
.save. - Откройте 2D Avatars в Agents, выберите персонажа или персону, затем PNGTuber sprites и Import PNGTuber Plus save. Для эмоций, которые названия не покрыли, выберите выражение сами.
Mesh Avatar Studio
- Начните с картинки анфас, где видны голова и плечи, на прозрачном фоне. Mesh Avatar Studio работает на вашем компьютере через Node.js, а готовит картинку к анимации агент для программирования, например Claude Code или Codex. Его README проведет вас по всем шагам.
- По желанию добавьте нарисованные глаза и рты в разделе Drawn variants (нарисованные варианты). Marinara использует формы рта
mouth_a,mouth_i,mouth_oиmouth_a_halfи закрытые глазаeyes_closed_0иeyes_closed_1. Шесть эмоций встроены в каждый mesh-аватар, так что называть ничего не нужно. - Выберите Export .mavatar. Не упаковывайте папку проекта в ZIP сами.
- Откройте 2D Avatars в Agents, выберите персонажа или персону, затем Mesh avatar и Import .mavatar file.
VRoid Studio
- Создайте персонажа в VRoid Studio. Его выражения лица, формы рта и моргание – стандартные выражения VRM, поэтому они находятся автоматически.
- Экспортируйте его в формате VRM (1.0 или 0.0). Когда появится запрос, заполните сведения о модели и условия ее использования.
- Откройте 3D Avatars в Agents, выберите персонажа или персону и нажмите Import VRM.
Blender и VRM Add-on for Blender
- Установите VRM Add-on for Blender из раздела Get Extensions (получить расширения) в Preferences (настройки) программы Blender. В Blender до версии 4.2 ZIP-файл надстройки устанавливается вместо этого в разделе Add-ons (дополнения).
- Дайте модели гуманоидный скелет (armature) и назначьте его кости VRM. Надстройка умеет назначать их автоматически.
- Настройте выражения на панели VRM надстройки: Expressions (выражения) для VRM 1.0 или VRM 0.x Blend Shape Proxy для VRM 0.x. Каждое выражение должно двигать ключ формы (shape key) или материал: пустое выражение ничего не меняет, поэтому импорт использует его только для Neutral. Свои выражения с понятным названием, например
SmileилиShock, тоже сопоставляются.
- Выражения лица: Happy, Angry, Sad, Relaxed и Surprised. В VRM 0.x первые четыре называются Joy, Angry, Sorrow и Fun, а готового выражения для удивления нет, поэтому добавьте свое с названием
Surprised. - Формы рта: Aa, Ih, Ou, Ee и Oh (A, I, U, E и O в VRM 0.x).
- Моргание: Blink.
- Экспортируйте через File → Export → VRM (.vrm). Для анимации в покое анимируйте скелет и используйте File → Export → VRM Animation (.vrma). Надстройка экспортирует анимацию только из модели, настроенной на VRM 1.0, поэтому, если анимация нужна, выберите VRM 1.0 на шаге 3.
- Откройте 3D Avatars в Agents, выберите персонажа или персону и нажмите Import VRM. Добавьте анимацию кнопкой Add animation (добавить анимацию) в разделе Idle animation.
Чего избегать при экспорте
- Сжатие. Сжатие Draco или meshopt и текстуры KTX2 не загружаются. Описанные выше экспорты в VRM их никогда не используют, но обычный экспорт glTF в Blender предлагает Draco, а оптимизаторы моделей могут добавить все три. Экспортируйте заново с выключенным сжатием.
- Обычный glTF. В обычном файле
.glbнет данных VRM, которые называют выражения лица и скелет. Импортируйте его как GLB or FBX model или экспортируйте.vrm. - Отдельные файлы. Модель, у которой текстуры или данные лежат в отдельных файлах, использовать нельзя. Экспортируйте один файл
.vrm. - Дополнительные эффекты PNGTuber Plus. Покачивание, инерция и анимация не переносятся. Каждый слой показывается в покое, а анимированный слой – своим первым кадром.
Производительность и устройства
Код отрисовки каждого типа аватара скачивается только тогда, когда аватар этого типа впервые появляется на экране, так что чаты без аватаров ничего лишнего не загружают.
| Телефоны | Компьютеры | |
| Аватаров на экране одновременно | Нет фиксированного лимита | Нет фиксированного лимита |
| Кадров в секунду во время речи | 30 | 30 |
| Кадров в секунду в покое | 20, или 15, когда телефон загружен | 30 |
| Четкость (pixel ratio) | до 1,5× | до 2× |
Чат показывает все настроенные и включенные аватары в порядке своих персонажей, затем вашей персоны. Настройте размер и расположение участников под свой экран. Аватары перестают отрисовываться, пока вкладка скрыта, окно в фоне, открыты настройки Appearance или чат вне экрана либо закрыт панелью или редактором. Если включено Reduce Ambient Animations & Effects (уменьшить фоновые анимации и эффекты) или уменьшение анимации на устройстве, аватары по-прежнему меняют выражения лица и двигают ртом, но пропускают дыхание, покачивание и позы ожидания.
Смежные руководства
- Агенты: помощники ИИ в чатах
- Справочник агентов для скачивания