Live2D 动画与映射
这篇文档对应的是 AnySoul 现在真实在跑的 Live2D runtime:可复用 clips、由 rule / base behavior 持有优先级、带 scope 的 base behaviors,以及按 priority tier 结算的参数仲裁。
现在的 Authoring 模型
Section titled “现在的 Authoring 模型”把系统理解成 3 层最清楚:
- Clips:定义可复用动画资产
- Rules:定义什么条件下播放这些 clips
- Base Behaviors:为
idle和active两个 scope 调度长时背景层
建议把 Full Editor 当成这三者的主编辑入口。
Playback Stack
Section titled “Playback Stack”运行时大致按下面的顺序结算:
- Parameters 里作者设定的中性姿态
- 可选的 legacy idle motion 参与
- 当前激活的 base behavior scope:
idle或active - 所有当前命中的 rules
- lip sync / focus dispatch
对同一个参数来说,结算关键点是:
- 先按 priority tier 分层
- 更高层优先于更低层
- 同一层里,先算
Multiply/Add - 然后
Override消耗剩余权重 - 如果高层
Override已经满权重,低层就没有机会再影响这个参数
这也是为什么低优先级的 base noise 不应该再漏进一个高优先级“头部固定”rule 里。
Clip 是可复用资产。一个 clip 可以被很多 rules 或 base behaviors 反复引用。
当前要记住的一条规则
Section titled “当前要记住的一条规则”运行时优先级现在不属于 clip 资产本身。
优先级属于:
- Rule
- Base Behavior
如果你在旧文档或旧配置里看到“clip priority”,请把它理解成旧术语。
创建 Clip 的方式
Section titled “创建 Clip 的方式”- Add Clip 手工创建
- Create From Expression 导入
.exp3.json - Import Motion As Clip 导入
.motion3.json - Template 生成常见模板
Clip 里包含什么
Section titled “Clip 里包含什么”- 参数轨道
- 关键帧
- 播放模式
- end behavior
- release 配置
- 每条轨道自己的 blend mode
- 每条轨道自己的 modifier
| 模式 | 适合场景 |
|---|---|
One Shot | 反应动作、短手势、短表情变化 |
Loop | 持续状态,比如 speaking cycle、ambient motion |
Repeat N | 需要精确次数的节奏,比如双点头、三次眨眼 |
Completion 和 Release
Section titled “Completion 和 Release”Clip 还会定义:
- 是 bound to trigger duration,还是 complete even if trigger ends
- 轨道在结束时是 stop 还是 hold then release
- release 需要多久
轨道、Blend Mode 和 Modifier
Section titled “轨道、Blend Mode 和 Modifier”每个 clip 本质上都是一组参数轨道。
Track Blend Mode
Section titled “Track Blend Mode”blend mode 是轨道级的选择:
| 模式 | 行为 | 常见用途 |
|---|---|---|
Override | 接管该参数 | 表情姿态、动作姿态、“头部固定”这类硬覆盖 |
Add | 在现有结果上加偏移 | 呼吸、轻微摇摆、附加动势 |
Multiply | 按比例放大/缩小当前值 | 特殊效果、幅度整形 |
Add 只适合那种真的应该叠层存在的运动。如果某段 motion 在更强 clip 出现时必须停掉,那就应该靠合适的优先级层级 + Override 解决。
Track Modifier
Section titled “Track Modifier”Modifier 会在关键帧插值之后继续加工:
keyframed value -> modifier chain -> final track write当前支持:
WiggleDriftSinePulseSpringLoopNoiseClamp
你可以用 inspector 里的 Mod ON/OFF 对比“纯关键帧”和“最终带 modifier 的结果”。
Virtual Focus
Section titled “Virtual Focus”虚拟参数:
__focus_x____focus_y__
可以像普通轨道一样被动画化,非常适合做 gaze wander。
Rules 把运行时状态连接到 clips。
当前支持的条件类型
Section titled “当前支持的条件类型”- emotion
- action
- tool call
- text
- thinking
- idle
对于 text 规则,运行时还可以区分 message text 和 thinking text。最好的验证方式不是猜,而是直接用 Sequence Tester。
All-Match 语义
Section titled “All-Match 语义”AnySoul 现在是 all-match:
- 所有满足条件的 rules 都会触发
- 一条 rule 里可以有多个 clip group 并行播放
- 多条 rule 也可以同时激活
所以参数所有权设计非常重要。
一条 Rule 真正拥有的东西
Section titled “一条 Rule 真正拥有的东西”Rule 自己拥有:
- priority(
0 idle、1 normal、2 emotion、3 force) - 一个或多个 clip groups
- 每个 group 的 selection mode
- 每个 group 的 weight
- 每个 group 的 timeScale
Clip Groups
Section titled “Clip Groups”Clip group 是一条 rule 选择 clip 变体的方式:
- group 与 group 之间并行播放
- 一个 group 内部可
random或sequential - 每个 group 可用
weight调整播放强度 - 每个 group 可用
timeScale调整速度
Base Behaviors
Section titled “Base Behaviors”Base Behaviors 是当前系统里长时背景层的标准做法。
每个 base behavior 都属于一个 scope:
Idle BaseActive Base
运行时只会同时启用一个 scope,这取决于当前是否有非 idle 的 rule 命中。
Base behavior 当前支持:
Loop one clipPick one per idle sessionRandom playlist
并且可以配置:
- cycle transition duration
- handoff transition duration
- scope transition duration
- priority
Legacy Idle Motion
Section titled “Legacy Idle Motion”如果模型自带 legacy idle motion,你也可以让它参与 idle-base 播放。这是在 Rules 区域里配置的,不是在 clip 轨道里配置的。
Sequence Tester
Section titled “Sequence Tester”Sequence Tester 是现在验证运行时行为最快的方式,不需要等真实聊天流入。
你可以模拟:
- emotion
- action
- tool call
- text
- thinking
- 显式 idle step
它会展示:
- 当前状态
- 当前 base scope
- 当前是
base only还是base + rule overlay - 命中的 rules
- 命中的 base behaviors
在 sequence 播放过程中,inspector 里的 Parameter Control 还能直接看到:
- 哪个 writer 当前控制了这个参数
- 哪些 writer 被压制了
Timeline Preview Base
Section titled “Timeline Preview Base”inspector 里的 Preview Base 可以切换 clip / rule 预览时叠加的底层:
| 模式 | 含义 |
|---|---|
Baseline | 只叠在作者基线姿态上 |
Idle Base | 叠在 idle-scope base behavior 上 |
Active Base | 叠在 active-scope base behavior 上 |
调细小 overlay 时,这个开关非常关键。
实用 Authoring 建议
Section titled “实用 Authoring 建议”- 呼吸、视线游移、待机微摆放进 Base Behaviors
- 反应动作、明确状态姿态放进 Rules
- 想阻止低优先级运动漏进来,用
Override - 想保留可叠层的次级运动,用
Add - 如果“单独预览正确,runtime 不对”,优先检查:
- rule priority
- base behavior priority
- track blend mode
- preview base mode
- parameter-control inspector
- Live2D 快速入门:回看完整搭建流程
- 参数详解:看 baseline、lip sync、motions、expressions 和 parts
- Live2D 曲线编辑器:看 graph editor 和 timeline 快捷键