【教程】唯的lmt教学:第一期 lmt结构详解

前言:本教程仅在踩蘑菇发布,你可以发布我的教程链接,但禁止未经授权的任何形式的转载、搬运及再发布行为。
You should not upload to any other site without my permission.

依旧,先放一张镇楼图。


站里的lmt教程很多了,但是都乱七八糟,要么就是碎片化的,不成体系。作为一个独自在lmt里探索了两三个月的人,唯在这里作为引路人给你们开辟一下前路的迷雾。我不敢说自己教的东西全部都有多透彻,也不敢说自己的见解有多独到,你如果愿意学习,就参考吧。本期教程是lmt教程的第一期,为什么要叫做第一期呢?

1、本教程是呈体系化的内容,会带领你梳理各类各种碎片化的知识。

2、本教程还会有后续,而且会做成一个系列。


好的,话不多说了,我们正式开始吧。喜欢我教程的朋友应该都知道,我的教程和追剧一样,根据时间和需求是可能会有更新的,请多关注。


一、你需要的工具:

    必要:

    1、冰冰子的LMT模板。

    2、Xovea或者冰冰子的LMT脚本(这个看个人喜好,我因为用Xovea的脚本比较多,所以教程主讲Xovea的脚本及其用法,二者脚本优劣也会在后面提及)

    3、MHW部分解包器(你可以在狩技下载到)   

    4、 010 editor 


    可选:

    1、我的大剑LMT表格(实际上包含了大剑的最详细LMT信息和其余13把武器的LMT部分信息)。

    2、时一大佬的付费动作LMT表格。

    3、凉风大佬/时一大佬的盾斧LMT表格

    4、三连不白嫖大佬的LMT教程(里面有类似表格的记录)

    5、Xovea的太刀教程(里面有类似表格的记录)

    6、时一大佬的虫棍和双刀LMT局部图(真正表格因为一些意外原因已丢失,仅留下部分截图)。


二、LMT结构详解

1.基础篇

    Q:lmt是什么?

    A:lmt是动作文件,里面包含了大量的信息,主要可以分为两部分:

    1、动作的各种动画。

    2、动作的各种判定。


    Q:lmt的分类?

    A:按照动作类型的不同,lmt基本可以分为:

    1、武器动作类,MHWI一共有14把武器,对应14个lmt。

    2、通用动作类,14把武器通用的动作,比如待机翻滚,或者是你购买的一些付费动作。

    3、怪物动作类,怪物当然也是有自己的lmt的,不然它们怎么动呢?而且怪物的lmt比人物武器的要复杂得多得多,目前除了南风焓大佬有部分笔记外,不知道有那位大佬深入研究过。


   Q:lmt的路径?

    A:对照上面的三类,路径分别为:

    1、武器动作类:hm\wp\wpxx\mot\wxx_00

    2、通用动作类:hm\common\mot\coxx_xx

    3、怪物动作类:


    路径比较复杂,这是随便举的一个例子。


    鉴于本人时间精力优先,研究理解迟钝,之后的教程,我所说的LMT通常指武器动作类,也会有涉及通用动作类,但并不研究怪物动作类


2.结构篇

    首先,我们先用010 editor打开一个lmt,运行冰冰子的模板,然后得到如图的效果,这里用大剑wp00举例,一方面是因为我是大剑mod作者;另一方面是站里太刀侠太多,我觉得太刀方面的东西已经十分详细,我不需要画蛇添足了。


    我们会看见一些很漂亮的颜色,他们各自有自己的意义,冰冰子的中文模板很方便大家理解。接下来我逐一介绍。


    在此之前,我们先梳理一下lmt的结构逻辑,以便开展后续的介绍。

    lmt从上到下,从外到里,可以初步分为以下部分:

  

                                    1、→骨骼区→关键帧区  

文件头区→动画块头→

                                    2、→判定区→ 参数区


