跳转到内容

Live2D 快速入门

Live2D 让你的智能体通过动画虚拟形象来表达自己 — 实时响应情绪、动作和工具调用。本指南将带你完成从导入到第一个动画的完整设置流程。

AnySoul 将 Live2D Cubism 模型集成为智能体的动画虚拟形象。不再是静态图片,智能体的视觉表现会动态响应其情绪状态、动作,甚至工具使用。

与传统 VTuber 通过摄像头面部追踪让真人驱动模型不同,AnySoul 使用 语言模型的输出 来自动驱动你的虚拟形象。LLM 在对话中输出情绪和动作,你的映射规则将这些转换为 Live2D 参数动画 — 无需摄像头。

两种渲染模式:

  • Web — 在浏览器中直接渲染 Live2D 虚拟形象,与聊天界面并排显示
  • 桌面宠物 — 桌面上的透明叠加窗口(Electron 桌面应用)

支持的模型: Cubism 3、4 和 5(.model3.json 格式)

Live2D 的设置分为三个步骤。每个步骤对应 Live2D 设置面板中的一个标签页:

┌─────────────────────────────────────────────────────────────────┐
│ Live2D 设置流程 │
│ │
│ ① Model 标签页 ─── 导入与默认设置 │
│ │ 上传 ZIP → 设置默认参数值 │
│ │ (待机姿势: 眼睛开合度、嘴型、头部角度等) │
│ │ │
│ ▼ │
│ ② Mapping 标签页 ─── 动画片段 │
│ │ 创建可复用片段: │
│ │ "smile" → ParamMouthForm: 0→0.8, ParamEyeLOpen: 1→0.7 │
│ │ "think" → ParamAngleX: 0→-8, ParamEyeLOpen: 1→0.5 │
│ │ "speak" → ParamMouthOpenY: 循环 0↔0.6 (循环播放) │
│ │ │
│ │ 每个片段有播放模式: │
│ │ · One Shot — 播放一次就结束 │
│ │ · Loop — 重复播放直到触发结束 │
│ │ · Repeat N — 精确播放 N 次 │
│ │ │
│ │ 以及完成策略: │
│ │ · Complete — 即使触发结束也播完整个动画 │
│ │ · Bound — 触发结束时立即停止 │
│ │ │
│ ▼ │
│ ③ Mapping 标签页 ─── 规则 │
│ │ 连接 LLM 输出 → 片段: │
│ │ emotion=happy → 播放 "smile" 片段 │
│ │ emotion=thinking → 播放 "think" 片段 │
│ │ action=speaking → 播放 "speak" 片段 (循环) │
│ │ tool_call=web_search → 播放 "search" 片段 │
│ │ idle → 播放 "breathing" 片段 (循环) │
│ │ │
│ │ 所有匹配的规则同时触发。 │
│ │ 冲突通过片段优先级 + 混合模式解决。 │
│ ▼ │
│ │
│ 对话 → LLM 输出 emotion/action → 规则匹配 │
│ → 片段播放 → 参数动画 → 模型动起来 │
└─────────────────────────────────────────────────────────────────┘

你的 Live2D 模型需要打包为包含以下结构的 ZIP 文件

my-model.zip
├── model.model3.json # 必需 — 模型定义文件
├── textures/ # 纹理图片 (.png)
│ └── texture_00.png
├── motions/ # 动作文件 (.motion3.json)
│ ├── idle_01.motion3.json
│ └── happy.motion3.json
└── expressions/ # 表情文件 (.exp3.json)
├── smile.exp3.json
└── surprised.exp3.json

模型获取途径:

  1. 打开智能体的设置面板
  2. 导航到 Live2D Model 设置
  3. 点击 Model 标签页
  4. 点击 Upload Model (ZIP) 并选择你的 ZIP 文件
  5. 等待导入完成 — 模型会立即在预览区域渲染

导入后,智能体的立绘类型会自动切换为 Live2D 模式。

切换到 Parameters 标签页,配置模型的 待机基线 — 没有动画播放时模型保持的中性姿势:

  • 眼睛 — 将 ParamEyeLOpen / ParamEyeROpen 设为舒适的开合度(例如 0.85,自然的样子)
  • 嘴巴 — 设置 ParamMouthForm 的默认表情(-1 = 嘟嘴,0 = 中性,1 = 微笑)
  • 头部 — 如果想要轻微倾斜,调整 ParamAngleX/Y/Z
  • 空闲动作 — 在 Motions 区域,固定一个动作作为默认空闲(例如轻柔的呼吸循环)

