前言:本教程仅在踩蘑菇发布,你可以发布我的教程链接,但禁止未经授权的任何形式的转载、搬运及再发布行为。
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,这个动作就具备了无敌。
具体参数详表:
举一反三,你懂了这个实例,剩下的做做就懂了。参数表都是各位大佬花费时间测出来的,现在的学习者相当于坐享其成,这样丰富的资源和环境,还学不会,说不过去。
好了,那么第二期就到此结束,我们下期见。