我自认为结构已经很清楚了,可能大家还是有点一头雾水,我举个比较简单易懂的例子。


假设我们是来进行人口普查的调查员,那么,文件头区就是一张家庭住址登记表,它里面有许多偏移块,它们代表了每家具体住的位置,也就是动画块头的地址。(为了便于记录和修改,偏移被定义为地址的倒置,比如地址是1BB0,就会被记录为偏移是B01B,这样的结构在MHWI的文件里并不少见,希望诸君可以举一反三。)通过偏移,我们就可以确定这家人住的地址,也就是动画块头的地址,然后通过转到功能就可以跳转过去。

在得到了这家人的地址之后,我们就可以找到他们的家,于是现在我们开始下一步的访问:调查这家人的职业分类(骨骼区)和工资收入(判定区)。没有职业就谈不上收入了,lmt也是这样的,一个动画块头没有动画的话,判定的存在也就无所凭依。

职业分类是一个大的范畴,要想得到详细的职业,就需要从动画块头区记录的偏移继续往下跳转,方法和上面是一样的,粗解密一下地址,然后跳转过去,你就可以找到骨骼区;作为工资收入的判定区的访问方式同样如此。


至此为止,我们就对lmt的结构有了一个初步的认识:用术语来说,它是一种递归的结构;用通俗的话来说,它是一种套娃结构,一层套一层,每层都决定一些东西,但是如果这一层描述的还不够详细,那么就套上下一层,让描述更加具体,直到最后通过某些参数来实现某些具体功能,形成某些映射关系。


好的,那么下面是每个区块的介绍。


    1、头部→偏移块→一级偏移(即动画块头地址的偏移)


你可以看到这里有很多偏移,这里我稍微解释一下。所谓头部,指的就是文件头区。每8 byte(字节)是一个偏移,前四位偏移记录了动画块头的地址。


    2、一级头部数据块→ 一级头部数据(即动画块头区)


我们跳转过来其中一个区块,可以看到它的结构。从左到右,从上到下的红框依次为:

    1.骨骼区头地址的偏移

    2.骨骼数:十六进制,比如52,实际上是10进制的82个骨骼,这是最常见的人物动作骨骼数量,但并不是全都如此,比如远程武器就有动作不一样。

    3.动画帧数:十六进制,单位是帧,想要知道多少帧就换算成十进制。

    4。动画循环控制:FF FF FF FF 是-1,单次循环;00 00 00 00 是不受外力打断情况下持续;其他还有一些持续有限时间,比如太刀纳刀 81 00 00 00。

    5..判定区头地址的偏移


    3、关键帧定义块→动作(骨骼区)

    


 

     图示内容是其中一个骨骼区,骨骼区有大量的定义和指针,骨骼区单个块的结构如图。


