古墓丽影:崛起模组工具

古墓丽影:崛起模组工具

《古墓丽影:崛起》的文件注入器/模组管理器,包含模型模组制作工具。

工具

古墓丽影:崛起 模组工具 v1.2

横幅

横幅由 SilverEzredes 制作

这是我为《古墓丽影:崛起》制作和安装模组所收集的工具集。

模组注入器 (Mod Injector)

ROTTR 模组注入器 是一个用于《古墓丽影:崛起》的基础模组管理器和文件注入器,由一个 .bat 文件和一个名为 ROTTRTigetadd.exe 的注入应用程序组成,该程序接收来自 bat 文件的命令。它将修改后的文件插入回游戏中,强制游戏加载它们。 要安装注入器,请将 Mod Injector ZIP 文件中的内容放置到你的《古墓丽影:崛起》游戏目录中。它默认将文件注入到 "bigfile.update3.000.000.tiger" 中,但也可以使用 "bigfile.update2.000.000.tiger" 为旧版本的游戏制作模组。

注入器截图

你可以通过将预先制作好的模组文件夹拖放到 InstallMod.bat 上来安装模组。注入器会在 Tools 文件夹内记录其替换的每个文件,如果你单独运行 InstallMod.bat,它可以利用这些记录卸载所有模组并将 bigfile.update3.000.000.tiger 恢复为默认状态。

InstallMod截图

^^ 将模组文件夹拖放到 InstallMod.bat 上进行安装,单独运行 InstallMod 可卸载所有模组。

InstallMod 还支持文件的“深度搜索”替换,即搜索并替换对单个文件的所有数百个引用,将其替换为你模组文件的新引用。这种文件安装方式非常彻底,单个文件可能需要几分钟时间,但会减少游戏忽略模组文件的情况。它与其他文件的卸载方式相同。在模组中,命名为 "Replace" 的文件将通过深度搜索安装。

你可以通过将模组需要安装的 "DRM" 存档文件复制为 "drmfile.drm" 放在 InstallMod.bat 旁边,然后将单个文件拖放到 InstallMod 上一次安装一个文件。编辑批处理文件可以更改 InstallMod.bat 的基本选项,例如使用深度搜索安装单个文件或更改某些文件的位置。

更新 v1.3: 你现在可以使用深度搜索文件后创建的卸载 "tiger_patch.log" 文件,让这些文件下次安装速度快 1000%。将该日志文件放在其为创建的 Section [XXXX] 文件旁边,命名为 [XXXX].log 即可启用此功能。

更新 v1.5: 本次更新对 Installmod.bat 进行了重大改革,并已更新为处理 txt 文件(而不是 ROTTRTigetadd)。

  • 你现在可以通过在 DRM 文件夹中添加一个 TXT 文件(例如 "bigfile.update2.000.000.tiger.txt")将模组文件夹中的特定 DRM 子文件夹注入到不同的 bigfile 中。该 DRM 将被注入到 bigfile.update2 中,即使 bat 文件设置为 update3。
  • Installmod.bat 将自动在你的模组目录中创建日志文件,以便下次安装更快。
  • 对于模组制作,Installmod.bat 的单文件模式通过新功能得到改进,它将提示你选择要使用的 DRM 文件,并允许你更改注入的 bigfile,或通过注入一个名为 "Replace [XXXX]" 的单个文件来进行深度搜索。
  • Installmod.bat 的 UI 及其使用方式的其他小改进。

你可以使用我的模组 "Lara Bikini" 来测试模组注入器,该模组也可在 Nexus 上获得。

Lara Bikini 截图

^^ Lara Bikini,一个我用这些工具制作的模型模组。

面向模组作者的模型和纹理编辑工具

Noesis 插件

这个用于 Noesis 的 Python 插件 在此处下载 Noesis 可以预览和提取《古墓丽影:崛起》中的 tr2pcd 纹理和 tr2mesh 模型,并且还能将 FBX 模型导出回 Rise 的 tr2mesh 格式。通过 FBX,你可以使用 3ds Max 或 Blender 等程序编辑模型,然后再次导出为 FBX,并从 Noesis 将 FBX 导出为可用的 tr2mesh,准备好在游戏中使用。 要将 FBX 导出回 tr2mesh,网格名称和骨骼名称非常重要,如果对象的名称与原始模型中的对象名称不匹配,则会被忽略。你必须在提取的 drm 中找到扩展名为 "skl" 的文件,并将其放在你的 tr2mesh 旁边,命名为 "skeleton.skl",以便 Noesis 为你的模型添加骨骼。感谢 Gh0stblade 创建了原始的 tr2mesh 导入器。

