Box3AnimationPlaybackConfig / GameAnimationPlaybackConfig 动画播放配置参数
这是一个服务端API
该API仅在服务端脚本使用
- 查阅官方文档
查阅官方文档(Arena)
查阅社区文档(Arena) - 动画播放配置参数
属性¶
- startTick: 动画开始的tick
- delay: 动画播放延迟,单位为\(ms\)
- endDelay: 动画结束延迟,单位为\(ms\)。若设定,动画在播放结束后等待endDelay\(ms\)才会结束动画(即使没有关键帧)
- duration: 动画播放时长,单位为tick
- direction: / 动画播放方向
- iterations: 播放次数
- iterationStart: 动画移除的时间段占总体时间的比率,范围\([0, 1]\)。若设定,动画会移除前iterationStart的内容后播放
若动画关键帧所在时间段的动画被移除,关键帧不会生效
举个例子,有一个\(1s\)的动画(一个*
代表\(0.1s\)),\(0.2s\)一帧(一个+
代表一帧),若不设定此值,动画会从|
处播放1 当设定为0.5
时,会变成这样,|
之前的内容会被直接切掉,此时动画播放时长只有\(0.5s\),只会播放后3帧2 若该动画有\(2s\),而iterationStart =0.5
,那么会变成这样: 若设定的值大于\(1\),动画不会播放
-
仅供参考,不代表实际动画关键帧情况,之后同理 ↩
-
实际测试,若在第3帧改变实体颜色,iterationStart在\([0, 0.6875)\)范围内会第3帧生效(变色),\([0.6875, 0.74)\)范围内实体会改变颜色但瞬间变回来,\([0.74, 1]\)范围内完全不会变色。测试代码:
↩// 仅Arena编辑器 world.onPlayerJoin(async ({ entity }) => { entity.enableDamage = true; entity.mesh = 'mesh/MC圆石.vb'; entity.animate([ { position: new GameVector3(0, 0, 0) }, { position: new GameVector3(0, 32, 0) }, { position: new GameVector3(0, 64, 0), meshColor: [1, 0, 0, 1] }, { position: new GameVector3(0, 96, 0) }, { position: new GameVector3(0, 128, 0) } ], { duration: 16, direction: GameAnimationDirection.NORMAL, iterations: 1, iterationStart: 0.74 }); });