拴绳框架

创作者: asdt123123
已更新:2026-08-03 23:40:39
31.6MB

关于此 MOD

将真实的牵引绳带入天际世界。通过几次API调用,即可轻松将其整合到你的模组中。
允许你附加内容的框架 真实 拴在NPC身上,要么让它们带你四处逛逛,要么你带它们走。没什么实际限制,只要你愿意,组一条长长的队伍都行。

我建议给存档做个备份。这个模组的复杂度已经远超最初设想的范围,涉及了导航网格、角色移动和Havok物理等敏感区域。虽然它已经在其他网站发布了一段时间,目前还没有收到任何严重的BUG报告。 

预览视频: https://mega.nz/file/6noVzSaR#_jw-MqkrEAr6LzoYQxbXpp_w9JfdfzTJGg4bq4xaSYo

重要提示

这是一个 框架. NPC预计会带有包含移动方式的AI包。这可能不适用于所有NPC。你的模组还应当装备“缰绳”。

非模组玩家仍可通过调试SKSE模组菜单体验该模组。

特色功能

  • 丰富的Papyrus API,用于以任意顺序连接演员(actors)。
  • 利用HAVOK引擎打造的高级物理系统
  • 易于使用的调试菜单,用于测试或自由使用模组
  • 零包冲突干扰,本模组自带AI系统、寻路系统及移动系统。你的模组包永远不会被动到!
  • 完整支持玩家角色、其他角色等。暂不支持动物,尽管实现起来并不困难。
  • 包含4条由@kzrp制作的测试牵引绳,供随意把玩
  • 支援 任意/全部 缰绳,它们只需要一系列骨骼就能让这个模组动起来!这意味着《邪恶设备》中所有的链式项圈都能完全兼容!

如何游玩 — 无需Papyrus API

  • 将缰绳装备到演员身上(或任何缰绳,比如来自邪恶装置mod的缰绳)
  • 通过SKSE模组菜单进入 f1, 找到这个模组。打开 调试.
  • 选择牵绳者,以及被牵绳者。牵绳者 必须 装上那个项圈,模组不会替你做这件事——别偷懒了
  • 父骨骼是 NPC 脊椎2 [Spn2] 随附的牵引绳。这可以是链条骨骼的任意父级,甚至只是NPC
  • The 拴绳骨头配对 是 Leash1_1 用于所附的牵引绳。这是您牵引绳中骨骼(或通用名称)的前缀。
  • 选择一个最小距离,例如 ~200+别飞太低,不然会完蛋。
  • 持久 这意味着它会随你的存档一起保留。
  • 点击 牵引演员
  • 尽情享受吧

注意: 确保项圈/牵引绳已装备到角色身上,本模组不会自动装备它。

为了获得更有趣的体验,请进入 设置 并启用 NPC强制恢复. 一旦超过距离阈值,该角色将进入布娃娃状态。效果很好!

需求

  • 天际SE/AE(怀疑VR支持是否有效)
  • SKSE Mod菜单框架(可选,用于模组菜单)

已知问题 / 限制

  • 当被拴住的对象不在屏幕上时,拴绳将在视觉上消失。这是因为屏幕剔除导致的。可以修复,但我不确定是否值得——你说了算。 我。它仍然运作良好。
  • 演员可能会明显卡住。 
  • NPC传送功能尚未完全完善。我需要进一步研究引擎,寻找更安全的实现方式。
  • 碰撞并非完美无缺,以防勾住一切。因此,它仅与地面等材质的表面发生碰撞。
  • 牵引绳上的骨头越少,拉长距离时就越麻烦。
  • 演员偶尔会被卡在门等物体上
  • 部分锁链可能无法良好收敛(存在间隙)——请在SKSE模组菜单中增加求解迭代次数。

PAPYRUS API — 点击剧透以展开

剧透警告:  
显示

Scriptname LeashFramework Hidden

;/
由Leash.esm提供的主动束缚阵营:

* LeashedFaction(表单ID 0x000D6A):包含当前具有活跃牵制状态的演员。
* LeasherFaction(表单ID 0x000D6B):包含当前持有一条或多条活跃牵绳的角色。

拴绳生命周期模组事件:

* LeashFramework_OnLeash:当拴绳成功应用、替换或从存档中恢复时发送。
* LeashFramework_OnUnleash:当牵引绳断开、被UnleashAll移除或替换时发送。

两个生命周期事件均使用被拴住的Actor作为发送者,并将numArg设置为0.0。strArg描述了原因。
事件已发送。OnLeash使用“applied”、“replaced”或“loaded”。OnUnleash使用“disconnected”,
"unleashAll"或"replaced"。替换拴绳会在OnLeash之前发送OnUnleash。内部状态清理
启动或加载游戏时不会发送OnUnleash。

拉取模组事件:

* LeashFramework_OnActorPulled: 当正常直接移动牵引开始时发送一次。
* LeashFramework_OnActorRagdollPulled:当强制布娃娃拖拽开始时发送一次。

使用RegisterForModEvent注册这些事件。两个拉动事件均以被拴住的Actor作为发送方。
strArg为空,请在numArg中提供过渡处从持环器/锚环到颈圈的距离。拉力事件可以
仅在该拉取模式停止并重新启动后才会再次发送;拉取期间不会每帧发送。
保持激活状态。
/;

;/
将绳索从持有者的右手连接到另一个角色的绳索骨上。

持有者:握着牵引绳的角色。当前挂点骨骼为NPC右手[RHnd]。
被拴住的:穿戴牵绳网格的角色。一个角色只能有一条激活的牵绳。
parentBone:在搜索其后代之前,需要在被拴住角色上找到的精确节点名称。
leashBoneMatch: 在parentBone下方的每个有序leash骨骼名称中找到的文本。例如,
Main_ matches hdtSSEPhysics_AutoRename_Armor_00000004 Main_01 after SMP renames the node.
minLength:主动牵引停止的距离。必须为零或更大。
maxLength:持有者与项圈之间的最大距离。必须为正数,且不小于minLength。
持久性:若为真,则绳索会保存并恢复,直至明确断开连接。

对同一已拴系目标再次应用拴绳,将替换其当前的拴绳。
当参数有效且缰绳被接受时,返回true。
/;
Bool Function ApplyLeash(Actor holder, Actor leashed, String parentBone, String leashBoneMatch, Float minLength, Float maxLength, Bool persistent) Global Native

;/
将任意一只手上的牵引绳连接到另一个角色的牵引骨上,并应用握拳手势。

rightHand:若为true,使用NPC右手[RHnd]。若为false,使用NPC左手[LHnd]。
所有其他参数和替换行为均与ApplyLeash一致。

当参数有效且拴绳被接受时返回true。
/;
Bool Function ApplyLeashToHand(Actor holder, Actor leashed, String parentBone, String leashBoneMatch, Float minLength, Float maxLength, Bool persistent, Bool rightHand = True) Global Native

;/
将持有者上的精确骨骼连接到另一角色上的牵引绳骨骼。

holderBone: 持有者上的精确节点名称。此附加物不会改变持有者的手部姿势。
所有其他参数与替换行为均与ApplyLeash相同。

当参数有效且缰绳被接受时返回真。
/;
Bool Function ApplyLeashToBone(Actor holder, Actor leashed, String holderBone, String parentBone, String leashBoneMatch, Float minLength, Float maxLength, Bool persistent) Global Native

;/
将无主绳从固定位置连接到角色身上的绳索骨骼上。

anchorCell:包含世界空间位置的单元格。它必须与所提供的坐标对应。
x, y, z:皮绳锚点的固定世界空间坐标。
所有其他参数及替换行为均与ApplyLeash一致。
拉取距离以固定锚点而非持有者为基准测量。

世界位置牵引绳不会分配LeasherFaction,从GetLeashHolder获取不到任何结果,也不会
使用持有者传送恢复。使用 DisconnectLeash(None, leashed) 来断开一个。
当参数有效且牵引绳被接受时,返回true。
/;
Bool Function ApplyLeashAtPosition(Actor leashed, Cell anchorCell, Float x, Float y, Float z, String parentBone, String leashBoneMatch, Float minLength, Float maxLength, Bool persistent) Global Native

;/
断开与特定持有者和被拴住生物匹配的拴绳。