Noesis 导出截图

^^ 保留面部混合形状的同时导出 FBX --> tr2mesh

混合形状 是 ROTTR 的面部动画,但不幸的是,它们在游戏中的格式尚未被完全理解,只能被复制和导入。因此,它们只适用于原始未修改的几何体。你可以使用 tr2mesh 文件名后的 " -bs" 参数进行导出,插件将从另一个 tr2mesh 文件中复制 Lara 的头部网格,并保留其混合形状(如果它仍然有的话,因为不使用 " -bs" 参数导出将删除所有混合形状)。

得益于 aman 的研究,你现在也可以使用 Noesis 插件将面部混合形状作为网格导入。通过增加 py 文件顶部全局选项中的 gNumDisplayShapes 来增加混合形状的数量。Lara 的头部有 107 个混合形状,你可以通过更改 "gFirstShape" 选项来改变起始形状。

编辑时请记住,骨骼影响限制/顶点权重限制为 4。另外,请确保你的缩放比例正确,不要大 2.54 倍或小 0.39 倍(英寸与厘米单位)。

MaxScript 模型工具

这个 "rottr_mesh_tool" Maxscript 最初是为编辑 Lara 的头部模型而创建的,但现在你可以用它来编辑模型上的任何网格。这是我最后制作 Bikini 模组时使用的主要工具。它一次注入一个网格,用于在 Noesis tr2mesh 导出器创建模型后调整模型。你可以通过编辑网格对象属性中的用户属性并设置 "Write Material ID = True" 来更改网格使用的材质(纹理集)。

如果你使用 Noesis 插件和 " -bs" 参数准备了带有 Lara 原始头部网格副本的模组,你可以使用 MaxScript 工具更改其内容,而不会干扰保持面部动画所需的顶点顺序。

编辑头部网格:

你可以通过在 3ds Max 中使用 rottr_mesh_tool.ms 导入 Lara 的原始头部网格,进行编辑,然后点击 "Inject Model Data" 将 3ds Max 头部注入到你使用 " -bs" 参数制作的模组上,从而在不干扰面部混合形状的情况下编辑默认头部网格的几何体、UV、蒙皮权重和法线。之后,你可以通过 Noesis 和 " -bs" 参数导出覆盖你的 NewMesh,来转移修改后的头部。你不能添加或删除任何顶点,也不能重新导入模型,否则混合形状将被破坏。模型上的顶点顺序必须始终保持完全相同才能保留面部动画。

只要你要注入覆盖的文件中的顶点和面数相同,rottr_mesh_tool 也可以保存除头部网格之外的其他网格的顶点和面数据。

MaxScript 编辑截图

^^ 使用 rottr_mesh_tool.ms MaxScript 修改头部网格以匹配身体,而不改变顶点顺序

010 模板

我包含了用于 ROTTR tr2mesh 格式、tr2mesh 骨骼以及 DRM 的我的二进制模板。还包含一个 1sc 脚本,用于将 DRM 文件中的所有引用转换为耐力老虎文件,以便提取。

ROTTR_mesh.bt 模板对于模组制作非常宝贵,它可以让你更改网格的纹理集(在 SubmeshInfo 中,更改 “material”),以及交换顶点缓冲区和面列表。

ROTTR_mesh.bt 模板截图

^^ ROTTR_mesh.bt 模板显示 tr2mesh 的顶点

包含一个 tr2pcd 模板用于查看纹理头,以及一个 SKL 模板用于调整骨骼位置。 还有一个 TIGER 文件模板,尽管它非常消耗内存,因此仅限于搜索前 1408 个 DRM。你可以编辑模板使其解析所有条目。

提取游戏文件

使用 Ekey 的 TIGGERUnpacker 从游戏的 bigfile.update3.000.000.tiger 文件中提取 DRM 文件。然后,找到一个你想要修改的资产对应的 DRM 文件,并使用 DRM dumper 将其从游戏文件中提取出来。

如何从 bigfile.update3 中提取 DRM: https://forum.xentax.com/viewtopic.php?f=10&t=13501&start=270#p166554

你可以使用这个由 Ekey 制作的更新版 DRM Dumper 从 Update3 中提取文件:

下载 DRMDumper [update3 版本]

DRMDumper 截图

^^ Ekey 的 DRMDumper 提取 Lara 服装 "DRM" 文件的内容,并巧妙的提取 bigfile.update3.tiger

