# 动画接入工作流 ## 1. 目的 这份文档用于说明: - 设计公司提供的动画稿,应该如何转成程序可执行的内容 - 我方应该如何组织这类工作 - 动画接入前、中、后的协作方式 一句话: **不要把动画稿直接塞进程序,要先把它转成“工程规格”。** --- ## 2. 核心原则 ### 2.1 交付的是规格,不只是效果 设计公司不能只给: - 视频 - GIF - 一张效果图 至少还需要给: - 动画名称 - 触发时机 - 作用对象 - 起始状态 - 结束状态 - 时长 - 延迟 - 缓动 - 是否循环 - 是否可中断 - 资源形式 - 降级方案 ### 2.2 先分类,再决定技术实现 不是所有动画都适合用同一种实现方式。 必须先判断它属于: - 地图空间动画 - HUD 动画 - UI / Feedback 动画 - 过场 / Cutscene 动画 ### 2.3 先看信息价值,再看视觉效果 优先实现: - 帮助用户理解状态的动画 - 引导视线的动画 - 强化反馈的动画 延后实现: - 纯装饰性动画 - 对玩法理解没有帮助的长演出 ### 2.4 低端机优先 任何动画都要先问: - `lite` 模式下怎么降级? - 不做时是否影响信息表达? --- ## 3. 推荐流程 建议每个动画都按下面这条流程走: ### 第一步:设计交付 设计提供: - 动画视觉稿 - 动画规格参数 - 资源文件 - 适配说明 ### 第二步:整理进动画字典 先把动画纳入事件字典,而不是直接实现。 例如: - 什么事件触发它 - 作用在哪一层 - `standard / lite` 如何处理 ### 第三步:技术归类 判断该动画由哪一层承接: - `MapPresentation / Renderer` - 页面 `WXML / WXSS` - `UiEffectDirector` - 单独的 `Cutscene` 层 ### 第四步:选择实现方式 例如: - 纯程序动画 - 序列帧 / sprite - Lottie - 视频 ### 第五步:做性能分级 明确: - `standard` 怎么做 - `lite` 怎么做 - 是否允许完全关闭 ### 第六步:联调与验收 至少验证: - 触发正确 - 状态切换正确 - 多次连续触发是否正常 - 可中断行为是否正确 - 低端机是否流畅 --- ## 4. 动画实现方式建议 ### 4.1 纯程序动画 适合: - 地图 pulse - 数字过渡 - HUD 状态变化 - 按钮反馈 优点: - 最轻 - 最稳定 - 最适合小程序 ### 4.2 Lottie / 骨骼类动画 适合: - 局部高质量 UI 动效 - 成功反馈 - 勋章 / 特殊提示 风险: - 小程序里复杂 Lottie 可能卡 ### 4.3 序列帧 / Sprite 适合: - 爆点 - 金币收集 - 局部地图特效 风险: - 占内存 - 占包体 ### 4.4 视频 / 过场动画 适合: - 章节开场 - 比赛结果页 - 特殊演出 不适合: - 地图过程中的高频反馈 --- ## 5. 当前项目里的推荐落点 ### 地图空间动画 放在: - `MapPresentation` - `MapScene` - `WebGL Renderer` ### HUD 动画 放在: - 页面层 `WXML / WXSS` ### Feedback 动画 放在: - `feedbackConfig` - `UiEffectDirector` - `FeedbackDirector` ### 过场动画 建议未来独立一层: - `Transition` - `Cutscene` --- ## 6. 当前建议的协作方式 以后和设计公司协作时,建议这样分工: ### 设计公司负责 - 视觉稿 - 动画节奏 - 参数规格 - 资源文件 - 降级建议 ### 我方负责 - 事件归类 - 技术选型 - 动画字典维护 - 分层接入 - 性能分级 --- ## 7. 推荐的工作顺序 建议以后优先接这类动画: 1. 打点成功 2. 目标切换 3. 跳点 4. 高压 / 危险反馈 5. 章节开场 / 过场动画 --- ## 8. 结论 动画接入的正确方式不是: **拿到设计稿 -> 直接写代码** 而是: **拿到设计稿 -> 转成动画规格 -> 纳入动画字典 -> 选技术实现 -> 做性能分级 -> 再接程序**