从零开始的生化危机4重制版Modding教程 Part2 变更模型浏览器中的人物姿势
从零开始的生化危机4重制版Modding教程 Part2
本教程适合具有一定技术能力的玩家修改客制化mod,编辑一些简单的建模、材质乃至姿势等。本教程是作者在实践中一知半解的编写的,可能出现纰漏。
变更模型浏览器中的姿势
概述
此处的动画(Animation)是游戏中各种角色的动作,例如Ashley坐在橡木桶上时,调出REframework界面可以看到相关信息。

上图中,右侧的Animation中显示了当前Ashley这个角色(ch2a1z0)正在循环播放一个编号为9160的动画:cha1_exception_9106_shooting_field_loop。
RE Engine的动画和flash动画类似,都是依靠关键帧进行控制。不同的是,关键帧控制的是骨骼的各种参数。我们需要使用3dsMax和blender来进行动画编辑。如果你熟悉3dsmax,则blender不是可选项。
而有趣的是,游戏中的模型浏览器中的人物的动作(姿势)也是一个动画文件控制的,只不过这个文件内不含一帧以上的关键帧,所以你看到的是静态的模型(因此你可以在有能力后把模型改成动态的)。
现在我们将介绍一下控制游戏内动画的文件:motlist和mot。

这个文件夹中包含了Ashley的所有能够使用的motlist文件。你注意到了吗,在前面的图中,打开的一个子选项卡“NpcInteract"出现了。是的,正如你看到的,motlist里包含了一些其他的小的动作。你可以理解为,motlist就是mot list,只是一个简单的文件集合。而动作的可播放的最小单位则是mot文件。而一个典型的mot文件对应如下:

这个超级帅的盔甲的姿势文件(即一个一帧的动画)就是这个mot文件。后面我们将调整这个文件的姿势,然后应用到另一个模型上。
准备工作
要编辑Mot和Motlist文件,你需要
- 3ds Max 2017(其他版本不知道会不会出问题)
- 010 Editor - Pro Text/Hex Editor | Edit 280+ Formats | Fast & Powerful | Reverse Engineering
- Noesis工具
- 3dsMax插件:alphazolam/fmt_RE_MESH-Noesis-Plugin: A plugin for Rich Whitehouse's Noesis to import and export RE Engine Meshes and Textures
- 3dsMax插件:Motlist Tool (Maxscript) - Custom Animations in RE Engine |
- 010 Editor模板:alphazolam/RE-Engine-010-Templates: A collection of 010 Editor binary templates for reading RE Engine file formats
- RSZ_Tools:czastack/RszTool: RszTool is a tool that edit and create resource file for RE ENGINE game. Currently support .user, .pfb and .scn files.
编辑姿势
下面我将以编辑刚才图片中Ashley的盔甲装为例,把这个盔甲装的姿势变更一下,然后替换到浪漫主义的姿势上。
首先明确文件夹路径和结构。我们将涉及下面四个文件夹:
natives\STM\_Chainsaw\AppSystem\UI\Figure\Figure00_060:艾什莉(盔甲)natives\STM\_Chainsaw\AppSystem\UI\Figure\Figure00_040:浪漫主义natives\STM\_Chainsaw\Animation\ch\cha1\motlist:ashley的动作molist文件夹natives\STM\_Chainsaw\Character\ch\cha1\cha101\00:ashley的无袖装建模文件夹
然后,我们要修改和替换的文件的过程如下:
- 取出街头装中的
Figure00_060_Body_pose_mot.mot.613文件 - 用010编辑器将
Figure00_060_Body_pose_mot.mot.613文件以“狸猫换太子”的手法替换到cha1_wait.motlist.663里 - 使用3ds Max导入一个Ashley的身体模型(
cha101_00.mesh.221108797),并同时导入Animation(cha1_wait.motlist.663) - 在3ds Max中编辑姿势
- 将姿势注入到
cha1_wait.NEW.motlist.663中 - 从
cha1_wait.NEW.motlist.663提取出mot数据,保存为新的mot文件 - 创建Mod,实现姿势替换。
准备工作
为了避免混乱,我把所有文件都放在了一个文件夹里。如下图所示

文件夹层次如下:
Directory structure for ...\NewAshleyPose
|--cha101_00.mesh.221108797 # Ashley无袖mesh
|--cha1_wait.motlist.663 # motlist文件
|--Figure00_040 # 浪漫主义相关文件夹
| |--Figure00_040_body_00.mot.613 # 身体姿势
| |--Figure00_040_head_00.mot.613 # 头部姿势
| |--FigureModel_Figure00_040.pfb.17 # pfb文件
| |--FigureModel_Figure00_040_Strand.pfb.17
|--Figure00_060_Body_pose_mot.mot.613 # 街头装姿势
将mot文件插入motlist
确保010编辑器安装了前述所需的模板(安装很简单,在此不表)。安装正常后,010在模板子菜单应该类似下图:

红框部分的两个模板是必要的,其余的在这里暂时用不到。motbank文件就是.mot文件的模板。
首先导入motlist文件,运行motlist文件的模板:

选中其中的MOT ID字段,确保二进制区中对应的字节被蓝色选中

ps:如果你有多个MOT字段,那么建议你检查你的文件复制对了吗?理论上其他文件也是一样的,只是需要计算更多的偏移。我选择的这个文件只含一个mot,非常适合狸猫换太子
将Figure00_060_Body_pose_mot.mot.613拖进去打开,然后按下Ctrl+A全选,然后复制。
切回刚才的Motlist文件,将选中的蓝色部分删除。

按下键盘上的Insert键,当然,你也可以点击右下角将键入模式改为插入,然后将mot文件粘贴到motlist中。(注意右下角的INS标志)

