|
楼主 |
发表于 2021-7-22 21:49:36
|
显示全部楼层
衣服Shape计算
衣服相关素材列表
[0] = LibraryFile.M_Hum,
[1] = LibraryFile.M_HumEx1,
[2] = LibraryFile.M_HumEx2,
[3] = LibraryFile.M_HumEx3,
[4] = LibraryFile.M_HumEx4,
[10] = LibraryFile.M_HumEx10,
[11] = LibraryFile.M_HumEx11,
[12] = LibraryFile.M_HumEx12,
[13] = LibraryFile.M_HumEx13,
[14] = LibraryFile.M_Costume,
[0 + FemaleOffSet] = LibraryFile.WM_Hum,
[1 + FemaleOffSet] = LibraryFile.WM_HumEx1,
[2 + FemaleOffSet] = LibraryFile.WM_HumEx2,
[3 + FemaleOffSet] = LibraryFile.WM_HumEx3,
[4 + FemaleOffSet] = LibraryFile.WM_HumEx4,
[10 + FemaleOffSet] = LibraryFile.WM_HumEx10,
[11 + FemaleOffSet] = LibraryFile.WM_HumEx11,
[12 + FemaleOffSet] = LibraryFile.WM_HumEx12,
[13 + FemaleOffSet] = LibraryFile.WM_HumEx13,
[14 + FemaleOffSet] = LibraryFile.WM_Costume,
[0 + AssassinOffSet] = LibraryFile.M_HumA,
[1 + AssassinOffSet] = LibraryFile.M_HumAEx1,
[2 + AssassinOffSet] = LibraryFile.M_HumAEx2,
[3 + AssassinOffSet] = LibraryFile.M_HumAEx3,
[4 + AssassinOffSet] = LibraryFile.M_CostumeA,
[0 + AssassinOffSet + FemaleOffSet] = LibraryFile.WM_HumA,
[1 + AssassinOffSet + FemaleOffSet] = LibraryFile.WM_HumAEx1,
[2 + AssassinOffSet + FemaleOffSet] = LibraryFile.WM_HumAEx2,
[3 + AssassinOffSet + FemaleOffSet] = LibraryFile.WM_HumAEx3,
[4 + AssassinOffSet + FemaleOffSet] = LibraryFile.WM_CostumeA,
红色部分称为key,右边为素材文件名
战法道共用一组素材(例如M_Hum) 刺客单独用一组素材(例如M_HumA)
文件名M前缀代表男(Man), WM代表女(Woman)
文件名中的A,例如WM_HumAEx1的A,代表刺客Assassin
女角色素材的key会加上FemaleOffSet这个变量
刺客素材会加上AssassinOffSet这个变量
FemaleOffSet = 5000
AssassinOffSet = 50000
战法道衣服素材
每一个样式有连续的5000张图 其中一些为空白
每一个样式的素材图 起始位置为0,5000,10000,... 以此类推
在列表中,他们的key为0,1,2,3,4,10,11,12,13 (如上表)
新建衣服时,先找到衣服外观所在的文件,和它对应的key
然后找到此外观第一张图的位置x,例如x=5000 或者x=35000 (必然是5000的倍数)
shape值=(key * 11) + (x / 5000)
注意:计算的时候程序会帮你考虑FemaleOffSet和AssassinOffSet
刺客衣服素材
每一个样式有连续的3000张图 其中一些为空白
每一个样式的素材图 起始位置为0,3000,6000,... 以此类推
在列表中,他们的key为0,1,2,3 (如上表)
新建衣服时,先找到衣服外观所在的文件,和它对应的key
然后找到此外观第一张图的位置x,例如x=3000 或者x=6000 (必然是3000的倍数)
shape值=(key * 11) + (x / 3000)
注意:计算的时候程序会帮你考虑FemaleOffSet和AssassinOffSet
BodyLibrary
使用哪个文件,由衣服的shape值ArmourShape决定
(shape/11)的整数部分是上面字典的key
如果(shape/11)的值不在字典,那么用默认值0,即M_Hum,然后ArmourShape=0
得到的素材文件存入BodyLibrary变量
ArmourFrame
DrawFrame = FrameIndex + CurrentFrame.StartIndex + CurrentFrame.OffSet * (int)Direction;
ArmourFrame => DrawFrame + (ArmourShape % 11) * ArmourShapeOffSet + ArmourShift;
ArmourShapeOffSet = 5000; //战法道
ArmourShapeOffSet = 3000; //刺客
ArmourShift 仅供刺客用 值取决于人物动作 例如骑马 站立 挖矿
|
|