项目>Sesame Robot>用 Sesame Studio 做表情与自定义动画

用 Sesame Studio 做表情与自定义动画

摘要:在 Sesame Studio 里画一个自己的 OLED 表情或编排一段动作,并导出可直接贴回固件的代码。

Sesame Studio 的定位与安装

Sesame Studio 是官方配套的表情设计与动作编排工具,放在独立仓库 dorianborian/sesame-studio,许可证 Apache-2.0,与机器狗主仓库分开维护。Studio 跑在电脑上,与板型无关;表情与动作的成果最终都要回到固件重新编译烧录。

安装方式 要求与步骤
Windows 便携版 从 Releases 页下载 SesameStudio.exe,双击运行,不需要装 Python
源码运行 Python 3.10+;pip install -r requirements.txt(PySide6、PyOpenGL、numpy、Pillow);python sesame_studio.py 启动

Studio 能做什么

  • 3D 视口:用真实打印件的 STL 几何渲染整机,舵机角度实时驱动模型
  • 时间轴:关键帧序列、拖拽排序、调整帧间过渡时长、可调速度回放
  • Inspector:每舵机滑块与数值读数,受各关节机械角限约束
  • 人脸编辑器:128×64 的 1-bit 画布,与 SSD1306 屏幕逐像素对应,动画最多 6 帧,带洋葱皮与 hex 字节查看
  • 工程文件:.sesproj 保存序列、自定义表情与设置
  • 固件互通:直接打开、编辑并保存 face-bitmaps.h
  • 代码导出:生成 runXPose() 形式的 C 动作函数与 FACE_LIST、字节数组定义

自定义表情的完整流程

官方固件文档给的自定义表情路径是 jsPaint 加 image2cpp 的手工流程:

  1. 装 Studio:按上表任一方式安装并启动。预期:看到欢迎界面,可新建或打开 .sesproj 工程。
  2. 画一个表情:在 jsPaint 新建 128×64 画布,黑白作画。预期:得到一张 128×64 的 1-bit 位图。
  3. 导出字节数组:把图放进 image2cpp,选 Horizontal、128×64、Arduino Code 输出。预期:得到一段 C 字节数组。
  4. 加进 FACE_LIST:打开 face-bitmaps.h,在 FACE_LIST 宏里加一行 X(myface),数组粘贴到最后一个位图之后。预期:表情名 myface 注册进固件。
  5. 编译验证:Arduino IDE 重新编译烧录。预期:编译通过;之后用任一控制通道请求表情名 myface,OLED 显示你画的图。

做成动画时数组命名有硬性规则:根帧必须叫 epd_bitmap_myface,后续帧依次 epd_bitmap_myface_1 到 _5;根帧加 5 个编号帧,每个表情上限 6 帧。播放模式三种:

模式 行为
LOOP 播完回到第 0 帧重播
ONCE 播完停在最后一帧
BOOMERANG 正播到最后一帧再倒放回来

两处可以自己对上的口径

把固件源码、固件文档与 Studio 文档放在一起,有两处口径完全对得上,动手前可以自行验证:

口径 固件源码 固件文档 Studio 文档
每个表情的帧数上限 MAX_FACE_FRAMES = 6 根帧 + 5 个编号帧,上限 6 帧 人脸编辑器最多 6 帧
表情资产的落点 face-bitmaps.h 的 FACE_LIST 宏 新名字加进 FACE_LIST 并粘贴数组 直接打开、编辑、保存 face-bitmaps.h

第二行说明 face-bitmaps.h 是 Studio 与固件共用的同一份文件:手工流程粘贴数组与 Studio 里点保存,改的是机器人固件里的同一个头文件,两条路径任选或混用。

易错提醒:动画帧的数组名漏掉 epd_bitmap_ 前缀,或编号从 0 写起,固件的 MAKE_FACE_FRAMES 宏就认不出这组帧,动画不生效。根帧不带编号,编号帧从 _1 开始。

资料来源

  • Sesame Studio 官方 README
  • Sesame 官方固件文档

相关内容

60美元四足机器人Sesame实操指南实践