【lmt教程】移植动作判定的方法——以盾斧移植GP到其他动作为例

看了站里大佬那么多教程,来这里也有段时间了。研究lmt有了一点小成果。我也发个教程,说是教程其实只是一点微不足道的心得。

但是我想应该会对萌新有所帮助。本教程受Xovea大佬的添加按键判定启发,感谢南风焓大佬的lmt参数区结构教程。

本文使用工具为010Editor

那么接下来是一些lmt的基础。想要对动作进行修改首先要找到该动作在lmt文件的位置,那就不可避免的需要明白lmt文件的结构,这里推荐有编程基础的小伙伴看一下

忧乐之面大佬的lmt教程。当然我这里也会稍微提一下。


画了个粗略的结构图

(图1-1)

找到动作在lmt里的位置,我使用的是两种方法,对于有伤害判定的动作推荐使用Xovea大佬的添加按键判定里提到的方法。即通过搜索EA82FF38这个伤害判定标志然后修改区块数量使当前动作丢失伤害。再进游戏测试即可得到这个伤害标志对应的动作。对于没有伤害判定的动作可以通过交换文件头区的指针来查看哪些动作发生了变化从而得到动作对应的文件头。详细过程在忧乐之面大佬的lmt教程

动作都测试完后这里就可以开始着手给其他动作移植判定或动作了。


这里拿给盾斧的牵制斩添加GP来举例。虽然牵制斩有伤害判定,但是这里为了完整还是从文件头开始。

首先,盾斧牵制斩的文件头地址在0338,指针为F023

(图2-1)

接下来跳转到F023所指向的地址即23F0(指针反读即为地址,后面同理不再赘述)

对图1-1而言,这里就是动画块头了。红框圈出的为指向参数区的指针30B21100

(图2-2)

接下来跳转到参数区11B230

(图2-3)

图2-3中第一个红框即为伤害判定标志,对于有伤害判定的动作就可以从这里开始。

图2-3中第二个红框为的人物参数区标志(这里只需要记住就行)

那么接下来跳转到人物参数区。

这里插播一段小知识(来自南风焓大佬)


(图2-4)

图2-4中选中区域为一个区块(这里就称它为区块A),区块由24字节构成,前八字节(C0 B3 11 00 00 00 00 00)为区块A指针,中八字节        (05 00 00 00 00 00 00 00)为区块A指针指向的地址,包含的子区块数量(5 注意这里是16进制,如果是0A那就是10个子区块),后八字节            (4F 11 D6 48 0B 00 00 00)为区块A的定义,表示区块A指针指向地址的作用。

知道了区块的构成,那么接下来跳转到区块A指向的地址(11B3C0)并且此地址后的五个区块均为区块A的子区块。


(图2-5)

由于每个区块为24个字节,五个子区块并不能填满8行,所以黑框中的内容是用来填充八个字节的空白区域并无实际作用。

红框中即为第三个子区块,它的定义是(A6 20 FD 08 01 00 00 00)这说明它指向的地址(11B8D0 反读指针)功能是管理人物状态。而管理人物动作的标志(C7 FB 63 6E 01 00 00 00)在这五个子区块中并不存在。(重要!人物状态和人物动作的标志只在人物参数区生效,在其他区会有不同的作用)

那么想要给牵制斩移植GP就要在这里增加一个管理人物动作的区块,方法一,在这五个子区块中选一个给替换成管理人物动作的区块(此方法不推荐,替换了区块可能会引发未知BUG)。方法二,为人物状态区添加一个管理人物动作的区块。接下来着重介绍此方法。

首先我们回到人物状态区(图2-4)可以看到人物状态区有五个子区块,因为要添加一个管理人物动作的子区块,这里先把子区块数量改为(06 00 00 00 00 00 00 00),然后把人物状态区的五个子区块全部复制下来,并粘贴到lmt文件末尾。

(图2-6)

为了方便黑框处为手动填充的0,下面的即为复制过来的五个子区块。然后在后面加上管理人物动作的区块,由于GP的地址还不知道,所以区块的前八位(指针)先用0填充,中八位子区块数量(03 00 00 00 00 00 00 00)(如果不知道也可以先用0填充,这里GP的动作有3个子区块,所以填3),后八位填上人物动作区块的定义(C7 FB 63 6E 01 00 00 00)

(图2-6-1)

图2-6-1添加了人物动作区块。这时就需要GP动作的数据。找到一个带有GP的动作,把它的人物动作区给复制过来(这里我选择使用盾斧 移动斩·前 的GP动作),盾斧 移动斩·前 伤害判定区地址为185410。那么跳转到这个地址

(图2-7)

可以看到 移动斩·前 的人物参数区有7个子区块,那么接下来去这7个子区块(1855A0)中找人物动作区的标志(C7 FB 63 6E 01 00 00 00)

(图2-8)

黑框还是填充用的0,红框为我们要找的人物动作区。接下来去(185D60)把GP的具体动作给复制下来,粘贴到文件末尾。

(重要!在人物动作区是20个字节一个区块)

(图2-9)

黑框依旧是填充用的0,把这段复制到文件末尾。

(图2-10)


蓝色方框即为GP动作的地址,把它的反读(A04358)填入图2-6里预留的指针位置(即置0的前八位)。两个红色方框分别为第二个子区块和第三个子区块的9-12字节,分别控制GP判定的生效时间和结束时间(浮点数)。生效时间改为(00 00 00 00)(第0秒),结束时间改为(00 00 B4 43)(第三秒),基本可以实现动作持续时间内GP判定全覆盖。

(图2-11)

这样GP判定就移植到牵制斩上了,想移植其他判定应该也可以。

那么教程到此结束,感谢大家支持

by 凉风Cirno 发布于 2020-09-04
打赏后可直接下载附件 赠人玫瑰 手留余香
2个大佬推荐该主题
默认
最新
1