跳到主要内容

动画脚本编辑器总览

ForeSim 的动画脚本编辑器用于驱动场景中的 AGV、小车、机械臂及其他对象,以脚本方式描述移动、装卸和动画播放等行为。本页概述执行入口、上下文变量、调试建议,并给出入门示例。

快速开始

  1. 在场景属性面板中打开动画脚本编辑器。
  2. 从左侧模板列表选择合适的脚本(示例位于 src/assets/templates/animationTemplates.js)。
  3. 调整对象名称、路径点等参数后点击“运行”。系统会注入常用管理器实例,以便脚本直接调用。
示例:完整的 AGV 搬运流程
async function agvTransportAnimation() {
const carryName = "item1";
const carrierName = "carrier2";
const waypoints = ["Point_1", "Point_2", "Point_3", "Point_4", "Point_5"];

await agvManager.moveCarrier(carrierName, waypoints.slice(0, 1));
agvManager.pickupItem(carrierName, carryName, {x: -1, y: 0, z: 0});
await agvManager.moveCarrier(carrierName, waypoints.slice(1));
agvManager.dropItem(carryName, waypoints.at(-1));
await agvManager.moveCarrier(carrierName, [...waypoints].reverse());
}

agvTransportAnimation();

提示:脚本通过 new Function 执行,不支持顶层 await。建议使用自调用的 async 函数来串联异步操作。

运行时注入对象

名称说明
editor (ForesimEditor)场景操作入口,提供 getByName 查询对象等功能。
gsapGSAP 补间动画实例,可用于复杂的过渡。
runAGV绑定自 agvManager.runAGV,便于直接启动完整搬运流程。
agvManagerAGV 脚本管理器,负责单车路径、装卸、搬运。
agvBoxManagerAGV 编队拖拽管理器,维护拖车链和批量卸载。
agvCurePathManagerAGV 曲线路径拖拽管理器,适用于柔性路线。
acs (AnimationCommonScriptManager)通用动画播放接口。
oms (ObjectManagerScript)场景对象挂载与拆卸接口。
fcs (ForeSimCommonScriptManager)平台通用脚本,访问自定义数据表等。

编写脚本的建议

  • 对象命名一致:所有接口依赖场景对象名称,建议集中声明并复用常量。可通过 editor.getByName() 在脚本开头校验。
  • 异步流程串联moveCarrierrunAGV 等返回 Promise,使用 await 确保动作顺序,必要时捕获异常并输出日志。
  • 容错与日志:API 通常返回 { success, error }。对 success === false 的情况及时 console.error,结合 UI 提示排查问题。
  • 调试技巧
    • 使用 console.table 打印路径点数组或载荷配置。
    • 利用 requestAnimationFrame 实现逐帧调试或编写自定义时间线。
    • 在复杂脚本中拆分函数、封装公共逻辑,便于复用。

接下来可根据需要阅读各脚本管理器的详细 API 文档。