【Cocos Creator 3.x】预制体节点 Animation 动画:如何让 size 基于动态初始值实现相对增减?

各位 Cocos 开发者好~

最近在做一个 UI 入场动画 的功能时遇到了个小问题,想请教下大家的解决方案:

一、我的使用场景

我需要做一个 “节点入场时自动调整 size” 的动画,用了 预制体 来复用这个带动画的节点 —— 因为业务里这个预制体是根据不同数据动态生成的,实例化后它的初始 size 是不固定的:有时候是很小的 0.1(做小图标动画),有时候是 100 + 的常规 UI 尺寸。

二、当前已完成的操作

  1. 给预制体节点添加了 Animation 组件,创建了动画剪辑;
  2. 在 Animation 编辑器中,绑定了节点的 size 属性,设置了关键帧:比如 “第 0 帧 size=100,第 0.5 帧 size=150”(想实现 “增加 50” 的效果);
  3. 把预制体挂到场景中,在代码里动态设置 size 后实例化。

三、遇到的核心问题

Animation 编辑器里的 size 关键帧是 绝对数值 ——

  • 当预制体实例化后的初始 size 是 100 时,动画能正常从 100→150;
  • 但当预制体初始 size 是 0.1 时,动画会直接从 0.1 跳到 100(关键帧起始值)再到 150,完全偏离了 “在初始 size 基础上增加 50” 的预期。

四、尝试过的操作(均未解决)

  1. 手动修改动画关键帧的起始值:但预制体 size 是动态的,每次实例化都改关键帧不现实;
  2. 查找 Animation 编辑器的 “相对模式” 配置:翻了动画组件和编辑器的所有选项,没找到能基于节点初始属性做相对变化的开关。

五、想求助的效果

希望这个 Animation 动画能:

  1. 自动读取 预制体实例化后的实际初始 size (不管是 0.1 还是 100);
  2. 在这个初始 size 的基础上,做固定数值的增减(比如统一增加 50);
  3. 保留 Animation 编辑器里设置的时长、缓动曲线等配置。

请问大家有没有实现这种 “基于节点动态初始属性做相对动画” 的方法?不管是改动画配置还是写代码的思路都可以~感谢!

animation帧动画直接改换成action不行嘛,做缓动

1赞