sam70361/aora-bot

Emotion Ball 是一套面向 AI 助手的表情引擎:32 种状态表情全部由纯 SVG 与原生 JavaScript 实时驱动,零框架、零图片资源。AI 侧只需输出一个 emotionId,小球即可切换到对应表情,可直接用作聊天机器人、桌面宠物、悬浮助手的情绪表达层。

解决的问题

Emotion Ball 是一个轻量级、无依赖的表达引擎,专为 AI 助手、聊天机器人和桌面宠物提供视觉情感层。它允许开发者通过简单的 ID 基协议,轻松在 32 个预定义情感状态(如思考、开心或睡眠)之间切换,无需复杂的图像资源或重型框架。

工作原理

该引擎使用纯 SVG 和原生 JavaScript 实时渲染角色。它基于数据驱动的配置系统,表达由「眼环池」、动画原语(如正弦波或抖动)和关键帧序列组合定义。

关键技术特性包括:

  • 球面投影:通过经度转换和余弦压缩,将眼睛映射到身体轮廓,保持 3D 感觉。
  • 动态适应:相同的动画系统可自动适应三种不同身体形状:球形、楔形和宝石形。
  • AI 集成:强大的 handleAIMessage 方法接受 JSON 字符串或对象,允许 AI 仅通过输出 emotionId 即可触发表情变化。
  • 性能优化:所有实例共享单一的 requestAnimationFrame (rAF) 心跳,以最小化 CPU 开销。

适用人群

  • AI 开发者:构建基于 LLM 的助手或代理,需要非语言情感界面的人。
  • 前端工程师:寻找轻量级、基于 SVG 的动画系统,用于浮动助手或 Electron 桌面宠物的开发者。
  • UI/UX 设计师:希望实现可自定义、数据驱动的角色表情,而无需创建单帧动画的用户。

核心亮点

  • 32 个预定义状态:涵盖唤醒/睡眠等生命周期、情感反应,以及代理特定状态(搜索/思考/错误)。
  • 零依赖:使用 HTML、SVG 和原生 JS 构建,可轻松集成到任何 Web 环境或 Electron 应用中。
  • 可自定义:支持运行时注册新表情和自定义身体形状/颜色。
  • 交互性:包含鼠标注视追踪(指数平滑)和庆祝用物理粒子效果。
  • 动画原语核心库:使用 6 种动画类型(正弦波、瞥视、脉冲、抖动、扫描、眨眼)的库,构建复杂行为。

相关