动画

Anime 是一项通过 anime 标签来播放基于图层动画的功能。

Anime 文件

Anime 文件是一种文本文件,用于描述一系列图层变换。

序列

若要在 1 秒内将消息框向右移动 100 像素,请在 anime 文件中编写以下序列。

# 一个代码块描述了一个动画序列。
# 代码块的名称可以是您喜欢的任何内容,它不会影响任何功能。
move {
    # 这是图层指定符。
    layer: msg;
    # 这是时间指定符。(单位:秒)
    start: 0.0;
    end: 1.0;
    # 这是起始位置指定符。'r0' 表示相对 '0'。
    from-x: r0;
    from-y: r0;
    # 这是起始透明度指定符。
    from-a: 255;
    # 这是最终位置指定符。'r100' 表示相对 '100'。
    to-x: r100;
    to-y: r0;
    # 这是最终透明度指定符。
    to-a: 255;
}

图层结构

以下是我们自下而上的图层结构。

图层名称描述
bg背景图层。
bg2第二背景(用于无缝滚动)
efb1 ~ efb4后方特效 1~4
chb后方居中角色
chb-eye后方居中角色
chb-lip后方居中角色
chl左侧角色
chl-eye左侧角色
chl-lip左侧角色
chlc左中角色
chlc-eye左中角色
chlc-lip左中角色
chr右侧角色
chr-eye右侧角色
chr-lip右侧角色
chrc右中角色
chrc-eye右中角色
chrc-lip右中角色
eff1 ~ eff4前方特效 1 ~ 4
msgbox消息框
namebox姓名框
choose1-idle ~ choose8-idle选项框 1 ~ 8(静止)
choose1-hover ~choose8-hover选项框 1 ~ 8(悬停)
chf角色面部
chf-eye角色面部
chf-lip角色面部
click点击动画
auto自动模式横幅
skip跳过模式横幅
text1 ~ text8文本图层 1 ~ 8
gui-button-1 ~ gui-button-32GUI 按钮 ID 1 ~ 32

缩放与旋转

# 在 3 秒内将 `effect1` 图层放大至 2.0 倍并旋转 360 度。
test1 {
    layer: effect1;

    start: 0.0;
    end: 3.0;
    from-x: 0;
    from-y: 400;
    from-a: 255;
    to-x: 0;
    to-y: 400;
    to-a: 255;
    # 缩放与旋转中心点
    center-x: 600;
    center-y: 100;
    # 缩放比例
    from-scale-x: 1.0;
    from-scale-y: 1.0;
    to-scale-x: 2.0;
    to-scale-y: 2.0;

    # 旋转角度(正数为向右,负数为向左)
    from-rotate: 0.0;
    to-rotate: -360;
}
# 反向操作。
test2 {
    layer: effect1;
    start: 3.0;
    end: 6.0;
    from-x: 0;
    from-y: 400;
    from-a: 255;
    to-x: 0;
    to-y: 400;
    to-a: 255;
    center-x: 600;
    center-y: 100;
    from-scale-x: 2.0;
    to-scale-x: 1.0;
    from-scale-y: 2.0;
    to-scale-y: 1.0;
    from-rotate: -360;
    to-rotate: 0;
}