创建和分发模组

要创建模组包,请创建一个模组文件夹,并在其中为每个要修改的 DRM 文件创建另一个文件夹,将 DRM 文件放在每个文件夹中,并使其名称与包含它的文件夹名称相同。所有要安装到此 DRM 的 Section XXXX 文件都放在此文件夹中,一个模组可以包含多个 DRM 文件夹。命名为 "Replace XXXX" 的文件将被强制安装覆盖该资产的所有引用;它们的安装可能需要很长时间,但更有可能生效。

将主模组文件夹拖放到 InstallMod.bat 上,它将逐个将模组文件夹中的每个 DRM 文件夹安装到游戏中。命名为 "Section XXXX" 的文件将以正常方式快速注入,而命名为 "Replace XXXX" 的文件将通过深度搜索注入。

模组文件夹结构示例

^^ 模组文件夹示例,使用旧的卸载日志来改善安装时间,并使用 txt 文件将纹理重定向到其他纹理

你可以重复使用 "tiger_patchXX.log" 卸载日志,使模组中的文件安装得更快,只需将它们重命名为其为生成的资产的 Section 编号 + .log 即可。 如果你要重用纹理,可以让一个资产重定向到另一个资产,方法是在其位置创建一个 txt 文档,例如 Section 0104 只是 Section 0101.tr2pcd 的副本,所以在 "Section 0104.txt" 里面写上 Section 0101.tr2pcd ,这样就可以在其位置加载 Section 0101.tr2pcd。

如何修改纹理

要加载《古墓丽影:崛起》的纹理,请使用 Noesis 插件在 Noesis 中打开它们。你可以选择 文件 -> 导出 并将它们保存为 TGA 文件,然后用 Photoshop 打开该文件。编辑完成后,你可以使用 Intel Texture Works Photoshop 插件 将纹理保存为 DDS 格式。你可以通过使用 HXD 或 010 Editor 等十六进制编辑器打开原始纹理来找到其名称。纹理的名称和类型位于文件开头,类似于 "assets\mesh\objects\characters\lara\textures\lara_tanktop_d"(本例中 "d" 表示 "diffuse" 纹理)。

对于每种材质,通常有一张光照贴图、一张效果贴图,然后是三组法线贴图、漫反射贴图和粗糙度贴图(一组常规、一组泥泞、一组血迹):

漫反射贴图 常规的彩色纹理

法线贴图 法线贴图,模拟深度和光照。要使你的法线贴图像游戏的法线一样呈黄色,请反转蓝色通道。 绿色通道应为 DirectX 格式。

粗糙度贴图 此纹理代表皮肤光泽和汗水,我仍不完全确定每个通道的作用。皮肤的原始粗糙度纹理是非常暗的黄色。我知道绿色通道中的暗度可以防止 Lara 在泥泞中打滚时被弄湿。

漫反射贴图、法线贴图和粗糙度贴图使用损耗非常大的 BC1 压缩保存,使用以下设置: BC1 压缩设置

所有 ROTTR 纹理均保存为 Texture Type: Color,无 alpha 通道。

光照贴图 代表模型上阴影的黑白纹理。使用 BC4-灰度 压缩保存。

效果遮罩 RGB 通道各自是用于湿润、汗水、血迹光泽的遮罩,与粗糙度纹理配合使用——我不完全确定哪个对应哪个。与原始纹理比较并尝试模仿它们。使用 BC7 压缩保存。

一旦你将纹理保存为 DDS,你可以通过 Noesis 打开你的 DDS 文件(文件 > 导出)并将其导出为 tr2pcd,覆盖其提取来源的原始 tr2pcd 纹理,从而将其转换回可在模组中使用的 TR2PCD 纹理。在将其重新注入游戏之前,在 Noesis 中预览新的 TR2PCD 文件以确保它能正常工作。

致谢

非常感谢所有支持我制作这些工具的人,尤其感谢:

  • Gh0stblade - 感谢他对《古墓丽影》逆向工程的研究,以及制作了 Noesis 原始导入器和 CDRM.exe 等重要工具(用于在注入游戏前快速压缩资产)。
  • aman - 感谢他创建了 TR9tigetadd 的源代码,该代码被改编为 ROTTRTigetAdd.exe,用于此注入器。也感谢他对修复导出模型的有益见解。
  • Raq / LuckyEdge - 感谢测试、一般的帮助和反馈。

::: spoiler 此文本在被点击之前是隐藏的。 :::