英雄联盟(LOL)的数据结构(一)
英雄联盟(LOL)的数据结构
*.skn
int32 | 文件类型标识,没有扩展名时可以判断文件类型 | ||
int16 | Material数量 | ||
int16 | Obj数量(不知道什么作用) | ||
char[28]*Material数量 | Material数据 | int[32] | 序号 |
char[64] | 名称 | ||
int[32] | 开始的顶点位置 | ||
int[32] | 拥有的顶点数量 | ||
int[32] | 开始的顶点索引位置 | ||
int[32] | 拥有的顶点索引数量 | ||
int32 | 顶点索引数量 | ||
int32 | 顶点数量 | ||
int16*顶点索引数量 | 顶点索引,每3个顶点组成一个面 | ||
char[52]*顶点数量 | 顶点数据 | float*3 | 顶点位置: x,y,z |
char[4] | 4个骨骼索引,每个索引用一个char表示(这里还有疑问,骨骼索引可能还有算法) | ||
float*4 | 对应4个骨骼索引的权重 | ||
float*3 | 顶点的法线 | ||
float*2 | 顶点的UV坐标 |
char[8] | 文件类型标识,没有扩展名时可以判断文件类型 | ||
int32 | Obj数量(不知道什么作用) | ||
int32 | 意义不详(不知道什么作用) | ||
int32 | 骨骼数量 | ||
char[88]*骨骼数量 | 骨骼数据 | char[32] | 骨骼名称 |
int32 | 父级骨骼的索引 | ||
float | 缩放 | ||
float[3][4] | 4×4变换矩阵的前3行数据,最后一行为0,0,0,1 |
char[8] | 文件类型标识,没有扩展名时可以判断文件类型 | ||||
int32 | 格式版本 | ||||
int32 | 意义不详(不知道什么作用) | ||||
uint32 | 骨骼数量 | ||||
uint32 | 动画帧数 | ||||
uint32 | 动画帧频(fps) | ||||
(char[36]+char[28]*动画帧数)*骨骼数量 | 骨骼数据 | char[32] | 骨骼名称 | ||
int32 | 类型(2:根骨骼,0:普通骨骼) | ||||
char[28]*动画帧数 | 动画帧数据 | float | 四元数的x | ||
float | 四元数的y | ||||
float | 四元数的z | ||||
float | 四元数的w | ||||
float | 位置x | ||||
float | 位置y | ||||
float | 位置z |