【教程】唯的lmt教学:第二期 定义、参数和lmt的内部修改

前言:本教程仅在踩蘑菇发布,你可以发布我的教程链接,但禁止未经授权的任何形式的转载、搬运及再发布行为。

You should not upload to any other site without my permission.

依旧,先放一张镇楼图。


又见面了,各位。这期教程是唯的llmt教程第二期,讲得会快一些,同时会活化各位的思维,如果上一期逃课的这期就别指望看懂了(笑)。好的,关于需要的工具可以去第一期里下载,那么话不多说,我们开始今天的教学内容。为了各位的直观,我会先运行冰冰子的模板再开始讲解,实质上不用模板就可以做成,运行模板是为了让大家看的更直观清楚一些。


一、定义

    Q:什么是定义?

    A:一些具有特殊作用的十六进制字符串(通常是八位,或者四位,不好理解的话可以理解为标识符),决定了lmt里一些数据的功能,我们称之为定义。


    Q:定义的作用?

    A:定义决定了一个动作的特性,举一些例子:

    对于龙骑跳而言,特效定义让龙骑跳具备了龙骑跳的动画特效。

    对于大剑横扫斩而言,伤害定义让横扫斩具备了伤害判定。

    对于小居合而言,按键定义让小居合具备了动作之后能够有各种派生的按键判定。


    Q:定义的位置?

    A:定义在动画区和判定区都有,在动画区里,主要体现为XXXXXXCD;在判定区里,就是我第一期所说的单个区块,分为24byte(字节),遵循三八原则,属于后八。


    Q:定义的分类?

    A:每个定义都具体决定了一项内容,想要摸清楚定义需要自己亲自实践和枚举,因此现在能够找出的定义并不完整,我仅列举部分已知定义。

    定义的区块大小不一样,动画区一个定义(含定义和区块)大小是三行,也就是16*3 = 48byte(字节)。判定区的一个定义是24byte(字节)。


    讲之前先说一个定义,轴。

    在MHWI里,xyz轴是方向,其中,X轴是左右;Y轴是上下;Z轴是前后。


    (1)单重定义:所谓单重定义,指的是该定义只定义了该项内容,在lmt的单个动作里通常不重复,不存在二义性。(如果之后发现存在二义性,以下内容请以第一个为准)

        动画区:

                    1.Z轴缩放关联定义:04 04 00 CD

                    X轴和Y轴缩放关联定义有一些问题,不一定通用,有的武器动画不具备这些关联参数,具体什么原因我之后的教程会讲,这里暂且跳过。


        动画区单个定义(含定义和区块)图示:

    

         判定区:

                    1.决定伤害判定的定义:EA 82 FF 38 00 00 00 00

                    2.决定人物状态的定义:4F 11 D6 48 0B 00 00 00

                    3.决定按键判定的定义:OE D1 CC 6F 09 00 00 00

                    4.决定特效和声音的定义:F6 A4 59 61 02 00 00 00

        定义过于冗长,全部说的话不方便教学也不方便观看记忆,因为八byte(字节)的定义头两位字符通常没有二义性,所以我们下面的教程对于定义通常叫它的头两位,比如EA 82 FF 38 00 00 00 00,我们下面会简称为EA。


        判定区单个定义(含定义和区块)图示:


    (2)多重定义:相对的,如果一个定义存在二义性,(比如,它在伤害判定区存在,却又在按键判定区存在,而且作用各不相同),我们就称它为多重定义。

        1.动画区:

                        动画区这样的例子很多,我只随便列举一个:02 03 00 CD。


        2.判定区:

                        判定区这样的例子也很多,我在此列举我们常用的定义:

        按键判定OE下的子定义:


        伤害判定EA下的子定义:

                                            1.判定(主要是伤害判定)开始和结束的定义:A6 20 FD 08 01 00 00 00


        人物判定4F下的子定义:

                                            1.决定人物状态的参数定义:A6 20 FD 08 01 00 00 00 


        Q:怎么知道它是子定义呢?

        A:单个定义区块里,头八是指针,中八是区块个数,通过指针和区块个数来分辨,举个例子,如图。


    红框从左到右,从上到下依次为:

    1.人物参数区的指针,其偏移指向了它的子区块首地址:15 38 70。

    2.人物参数区的子区块个数,可以看到为 06,即6个子区块。

    3.最后两个红框内容是单个自定义(含定义和区块)的大小,24byte(字节)。  

    蓝框:

    1.蓝框内容是人物参数区的定义的完整大小,6个区块,每个区块占据24byte(字节),一共为:6*24 = 144byte(字节),也就是9行内容。

    (小提示:2个定义占据3行,以此类推,6个定义占据9行,便于数区块个数)


    你可能会看到有的定义完了,但是它后面还跟了4个或者8个00,这是为了美观,并且和其他定义的区块泾渭分明,没什么实际意义。


    附:不仅仅是定义根据中八划分区块,定义如果指向了某些参数,这些参数也是靠中八来划分区块,具体区块一般20byte(字节)一个。


二、参数

    Q:什么是参数?

    A:一些具有特殊作用的十六进制字符,我们称为参数。


    Q:参数在哪里?

    A:为了方便起见,我们把直接指向了参数内容的指针,称为一级指针;把指向的仍然是定义区块的指针,称为二级指针。比如:

    4F下的A6,4F的指针指向了A6,4F的指针就是二级指针;4F下的A6,它的指针指向了实际参数,A6的指针就是一级指针。那么,

    参数就在一级指针指向的数据里。


    为了体现泛用性,我接下来的示例都是随机示例,教学相长,具体想修改什么请看官看懂之后自行修改。

    动画区:

                Z轴具体参数为例:



    这是Z轴区块的尾指针,从尾指针跳转过去。

    在Z轴里,总缩放参数的位置在两个AC C5 27 37之间,我们找到它,右侧有数据的选择,我们在浮点数一栏修改它,就可以改变动画的Z轴缩放。


    判定区:修改无敌为例:

我们先从4F跳转到A6,再从A6跳转到具体参数定义区,具体过程如下:


    如图3。通常第四byte(字节)决定了人物处于该动作下的状态。这里不一定是06 00 40 02,也可能是05 01 00 00,或者00 00 00 02,又或者07 00 00 02之类的,没什么关系,前面那个主要是05,06,07,初步推测决定了动作类型,比如地面,空战,软化之类的,有兴趣自己研究,和教程内容无关。

    那这里的02是什么意义?一般动作默认都是02,02应该没什么霸体,或者有那么两帧的霸体吧,反正没什么意义。我们把02改为6F,这个动作就具备了无敌。


    具体参数详表:


    举一反三,你懂了这个实例,剩下的做做就懂了。参数表都是各位大佬花费时间测出来的,现在的学习者相当于坐享其成,这样丰富的资源和环境,还学不会,说不过去。


好了,那么第二期就到此结束,我们下期见。











by 爱尔斯蒂亚 发布于 2020-10-31
打赏后可直接下载附件 赠人玫瑰 手留余香
1个大佬推荐该主题
默认
最新
1