v0.10.0
MCP Server:AI 辅助编辑器集成
Estella 现在内置 MCP(Model Context Protocol)桥接器,允许 Claude 等 AI 助手直接与运行中的编辑器交互。桥接器自动启动,提供全面的 API:
- 场景检查:读取实体层级、组件数据、资产列表
- 实体操作:创建、删除、重命名、重新父级实体;添加/移除组件
- 属性编辑:修改组件属性,完整支持撤销
- 时间轴控制:读写时间轴数据,控制播放
- Play 模式:启动/停止/暂停 Play 模式,调整播放速度
- 资产管理:读写资产文件,管理资产元数据
独立的 MCP 服务器(tools/mcp-server/)封装了桥接器,可与任何 MCP 兼容客户端配合使用。
时间轴:AnimFrames 帧轨道
新增 animFrames 轨道类型,将精灵帧显示为时间轴上带颜色、可调整大小的色块。每帧有独立的时长,可通过拖拽色块边缘调整,实现对帧时序的精细控制。
实时播放头同步
进入 Play 模式时,时间轴自动切换到 LIVE 模式:播放头实时跟踪运行时动画位置(以 60fps 从 C++ 时间轴系统轮询)。工具栏显示红色闪烁的”LIVE”指示器。LIVE 模式下编辑器播放控件被禁用,退出 Play 模式后恢复。
时间轴编辑改进
- 多选关键帧:Ctrl+点击切换选择、Shift+点击范围选择、框选
- 批量操作:批量移动或删除选中的关键帧,作为单次撤销步骤
- 插值预设:右键关键帧可应用 Linear、EaseIn、EaseOut、EaseInOut 或 Step
- 标记与事件轨道:新增标记和自定义事件轨道类型
- 网格吸附:工具栏切换网格吸附;拖拽时关键帧吸附到网格线
- 播放控制:逐帧前进/后退、速度控制(0.25x–4x)、循环模式切换(Once/Loop/PingPong)
- 时长编辑:双击时间显示可编辑总时长
- 轨道管理:拖拽排序、右键重命名/删除、类型颜色标识
物理:关节、射线检测与查询
关节类型
五种关节类型可用于连接物理体:
- Distance Joint:保持两个物理体之间的固定距离
- Revolute Joint:围绕共享锚点的铰链旋转,支持可选马达和角度限制
- Prismatic Joint:沿轴线线性滑动,支持可选马达和平移限制
- Weld Joint:将两个物理体刚性绑定
- Wheel Joint:组合旋转和平移行为,适用于车辆悬挂
空间查询
- 射线检测:在物理世界中投射射线,获取所有命中结果(碰撞点、法线、距离、实体)
- 重叠查询:用圆形测试世界中的重叠物理体
- 复合形状:在单个物理体上附加多个碰撞形状
编辑器集成
新增物理编辑器插件,可在 Inspector 中直接可视化配置关节和形状。
Spine:混合、事件与 IK
- 动画混合:Spine 动画之间可配置混合时长的交叉淡入淡出
- 事件系统:通过
SpineModuleController监听 Spine 动画事件(start、end、complete、custom) - 附件控制:通过
SpineController在运行时显示/隐藏插槽和替换附件 - IK 约束:在 Spine 骨架中配置反向动力学约束
- 插槽颜色:以编程方式为单个 Spine 插槽着色
性能改进:
- 多相机渲染时缓存网格提取结果
- 网格分配每帧最多批处理为 2 次
- 变换矩阵计算移至 C++ 以减少开销
Tilemap:动画瓦片与等距视角
- 动画瓦片:瓦片可引用自动播放的动画序列
- 瓦片属性:访问 Tiled 中定义的自定义瓦片属性
- 翻转与旋转:瓦片支持水平/垂直翻转和 90 度旋转
- 等距网格:支持等距瓦片地图渲染
- 调试可视化:切换瓦片地图网格覆盖层用于调试
- Tilemap API:新增
tilemapAPI模块用于运行时瓦片操作(setTile、getTile、fillRect 等)
锚点支持
精灵现在支持可配置的锚点(pivot),影响旋转、缩放和定位。编辑器在 Scene View 中显示可拖拽的锚点覆盖层。边界计算考虑非中心锚点。
编辑器改进
- 资产选择对话框:可复用的资产选择模态框,支持按类型筛选、网格预览和搜索
- 设置验证:项目设置现在基于 JSON Schema 验证,提前暴露配置错误
- 改进的检查器:AnimClip 和 BitmapFont 检查器重新设计,UX 更佳
- 内容浏览器:资产网格支持额外的预览模式
引擎内部
- C++ Registry 新增实体销毁清理钩子
- 混合状态从文件级静态变量移至 RenderCommand 类成员
- 物理和 Spine 全局状态封装为上下文结构体
App.physicsInitPromise用于等待异步物理初始化