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 種動畫類型(正弦波、瞥視、脈衝、抖動、掃描、眨眼)的庫,建構複雜行為。

相關