这些默认值就是每个动画片段播放结束后模型回归的状态。

导入后可以:

  • 重命名 — 点击模型名称旁边的铅笔图标
  • 导出 — 下载 ZIP 用于备份或分享
  • 删除 — 移除模型并切换回静态图片模式
  • 鼠标跟踪 — 启用后模型会跟随光标

切换到 Mapping 标签页。片段是基本构建单元 — 每个片段定义一个可以被规则触发的参数动画。

片段是一个可复用的动画,让一个或多个模型参数随时间变化。例如,一个”微笑”片段可能:

  • ParamMouthForm 在 200ms 内从 0 增加到 0.8
  • ParamEyeLOpen 在 200ms 内从 1.0 减少到 0.7
  • 保持 1 秒,然后在 500ms 内释放回默认值

三种创建方式:

  1. 手动 — 点击 Add Clip,添加参数轨道,设置关键帧。精确的多参数控制可使用 Full Editor(时间线编辑器)。
  2. 从表情导入 — 点击 Create From Expression 将模型的 .exp3.json 预设导入为带有可配置 Enter/Hold/Release 时间的片段。
  3. 从动作导入 — 点击 Import Motion As Clip.motion3.json 动作文件转换为可编辑的关键帧片段。
模式行为使用场景
One Shot播放一次就结束反应动作(点头、挥手、惊讶)
Loop重复播放直到触发结束持续状态(说话时的口型循环、思考中)
Repeat N精确播放 N 次固定序列(眨眼 3 次、点头 2 次)

控制触发条件在动画播放中途结束时的行为:

策略行为使用场景
Complete播完整个动画再结束不希望动作被截断
Bound触发结束时立即停止严格同步智能体状态变化

详细的片段参考请查看 动画与映射


规则是连接智能体语言模型输出和动画片段的”粘合剂”。这是 AnySoul 的 Live2D 与传统 VTuber 的核心区别 — 不是面部追踪,而是 LLM 驱动模型

对话过程中,LLM 在文本回复之外还会输出结构化元数据:

  • Emotion — 智能体的感受(happy、sad、angry、thinking 等)
  • Action — 智能体在做什么(speaking、nodding、waving 等)
  • Tool calls — 正在使用的工具(web_search、manage_memory 等)

规则将这些输出映射到片段:

┌──────────────────────┐ ┌──────────────────────┐
│ LLM 输出: │ │ 规则匹配: │
│ emotion = happy │ ──► │ → 播放 "smile" 片段 │
│ action = speaking │ ──► │ → 播放 "speak" 片段 │
└──────────────────────┘ └──────────────────────┘
类型匹配内容示例
Emotion智能体的情绪状态emotion = happy
Action智能体的动作action = speaking
Tool Call使用的工具tool_call = web_search
Text智能体独白中的子字符串text contains "haha"
Idle没有活跃的触发背景呼吸动画

条件支持 * 通配符(匹配任何值)和复合逻辑(AND / OR)。

所有满足条件的规则 同时触发。如果智能体处于 “happy” 且 “speaking” 状态,smile 规则和 speak 规则同时触发 — 片段并行播放。

当多个片段影响同一参数时,通过 片段优先级(0–3)和 混合模式(Add / Multiply / Overwrite)解决冲突。详见 动画与映射

对于始终播放的背景动画(呼吸、微妙摇摆、眨眼):

  • 创建 Loop 播放的片段
  • 将其添加为 Idle Behavior(而非普通规则)
  • 在没有其他规则匹配时持续播放,让模型在空闲时也有自然的动态

完成三个步骤后:

  1. 预览区域 — 确认模型以默认参数正确渲染
  2. 测试规则 — 使用 Mapping 标签页的 序列测试器 模拟 emotion/action 序列,验证片段是否正确触发
  3. 聊天测试 — 和智能体开始对话,观察虚拟形象的实时反应
  • 参数详解 — 深入了解每个参数、动作、部件和表情
  • 动画与映射 — 高级片段编辑、冲突解决和详细使用场景