--- front: https://nie.res.netease.com/r/pic/20230130/768c242f-92fb-4898-91ea-619fdc31ddfc.png hard: 入门 time: 10分钟 --- # 中国版序列帧配置文件解析 ## 1. 序列帧简介 《我的世界》中提供了序列帧类型的特效,序列帧本质上即为一个单面片的贴图,如果未设置始终面向摄像头,当观察角度位于序列帧的侧面时可以看出为一片面片

## 2. 序列帧json参数说明
序列帧动画主要包含一个json文件与一个贴图,这两者由Texture Packer生成
其中json文件内容如下:

其中包含frames和meta两个字段:
- **"frames"** 表示每帧动画的贴图信息
- **"meta"** 字段包含合图软件相关的信息
开发者对此文件基本可以不用关注,其中在frames字段中可以自己手动加入字段 **”scale”** ,表示对该帧进行缩放,没写默认为1倍缩放,即为:

另外该缩放功能支持插值,即在不同帧之间大小倍数不同时会进行平滑过渡,如果需要关掉插值则需要关掉插值开关(下文提到的[**"lerp_scale"**](#lerpScale)字段)
如果使用编辑器生成序列帧动画,则会在此基础上多一个编辑器对应的json,如下图所示:

其中cylinder开头的配置为环状序列帧的功能:
- **"cylinder_enable"** 表示是否为环状序列帧
- **"cylinder_frac_num"** 表示近似多边形的个数,即环状体由几个多边形组成
- **"cylinder_height"** 表示环状序列帧高度
- **"cylinder_radius_down"** 和 **"cylinder_radius_up"** 表示底部和顶部的环状半径
- **"face_camera"** 表示帧动画是否始终面向摄像机
- **"fps"** 表示帧动画的播放帧率,即一秒播放多少帧动画
- **"shuffle"** 表示是否开启随机播放帧动画
- **"layer"** 表示设置渲染层级,默认设置为1,设置范围为0-15,,层级为1表示不开启渲染层级的功能,开启后,渲染层级高的会遮挡层级低的,并且同一层级的特效会根据位置存在遮挡关系
- **"lerp_scale"** 表示是否开启帧之间的插值
- **"loop"** 表示帧动画是否循环
- **"rot_speed"** 表示帧动画的旋转速度
- **"scale"** 表示帧动画的整体缩放
- **"tex_repeat_num"** 表示在x轴和y轴两个方向上重复的特效个数
- **"texture"** 为上述由texture packer生成的具体json特效路径
## 3. 序列帧贴图生成指南
序列帧贴图资源需要使用Texture Packer生成,打包格式见下文[Texture Packer使用配置](#TexturePacker)
Texture Packer导出大图和json文件,放置在`textures/picture/sfxs`下
如下图所示,序列帧贴图与普通贴图唯一的不同就是多了一个同文件名的json文件,该贴图和json文件都是由Texture Packer导出

## 4. Texture Packer使用配置

Texture Packer主要用来打包序列帧文件,需要注意的配置如下:

- Allow rotation不要勾选
- Trim mode选择为None
这样导出的大图中每一幅小图都一样大,**当前我们的序列帧绘制只支持大小相同的子图**
## 5. 序列帧贴图规范
- 贴图格式为 png
- 单张贴图大小不超过512 * 512
- 总像素数不要超过512 * 512 * 5