holder: 持有牵引绳的角色。若为无持有者的世界坐标牵引绳,则传入 None。
拴绳:佩戴拴绳网格的演员。

当匹配的皮带断开时返回true。
/;
Bool Function DisconnectLeash(Actor holder, Actor leashed) Global Native

;/
断开该Actor作为拴绳持有者或被拴绳者时的所有拴绳连接。

当至少有一个牵引绳断开时,返回真。
/;
Bool Function UnleashAll(Actor actor) Global Native

;/
当角色当前拥有活跃的束缚时返回真。
/;
Bool Function IsLeashed(Actor actor) Global Native

;/
当角色当前持有至少一条活动牵绳时返回真。
/;
Bool Function IsLeashHolder(Actor actor) Global Native

;/
返回持有拴绳者主动拴绳的角色;若无拴绳者或拴绳不存在,则返回None。
/;
演员函数 GetLeashHolder(Actor leashed) 全局原生

;/
返回所有当前束缚于持有者的行动者。若持有者无活跃束缚,则返回空数组。
/;
Actor[] Function GetLeashedActors(Actor holder) Global Native

;/
返回leashed的活动牵绳的最小长度;当leashed没有活动牵绳时返回-1.0。
/;
Float Function GetMinLeashLength(Actor leashed) Global Native

;/
返回被拴绳实体的主动拴绳最大长度;若没有主动拴绳,则返回-1.0。
/;
Float Function GetMaxLeashLength(Actor leashed) Global Native

;/
设置被拴住角色的活动拴绳的最小长度。

newLength 必须大于或等于零,且不能超过当前最大长度。
当leashed没有有效的缰绳或newLength无效时,返回false。
/;
Bool Function SetMinLeashLength(Actor leashed, Float newLength) Global Native

;/
设置拴绳生物的最大活动绳长。

newLength必须为正数,且不能小于当前最小长度。
当被拴住的实体没有有效拴绳或newLength无效时,返回false。
/;
Bool Function SetMaxLeashLength(Actor leashed, Float newLength) Global Native

请提供需要翻译的文本内容。
https://github.com/asdasdduck/Skyrim-Leash-Framework

制作人员名单:

  • @krzp 感谢绳索网格/纹理!
  • Commonlib SSE/VR
  • SKSE

上古卷轴5:天际 特别版 的热门 MOD

探索适用于 上古卷轴5:天际 特别版 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

2025-12-16 11:53:50

前置必备Mod

修改与Mod必备前置工具

ModOrganizerTeam2024-08-04 16:31:44

Mod Organizer(MO)是一个用于管理任意大小的Mod集合的工具。它是专门为那些喜欢尝试mods的人设计的,因此需要一种简单可靠的方法来安装和卸载它们。

天空用户界面

schlangster2017-10-04 05:03:26

界面优雅,对电脑友好,并具有许多高级功能。

非官方《上古卷轴5:天际》特别版补丁 - USSEP

Arthmoor2025-09-01 07:56:09

一款针对《上古卷轴V:天际特别版》的综合性错误修复模组。非官方天际特别版补丁(简称USSEP)的目标是最终修复《天际特别版》中所有尚未被官方修复的错误。

静态网格改进模组 - SMIM

Brumbek2018-07-05 02:28:26

这是一个旨在大幅提升《上古卷轴5:天际》中无数静态3D模型外观的大型项目。简而言之,我希望通过这个项目让天际的建筑、杂物、家具和景观更加美观。

SKSE插件的地址库

meh3212024-02-14 09:19:54

包含头文件和数据库,以便轻松实现 SKSE DLL 插件的版本独立性。

比赛菜单

expired69782024-01-27 03:38:17

角色创建菜单全面改版,新增多种自定义功能,例如多种RGBA战纹、身体彩绘、手部彩绘和脚部彩绘。(需要SKSE)

Fores Skyrim SE-FNIS SE中的新闲置

NexusModsCaretaker2020-02-19 01:47:03

Skyrim没有可能的自定义动画?错误的。FNIS行为允许添加不同类型的动画到游戏:闲置/姿势,顺序,家具,配对,杀戮,生物,等等。

使用 Xmod 解锁 上古卷轴5:天际 特别版 的全部潜力 — 今天就探索这些顶级 MOD!