随后,记住蓝色部分的下一行的地址。这是一个偏移,如上图所示,这个值为0x2B40。随后,点击模板结果里的HEADER中的colOffs修改为这个值。

保存motlist文件即可。
使用3dsMax导入并编辑姿势
启动3dsMax之后,运行REEM_NOESIS_CMD.ms和motlist tool.ms。

正常情况下,你的3dsMax此时的窗口大概会变成这样:

下面,在1处,点击Browse定位到你下载的Noesis可执行文件位置,确保路径正确。

然后,点击上方的Import Mesh/Animation,在弹出的窗口中选择你要导入的mesh文件 ,即cha101_00.mesh.221108797。随后,在打开的窗口中选择Select Animations打开动画选择子窗口。
如果这个窗口没有出现,很可能是因为在后台。你可以按下Win+D切换到桌面后,再按下win键,一般就会出现了

在弹出的子窗口中,依次按照图上的标志选择对应的项目。注意:如果你的路径不对的话,请更改上面的“Motlist files from”路径

点击OK并点击Load之后,在导入fbx窗口点击确认即可导入模型

导入后,3dsMax的界面大概会像这样:

下面我们对这个姿势进行一些调整。我们首先将视窗调整为透视三维视图。

现在窗口中显示的是mesh文件,而需要调整的是骨骼,因此我们需要让骨骼可见。按照下面的操作指示,将所有骨骼变为可见状态。(选择左侧栏目中的“root”根项,然后右键选择子节点,随后点开前面的小眼睛)

现在在人物上已经有了骨骼模型,下一步我们将调整这个骨骼模型。我个人习惯将直接使用默认明暗处理进行调整。
(这一步可以自行设计姿势)

如上所示,展开root下的逐个骨骼,找到L_Shoulder然后选中,打开选择并旋转按钮(2),三维视图中就会出现一个gizmos球。旋转这个gizmos球就可以控制人物的左肩膀。这里就可以自行更改姿势了

一些小细节要注意:
当导入的骨骼出现编号,如下图

需要先选中人物的任意一个建模,然后点击右侧的“Add/Remove Bone Numbers”来将编号删除。
另外,要注意操作骨骼时,位移工具、缩放工具要插帧。
如图,正常情况下,导入的mesh只有旋转的K帧

此时进行位移和缩放是不会生效的,你需要点击右下角的“设置关键点”来启用其他三个轨道的K帧。

下面的帧显示出三色就说明缩放、位移、旋转都应用了。(笔者因为这个笨问题卡了好久)

这样,操作位移、缩放就可用了。
更改结束之后,可以向保存为max文件以便后续使用。
选择“脚本”后选择骨骼工具

随后,选中所有骨骼,然后点击勾选“启用骨骼”

将动画注入到motlist中(覆写)
找到MOTLIST选项卡,点击OPEN .MOTLIST按钮,打开子菜单

随后点击INJECT ANIMATION,编辑好的姿势就已经注入到一个新的motlist里了。

从motlist中取出mot文件
打开010编辑器,应用模板之后应该看到一个MOT ID项目。选中这个项目,然后在文件-保存选择中将mot的二进制数据导出成新文件。为了方便起见,我们就直接命名为Figure00_040_body_00.mot.613

至此,一个姿势就已经编辑完毕。
创建mod文件
Fluffy Mod Manager的工作原理是进行替换文件。因此,我们按照原来的Figure00_040_body_00.mot.613的文件夹结构创建一个文件夹结构。在工作目录下打开终端,输入
mkdir MyPose\natives\STM\_Chainsaw\AppSystem\UI\Figure\Figure00_040\
就能够方便的创建嵌套文件夹,补充必要的modinfo信息和mod图片。作为参考,我的modinfo.ini如下:
name=MyPose
version=1
description=A demo pose for ashley
screenshot=modpic.png
author=hed10ne
category=Ashley
随后,将工作目录里的Figure00_040整个合并到mod文件夹中,然后用刚才从010编辑器中生成的mot文件替换其中的Figure00_040_body_00.mot.613。压缩之后放入Mod加载器,加载即可。

最终效果

后续
如果需要编辑动画,则只需要编辑关键帧里的骨骼。具体的操作是,打开具有多个帧的动画时,3ds会显示每个帧的动画关键帧。只需要编辑关键帧的骨骼,分别做好姿势,就能做好动画。
作者发布、转载的任何文章中所涉及的技术、思路、工具仅供以安全目的的学习交流,并严格遵守《中华人民共和国网络安全法》、《中华人民共和国数据安全法》等网络安全法律法规。
任何人不得将技术用于非法用途、盈利用途。否则作者不对未许可的用途承担任何后果。
本文遵守CC BY-NC-SA 3.0协议,您可以在任何媒介以任何形式复制、发行本作品,或者修改、转换或以本作品为基础进行创作
您必须给出适当的署名,提供指向本文的链接,同时标明是否(对原文)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示作者为您或您的使用背书。
同时,本文不得用于商业目的。混合、转换、基于本作品进行创作,必须基于同一协议(CC BY-NC-SA 3.0)分发。
如有问题, 可发送邮件咨询.

本文主要介绍了如何修改游戏中角色在模型浏览器中的静态姿势。通过解析RE Engine的动画系统,作者说明了动画是由关键帧控制骨骼实现的,即使静态姿势也是由单帧动画(mot文件)定义。文章详细介绍了mot与motlist文件的关系与用途,并提供了编辑这些文件所需的工具(如3ds Max、010 Editor、Noesis等)以及相关插件,为玩家进行姿势替换和自定义提供了技术路径。
浙公网安备 33010602011771号