更新抖动物理效果

更新抖动物理效果

这是SF1Edit的编辑脚本,用于更新某些骨骼修改器的“抖动参数”。

描述

注意: 有关“如何操作”的文档,请参阅帖子部分的置顶帖。这里的内容是入门和背景信息,帮助您理解此脚本及其数值的含义。

这是一个用于 SF1Edit 的 Pascal“编辑脚本”。如果您想修改特定参数值,它们位于脚本的最底部。 您也可以手动更新这些参数,但使用这样的脚本会稍微省事一些。

要使用它,您需要选择想要修改的记录,然后使用 Apply Script... 来运行脚本。 您可以使用 SF1Edit 的快速启动功能来简化此过程(在选择要加载的抖动物理模块后,按住 Shift 键点击“确定”)。

参数说明

Starfield 的“骨骼修改器”参数被用来表示一个理想弹簧。这里涉及的参数是:

强度 - 这表示将“弹簧骨骼”拉回中心位置的初始力。由于它像弹簧一样工作,实际效果力还取决于“骨骼”从原始位置被拉伸了多远。低值会使回位缓慢,并产生更柔和的抖动效果,而高值则会使其快速回位。强度为零的骨骼基本上永远不会回到其原始位置。(注意:这里的“骨骼”指的是“骨骼动画”中“关节”定位的概念,而非实际物理骨骼的表示。)

阻尼 - 这表示弹簧能量消散的快慢。对于给定的强度,阻尼系数为 1 可以获得最快的“回位至中心静止状态”的效果。小于 1 会产生“抖动”(冲过中心位置),大于 1 则不会抖动,而是缓慢地回到中心位置。

最大距离 - 这是弹簧可拉伸距离的极限。粗略地说,这限制了在强度限制之外的“松软度”。

此外,每条 starfield 数据库记录都有三个数值,分别对应 x、y 和 z 方向。

在 Starfield 的角色模型上,x 轴是水平穿过角色的左右方向。绕此轴旋转会使角色前倾或后仰(在谈论旋转时称为“俯仰”)。但弹簧模型不是旋转模型,因此这里的 x 代表左右方向的弹簧刚度。

在 Starfield 的角色模型上,y 轴沿着角色的面向方向。(绕此轴旋转会使角色左右倾斜,也称为“翻滚”)。对于逼真的抖动效果,y 轴上的最大距离可能应该为零。

在 Starfield 中,z 轴是垂直的。(绕此轴旋转会左右转动,也称为“偏航”)。z 值决定了您获得多少上下抖动。

在这个编辑脚本的底部,您会看到一些类似这样的代码:

      cnt :=
        SetJiggle(e,  'Boobs',  '150',    '0.35',  '2 0 3')  +
        SetJiggle(e,  'Butt',   '150',    '1',     '1 0 1')  +
        SetJiggle(e,  'Belly',  '150',    '1',     '1 0 1');

计数部分是为了让脚本告诉您它做了多少更改。

第一个数字(也可以是三个数字)是“弹簧骨骼强度”。第二个是弹簧骨骼阻尼。第三个是弹簧骨骼的最大距离。

您应该编辑这部分代码来实现您的目标。如果一个参数有三个数字,这些数字之间必须用恰好一个空格分隔。如果参数只有一个值,则该值将用于 x、y 和 z 方向。这些数字用引号括起来,是因为用文本表示编辑过程非常简单。

注意: Starfield 的骨骼修改器机制似乎忽略了重力。它似乎只关注惯性——位置或运动的变化。此处可能有一个选项可以启用重力效果,但如果可以,我也不知道如何启用。

安装说明

将 .pas 文件放入您的 ...\steamapps\common\Starfield\Edit Scripts\ 目录中,该目录是在您安装 SF1Edit 时创建的。

要求

您需要 SF1Edit(最好是 4.15p 或更新版本),因为此脚本需要它来运行。注意:SF1Edit 4.15p 版本(我“今天”能找到的最新版本)无法保存对小主文件的更新——希望未来的版本能解决此问题(也就是说,您可以将骨骼记录复制到一个新文件中,并在那里编辑它们)。注意:4.15q 版本修复了一些重要问题,但似乎也带来了严重的性能损失——如果您使用此版本,请确保在等待沙漏消失时有其他事情可做。

您需要一个提供抖动物理效果的模组。例如,https://www.nexusmods.com/starfield/mods/15608 和/或 https://www.nexusmods.com/starfield/mods/15675(要获得可以在 xEdit 中修改后保存的“大型”esm 文件,请在 Miscellaneous Files 部分查找文件名中包含“ESM”的文件——您也可以使用 ESP 文件,但这样需要额外的工作来防止游戏崩溃)。这样一个模组涉及的内容远不止这些参数。请注意您下载了哪些文件,因为 SF1Edit 存在小主文件限制。或者,理论上,您也可以自己编写模组。larilith 提供了关于如何制作抖动物理模组的清晰文档。

鸣谢

没有 larilith 的工作,这个小工具将毫无意义。

更新日志

版本 1:首次发布 版本 2:还支持一些较新抖动模组使用的“Raziel”骨骼修改器名称。

(此更新日志的位置希望是临时的——我仍在尝试弄清楚如何将此更新日志放到 nexus 为其他各种模组提供的“更新日志”部分。)