这就是单个区块的结构,大小为48 byte(字节)。红框内容,从左到右,从上到下依次为:

    1、每个动画块开头的标志,可以粗浅的理解为定义,但实际上不同动画是存在差异的,有一些公共的,比如Z轴定义040400CD。

    2、单个区块指向的指针记录的偏移。如果这里是00 00 00 00,那么这个区块就到此为止了,没有往下具体决定它的参数,如果有的话就可以修改。关于区块指针的添加,我有尝试过,但并不如意,没有得到结论,所以不做讲解。


    如果这个区块有指针, 比如图示这种,就可以跳转过去,跳转过去的地方就是关键帧区的某个区块,如图。


    在冰冰子模板里,关键帧区被称为限制参数区。无关紧要了,每个区块32 byte(字节),有一些具体的参数,通过修改相关可以达到一些效果。


    那么骨骼区→关键帧区的内容就介绍完了,看到这里,如果你只是感觉到惊讶,那么很明显你走马观花。看的细致的同学应该有这样的问题:

    Q:那么我怎么知道一个骨骼区有多大呢?

    A:骨骼区在冰冰子模板里是红色的,一块红色区域代表一个骨骼区。


    Q:那一个关键帧区有多大呢?

    A:关键帧区在冰冰子的模板里是黄色的,一块黄色区域代表一个关键帧区。


    Q:如果我想要移植一个动作,我需要移植它的判定吗?

    A:因招式而异。

    常规情况下,大部分招式的判定和动画并没有直接联系,不过是绑定了一下伤害类型之类的东西,决定了判定的开始结束帧,这些都无关紧要,可以自己修改,动作的移植不依赖于判定。

    但也有一些特殊情况,招式和判定挂钩,或者判定和武器挂钩,又或者和特殊的偏移挂钩。举一些例子。

    1、虫棍的撑杆跳动画没有对应的空中类判定是跳不起来的。

    2、双刀的部分判定移植了没有伤害。

    3、替换了大剑的蓄力斩导致动画完全出不来。


    Q:如果我想要移植一个动作,我应该从哪里开始,哪里结束呢?

    A:移植不包含判定的情况下,从骨骼区开始,到如图所示的红线部分以上为止。红线部分以下开始是判定区。

    

    如果要动画+判定呢?那答案就很很明显了,从红色区域开始,到下一个红色区域开头之前的部分,就是一个动作的动画+判定。


    4、判定区块→动作判定(判定区)


    如图所示部分是一个判定区。就是刚才提到的红线下的部分。判定区也有自己的区块,区块指针的偏移记录的地址指向参数区。

    判定区同样有一些结构,这些结构和骨骼区类似。


    判定区单个区块是24 byte(字节)的结构,我们称为三八原则(没有偏见,请勿打拳)。

    我们分别把它们称为:前八、中八、后八。

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

    前八:参数区偏移

    中八:指向的区块总数

    后八:区块定义


    看到这里大家或许会问,什么叫定义?

    定义就是决定了某些功能的特定参数,目前尚未清楚具体含义,所以当做数学公式的定义来记。


    参数区:


    冰冰子的模板没有单独划分判定区和参数区,参数区是紫色的部分,上面蓝红绿三色的是判定区。这里请注意,冰冰子的模板没有单独细分开,蓝色部分并不是参数区单个区块的结构长度。参数区实际长度是20 byte(字节),如果你看到了后面还有00 00 00 00,那么很明显这些是为了看起来舒服,便于记录而凑数的字节,没有实际意义。通过修改参数区也可以达到一定的效果。


    那么判定的移植也是一样的,从判定区开始到下一个动作开始这部分,就是判定区。


    好了,内容就这么多。教程一开始提到的工具我已经得到几位大佬的许可,因此会放在附件里。教程本身是不收取影响力,只希望有更多的朋友能够加入lmt的研究之中。但绝对不鼓励剽窃、盗用和抄袭教程的相关内容进行二次发布。如有违反,我也没什么强制约束力,不过这会让作者心凉,本身做mod的各位作者也很忙,都是抽取业余时间一点点做,这种行为太过分的话,之后的教程可能就无了。至于说数据类作者工作简单,原理和修改方法早就被吃透了的人,我也只是笑笑了,实际上的工作难度谁做谁知道,我不排除有部分大佬,不过说风凉话的一般都是小巫见大巫,实际上做不出什么成果。数据类的研究枯燥乏味,并且成果不一定能达到预期,效应也不如外观类作者那么好,我个人并不推荐做数据类mod作者,不过如果你有坚韧的毅力和决心,我当然大力支持。


    嗯,那么这期教程就到此结束了,不要嫌教程讲的少,或者说的好像都和站里已经有的教程差不多。本期教程致力于形成知识体系,没有知识框架直接教修改也达不到什么成效,反而一知半解迷迷糊糊。之后的教程是逐步阶跃式的,所以如果根基不牢的朋友,之后的教程会越听越吃力。这本身就是进阶类的教程,想要理解的话,除了本身具有一定的学习能力,还要求能够自我探索钻研,否则浅尝辄止。





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