NPC 纹理微调
它有什么作用? 它允许你通过一个简单的OBSE插件,为游戏中的每个NPC创建并使用独特的纹理。目前仅支持OBSE版本12和《上古卷轴4:湮没》版本1.2.0.416。 如果你没有OBSE(《湮没》
它是做什么的?
它允许你通过一个简单的 OBSE 插件为游戏中的每个 NPC 创建并使用独特的纹理。
目前仅支持 OBSE 版本 12 和《上古卷轴 4:湮没》版本 1.2.0.416。
如果你没有安装 OBSE(Oblivion Script Extender),可以从 http://obse.silverlock.org 获取最新版本。
我已经包含了一些示例来展示它是如何工作的。
我稍微修改了游戏开始时尤里尔·赛普汀和他保镖的面部。
我还包含了一个 NPCTest.esp 文件,它在你的监狱牢房秘密门后的通道中添加了一个示例 NPC。
目前这是一个测试版本。
该插件对游戏加载纹理的方式进行了一些修改。
我能想到的唯一副作用是它可能会解决一些存档无效化的问题。
但如果你遇到任何问题,请告诉我。
它是如何运作的?
它利用了游戏为 NPC 种族纹理设计的纹理缓存机制。
种族纹理是由 50 个纹理组合而成,这些纹理存储在 egt 文件中,并通过纹理滑块进行控制。
显然,每帧都合并 50 个纹理会严重拖慢游戏运行速度。
因此,游戏将这些纹理合并为每个 NPC 独有的单一纹理。
如果你查看 Oblivion-Textures-Compressed.bsa 文件,会发现一个名为 textures\faces\oblivion.esm 的目录。
这里包含了一些蓝灰色的纹理贴图。
这些实际上是保存的 NPC 种族纹理,可以避免游戏每次都要混合 50 个纹理。
问题在于,游戏被硬编码为只能从 Oblivion.ini 文件中 SMasterTexturesArchiveFileName1 设置指定的 bsa 文件读取这些缓存纹理。
我所做的是修改引擎,使其在检查这个 bsa 文件之前先检查你的数据文件夹。这将允许你创建自己的自定义缓存文件。
我还修改了引擎,使其能够查找来自 esp 插件的缓存文件。(之前它只检查 esm 插件)。
另外,我还修复了一个 bug,该 bug 导致引擎查找的文件包含了表单 ID 中的插件编号部分,这意味着如果你更改了插件的加载顺序,文件的表单 ID 也会随之改变。
该插件现在拥有自己的设置文件。此文件保存在您的"我的文档\My Games\Oblivion"文件夹中,文件名为 OBSEplugins.ini。如果该文件不存在,则会自动创建。设置位于 [NPC Tweaker] 部分下,具体包括:
- bEnabled - 如果设置为 0,则该插件将被禁用且不会执行任何操作。设置为 1 则启用该插件。
- iCSGenerateTextures - 控制在角色菜单栏中选择"导出 NPC 面部纹理"时,构造集生成哪些种族纹理。设置选项为:
- 0 - 仅从已加载的 esm 文件生成面部纹理。(这是 CS 通常的做法)。
- 1 - 仅从已加载的 esp 文件中生成面部纹理。
- 2 - 为所有已加载的插件文件生成纹理。
- bCSShowTextures - 如果设置为 1,那么构造集显示的任何角色将使用你自定义的面部纹理,而非生成的纹理。
我已将插件的源代码包含在 src 目录中。
如何创建我自己的纹理?
首先你需要做的是找出你想修改角色的表单 ID。
你可以通过在构造器中将鼠标悬停在 NPC 名称上来获取这一信息。
缓存的纹理命名规则为:
textures\faces<插件名称><表单ID>_<身体部位>.dds
表单 ID 始终为 8 位数字,且前两位十六进制数(通常包含插件编号)必须为零。身体部位为单个数字,取以下值之一:
- 0 - 角色头部
- 1 - 男性耳朵
- 2 - 女性耳朵
dds 文件可采用任何格式,因为 alpha 通道似乎被忽略,但游戏使用 DXT5 格式。
您可以通过点击"角色 > 导出 NPC 面部纹理"使用构造集生成这些纹理,然后进行编辑。插件的设置文件允许您修改此命令的行为。
游戏使用的缓存纹理采用特殊的有符号数字格式,并基于该角色种族的基础纹理(如 headhuman.dds)进行偏移。为帮助创建这些纹理,我编写了几个实用工具(位于 utilities 文件夹中):
- NPCTexToFace - 将现有缓存面部纹理转换为普通面部纹理。这允许您从 Oblivion-Textures-Compressed.bsa 文件中提取现有 NPC 的纹理并进行修改。
- FaceToNPCTex - 将新创建的面部纹理转换为湮灭引擎可理解的格式。
两个工具均接受以下参数:
NPCTexToFace/FaceToNPCTex <输入文件> <种族基础纹理文件> <输出bmp文件>
目前工具只能输出 BMP 文件,但输入纹理可以是 jpeg、bmp、tiff、gif 或 png 文件。
需要说明的是,这些工具是临时编写的,没有错误检查功能。如果输入错误信息,它们很可能会崩溃。
有任何使用限制吗?
没有。和我所有的作品一样,只要在 readme 中提到我的名字,您可以随意使用。我的用户名是 scanti,您可以在 elderscrolls 论坛或我的个人网站 http://www.oblation.eu 找到我。
历史版本
当前版本 (0.2b)
- 新增对构造集的支持(仅限 1.2 版本)
- 添加了设置文件,可自定义插件功能
0.1b
- 首次发布。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。