setTempAnimation
setTempAnimation
设置临时动画。
语句内容
与 setAnimation 读取动画文件不同,setTempAnimation 允许用户直接在代码里定义多段动画,详见动画参考。
语句内容格式为动画文件的单行形式,即 [{},{},{}] 。也可以使用新版动画格式的单行形式,即 {"keyframes":[{},{}]}。
相关信息
如果您想复用动画,请使用 setAnimation 命令。
如果您只想设置单段动画,请使用 setTransform 命令。
changeFigure:1/open_eyes.png -id=aaa;
; 闪光弹动画
setTempAnimation:[{"duration":0},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":200},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":2500}] -target=aaa;
参数
target
- 字符串
动画作用目标。
可以填写的目标有:
fig-center:中间立绘fig-left:左侧立绘fig-right:右侧立绘fig-left13、fig-right13、fig-left14、fig-right14:对应位置的立绘- 自由立绘的 id
bg-main:背景stage-main:舞台
changeFigure:1/open_eyes.png -id=aaa;
setTempAnimation:[{"duration":0},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":200},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":2500}] -target=aaa;
transformFrom
- 字符串
- 可选值:
current、default - 默认值:
current
指定动画的变换起点,即动画中未写出的变换与效果属性如何处理。
current:以对象当前的变换为起点。动画只修改其中写出的属性,未写出的属性保持当前值,也不会覆盖同一对象上其他并行动画正在修改的属性。default:以默认变换为起点,未写出的属性会重置为默认值。
填写此参数后,旧参数 writeDefault 将被忽略。
changeFigure:1/open_eyes.png -id=aaa;
setTempAnimation:[{"duration":0},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":200},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":2500}] -target=aaa -transformFrom=default;
writeDefault
- 布尔值
注意
此参数已不推荐使用,请改用 transformFrom:-writeDefault 等同于 -transformFrom=default。填写了 transformFrom 时,此参数会被忽略。
当值为 true 时,未被赋值的变换与效果属性都会写入默认值。
当值为 false 时,未被赋值的属性会继承现有的值。
changeFigure:1/open_eyes.png -id=aaa;
setTempAnimation:[{"duration":0},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":200},{"brightness":2,"contrast":0,"duration":200,"ease":"circIn"},{"brightness":1,"contrast":1,"duration":2500}] -target=aaa -writeDefault;
keep
- 布尔值
将该动画转换为跨语句动画。在执行接下来的语句的同时,保持播放当前动画,直至动画结束,或被下一个同目标的 setTransform setAnimation setTempAnimation 打断。
通常需要配合 next 参数一起使用。
changeFigure:1/open_eyes.png -id=aaa;
setTempAnimation:[{"duration":0},{"scale":{"x":2,"y":2},"duration":10000}] -target=aaa -keep -next;
角色A: 第一句话;
角色A: 第二句话;
角色A: 第三句话;
; 这会打断 aaa 的跨语句动画,并播放新动画
setTempAnimation:[{"duration":0},{"scale":{"x":1,"y":1},"duration":10000}] -target=aaa -keep -next;
parallel
- 布尔值
与同一目标上正在播放的其他动画并行播放。
默认情况下,对同一目标执行新的 setTransform setAnimation setTempAnimation 时,会打断该目标上正在播放的动画。加上 -parallel 后,新动画不会打断已有的动画,两者同时播放。之后不带 -parallel 的动画仍会打断所有正在播放的动画,包括并行动画。
并行的动画应当修改不同的属性。如果多个并行动画修改了同一属性,最终效果无法预期。使用 -parallel 时,动画只会修改其中写出的属性。
changeFigure:1/open_eyes.png -id=aaa;
; 平移和亮度变化同时进行
setTransform:{"position":{"x":-500}} -target=aaa -duration=1000 -next;
setTempAnimation:[{"duration":0},{"brightness":0.5,"duration":1000}] -target=aaa -parallel;
relative
- 布尔值
是否为相对动画,见相对动画。
使用关键帧数组写法时,加上 -relative 或 -inherit 后,动画按新版格式的规则执行,关键帧仍然使用 duration。语句内容是新版格式的对象时,此参数会覆盖对象中的 relative。
changeFigure:1/open_eyes.png -id=aaa;
; 在当前位置的基础上向右移动 200
setTempAnimation:[{"duration":0},{"position":{"x":200},"duration":500}] -target=aaa -relative;
inherit
- 布尔值
是否启用帧继承,见帧继承。与 -relative 一样,加上此参数后,关键帧数组按新版格式的规则执行。
changeFigure:1/open_eyes.png -id=aaa;
setTempAnimation:[{"duration":0},{"position":{"x":200},"duration":500},{"alpha":0.5,"duration":500}] -target=aaa -relative -inherit;