第二次机器人大战吧 关注:25,024贴子:374,104

二战武器动画详解

只看楼主收藏回复

写在前面,本次公开所有关于机体战斗动画,地图武器动画(包括大型机相遇花屏的解决,有关这个其实只
有小转K和血痕会,我就代为整理了,可能会有些错误的地方)等
等),有心想学修改的可以参考一下。这些资料,其实,很久之
前,小转就已经公开了,但是貌似没多少人看,这次我就根据小
转之前整理的资料比较详细的整理了一下。有啥问题的话就提问
吧,愿意学的话我都会一一答复的。


IP属地:浙江1楼2017-03-13 21:44回复
    首先,讲一下指针的作用,如果接触比较高级的修改,武器修改和事件的修改都会用到
    例:指针地址10116 动画指针F784 指向地址10507
    指针,就是一个跳转的作用,借助指针,跳转到可以跳转范围的地址读取数据
    接下來可以进入正题了
    首先,武器分为两种,光束武器和物理武器
    所谓的光束武器,就是光束枪,中子炮,光子射线,十字捣碎机这类
    物理武器就是导弹,回旋镖,能量球之类
    我先说一下光束武器和物理武器的区别
    光束武器作为背景存在,可以被覆盖
    如果光束武器和物理武器在同一个区域出现,那么物理武器就会覆盖光束武器
    机体图片也属于背景,所以,光束武器不能做成覆盖机体的那样


    IP属地:浙江2楼2017-03-13 21:46
    回复

      而属于物理武器的光剑,可以出现在机体身上
      这个就是两者的本质区别
      大多数是物理和光束的混合
      这个就差不多了吧,光束武器和物理武器的区别


      IP属地:浙江3楼2017-03-13 21:48
      收起回复
        接下來就看具体的代码

        就以这个个粒子炮来讲解

        就是这个武器
        F4 10 F0 05 03 30 28 18 F1 00 01 F2 03 01 39 F3 22 4C 01 FD F8 00 F3 22 4D FE 1E D8 88 FD F8 00 FD F8 00 F0 11 03 30 21 01 F1 00 01 F9 0F F6 D8 42 69 3F 03 03 F4 03 14 F3 22 01 02 64 FF
        这个就是具体的武器代码
        F4 提取音乐代码 10音乐代码
        这个10的声音,就是一开始的粒子炮发出的那个BOOM的声音
        F0 05 03 提取光束类武器颜色

        30 28 18 就是三个颜色代码
        对照色盘可以看到,三个颜色,
        这个就是粒子炮的颜色
        根据色盘,可以把粒子炮更改为自己想要的颜色


        IP属地:浙江4楼2017-03-13 21:56
        回复(2)
          插一下


          IP属地:广东来自Android客户端5楼2017-03-13 22:07
          收起回复

            看CT 的贴图,这个是粒子炮的贴图
            绿蓝白依次=30 28 18
            也就是绿色的部分填充白色(30)
            蓝色填充28
            白色填充18
            粒子炮是三个颜色,不是一个颜色
            每个光束武器可以有三种颜色
            物理武器同理
            F1 00 01固定的代码,不懂
            F1 00 01固定的代码,没啥意义
            39图片代码
            这个39就是粒子炮贴图所在的图库

            打开CT跳转到4E410就可以看到
            一个图库=8*8
            一个图库就是64格


            IP属地:浙江6楼2017-03-13 22:14
            回复
              整理了三个世纪


              IP属地:黑龙江来自Android客户端7楼2017-03-13 22:20
              收起回复
                默默的小插一下


                IP属地:山东来自Android客户端8楼2017-03-13 22:35
                收起回复
                  这个确实难,厉害


                  IP属地:重庆来自iPhone客户端9楼2017-03-14 09:20
                  回复
                    然后是F3 22提取光束类规律代码
                    4C光束规律代码
                    这个规律4C就是

                    4C的具体代码
                    先来解析一下4C表示的这段代码
                    FE调试动画的显示位置
                    0A 8E 则分别为Y坐标和X坐标

                    这个坐标,就是粒子炮一开始的位置
                    也就是粒子炮的尾部所在位置


                    IP属地:浙江10楼2017-03-14 09:38
                    收起回复
                      48 4A 从所在图库中取出的2个图块
                      上面可以看到F2 03 01 39,读取的是图库39

                      这个就是39号图库的所有贴图
                      一共8*8=64格
                      其中第一格给它定义为第“40”格
                      接下来,从左到右,从上到下的顺序
                      就是40 41 42 43 44 45 46 47 48 49 4A 4B
                      注意,是16进制
                      关于第一格为何定义为40,之后的资料会作进一步解释
                      现在只要记住,第一格定义为40
                      FE 调试动画的显示位置
                      0A 8E 则分别为Y坐标和X坐标
                      45 47就是读取对应的图块

                      从图库中可以看到
                      粒子炮的贴图是第一行最后三个
                      第一格为40
                      那么这三格依次为45 46 47


                      IP属地:浙江11楼2017-03-14 09:40
                      回复
                        现在读取的是45和47
                        那么此时的图像为
                        F3 分割这段代码和下段代码
                        00 下一段图片从这一行原Y坐标读取,若是01则从原Y坐标下一行读取
                        FD 下一段图片从这一行原X坐标左移3格读取00不动
                        FF结束取图规律
                        这个4C规律就是这么个意思
                        然后再来看之前的

                        F3 22 4C 之后的一段代码
                        01 等待时间
                        FD使屏幕变得可移动
                        F8屏幕移动时X轴的方向和距离
                        00屏幕移动时Y轴的方向和距离
                        可以看到X轴的距离发生了变化,就是说屏幕发生了移动,01就是等待时间
                        这个时间=一帧
                        1秒=60帧


                        IP属地:浙江12楼2017-03-14 09:42
                        回复


                          可以看到,这个过程,屏幕向左移动了
                          注意,机体是参照物,是绝对不动物
                          动的是屏幕
                          F8就是向左移动了8像素
                          这个移动的距离以00为起点
                          如果是08就是向右移动8像素,注意,是16进制
                          FF就是向左移动一像素
                          01就是向右移动一像素
                          接下来的一段代码就是F3 22 4D
                          F3 22 提取光束类规律代码
                          4D 光束类规律代码
                          然后看看规律4D具体的代码

                          跟之前的一样,但是这个没有坐标,因为坐标已经被上一个规律,也就是规律4C给定了
                          这个规律就是直接读取图块
                          首先是读取图块45 46

                          再来看这个图库
                          那个灰色的框框所圈的就是图块45
                          后面那个就是图块46
                          F3 00 FD FF和之前的一样F3 分割这段代码和下段代码
                          00 下一段图片从这一行原Y坐标读取,若是01则从原Y坐标下一行读取
                          FD 下一段图片从这一行原X坐标左移3格读取00不动
                          FF结束取图规律


                          IP属地:浙江13楼2017-03-14 09:44
                          回复
                            那么这个规律所读取的东西组合起来就是这个样子的
                            之前的一个规律所读取的就是这个样子的

                            再往回看规律4C

                            00 Y坐标不动
                            FD 就是横向移动
                            这个跟之前的一样
                            但是需要区别的是,这里每移动1就是一格
                            也就是8像素
                            每个小格子是8*8像素


                            IP属地:浙江14楼2017-03-14 09:48
                            回复
                              4C和4D结合起来就是这个样子

                              整个过程结合起来就是先读取规律4C
                              然后屏幕向左移动8像素
                              然后再读取规律4D
                              呈现这个效果

                              然后,再看接下來的一段FE 1E D8 88
                              FE 1E D8 88 指针的指向地址到FE之前的代码重复1E次既十进制30次
                              要注意的是这些都是16进制数
                              1E=10进制的30
                              这个D8 88 就是所谓的指针
                              指针的作用我一开始就讲到了
                              就是一个跳转的作用
                              指针差值:8010
                              指针算法:指针F784指向地址=84F7+8010=10507
                              武器动画的区域指针差值是8010
                              数据库的每个区域指针差值都不一样
                              指针的算法就是把指针的高位和低位互换后然后和固定的差值做加法
                              所得到的的结果就是跳转的地址
                              指针 F7 84
                              F7为高位,84为低位
                              两者互换之后,就是84F7
                              然后与8010做加法
                              初次接触的话,我再次说明一下,这是16进制的加法
                              不要和10进制搞混


                              IP属地:浙江15楼2017-03-14 10:01
                              回复