
马匹碰撞模组
原版马匹碰撞只会产生一声喊叫,没有其他效果。本模组为亨利骑马时与NPC发生碰撞增加了已有的动画和物理反应。
查看大图我一直觉得,骑马撞上NPC时毫无反应挺让人恼火的。我做这个模组,纯粹只是想从撞击中得到更多一点沉浸感(也想能把NPC撞开,别挡我的路)。
[ size=4 ][ b ]会发生什么[ /b ][ /size ] [ list ] [ * ][ b ]步行[ /b ](≥1.8 米/秒)——NPC 会踉跄一下,但还能站稳。不造成伤害,不消耗耐力。[ /* ] [ * ][ b ]小跑[ /b ](≥4.5 米/秒)——NPC 会被动画击倒,并由物理效果捕捉。撞村民消耗马匹 15 点耐力,撞穿盔甲的目标消耗 40 点。[ /* ] [ * ][ b ]疾驰[ /b ](≥8.5 米/秒)——NPC 会被物理效果抛飞。撞村民消耗 18 点耐力,撞穿盔甲的目标消耗 48 点。[ /* ] [ /list ] 每个反应都是游戏自身的动画之一,具体由你撞击的方向选择。只有疾驰时才使用物理效果。
[ size=4 ][ b ]伤害与犯罪[ /b ][ /size ] [ list ] [ * ]被撞倒在地会受伤,承受够多次就会死亡。这些伤害都不是由本模组造成的;游戏会根据撞击时的速度自行计算伤害。[ /* ] [ * ]疾驰造成的伤害远高于小跑,因为被抛飞的身体不仅会被撞击,还会被践踏。[ /* ] [ * ]将某人踩踏致死与任何其他罪行一样,守卫会前来追捕你。[ /* ] [ /list ]
[ size=4 ][ b ]护甲与耐力[ /b ][ /size ] [ list ] [ * ]目标所穿的护甲决定了撞击会让你马匹疲惫的程度,但并不会减少目标受到的伤害。[ /* ] [ * ]耐力在两次撞击之间的恢复速度比一次轻微碰撞的消耗要快,所以骑马穿过一群村民几乎是免费的。但穿着护甲的目标会让耐力恢复跟不上消耗。[ /* ] [ * ]战斗中所有消耗都会乘以 2.2 倍,这意味着大约撞击两次后,你的马就会因耐力耗尽而人立起来,把你甩下马背。[ /* ] [ * ]步行时的踉跄效果在战斗期间会被禁用,但击倒效果不会被禁用。[ /* ] [ /list ]
[ size=4 ][ b ]安装[ /b ][ /size ]
使用 Vortex,或将 zip 压缩包解压到 Kingdom Come - Deliverance\Mods\ 目录下。 升级:请删除旧版本,而不是直接覆盖安装。你修改过的设置会保留,而此版本不再识别的任何设置都会被忽略,并在 kcd.log 中注明,而不是导致任何问题。
[ size=4 ][ b ]兼容性[ /b ][ /size ] [ list ] [ * ]没有替换或重命名任何原生游戏文件,因此本模组可与其他修改人类动画的模组同时运行。[ /* ] [ * ]唯一可能的冲突是另一个模组将相同的 NPC 类别指向了不同的动画数据库。这种情况比较少见,而且两个此类模组可以协调工作。[ /* ] [ * ]不会改动其他任何内容,不涉及 AI 行为树、任务或 RPG 表格。[ /* ] [ /list ]
[ size=4 ][ b ]设置[ /b ][ /size ]
使用 7-Zip 或 WinRAR 打开 Mods\HorseCollisionMod\Data\HorseCollisionMod.pak(打开压缩包,不要解压),编辑其中的 Scripts\Startup\HorseCollisionMod_Settings.lua 文件,保存并让压缩包更新。 任何你遗漏或拼写错误的项目都会回退到默认值,而不会导致崩溃。 [ code ] 速度等级 SpeedWalk 1.8 米/秒。低于此速度不会发生任何事情。 SpeedTrot 4.5 米/秒。达到或超过此速度,则触发击倒而非踉跄。 SpeedGallop 8.5 米/秒。达到或超过此速度,击倒将使用全力。
接触判定 HorseFrontReach 1.05 马匹前方的距离(米)。 HorseHalfWidth 0.35 马匹侧面的距离(米)。如果 NPC 在你骑马经过时反应,可调低此值。 HorseRearReach 0.20 马匹后方的距离(米)。 HitCooldownMs 3000 一个踉跄的 NPC 能再次做出反应的间隔时间(毫秒)。 KnockdownRecoveryMs 6000 一个被击倒的 NPC 能再次做出反应的间隔时间(毫秒)。
力度 Knockback 50.0 水平击退力,仅限疾驰。 Uplift 30.0 垂直击飞力,仅限疾驰。
马匹耐力 StaminaDrainWalk 0.0 每撞击一个步行速度下的 NPC 消耗的耐力值。 StaminaDrainTrot 18.0 每撞击一个小跑速度下的 NPC 消耗的耐力值。调高会更早被甩下马。 StaminaDrainGallop 22.0 每撞击一个疾驰速度下的 NPC 消耗的耐力值。 CombatStaminaMultiplier 2.2 战斗中耐力消耗的倍率。设为 1.0 可禁用此效果。 ThrowRiderOnStaminaEmpty true 耐力耗尽时是否将骑手甩下马。
目标装备 ArmorReferenceWeight 8.0 不会改变任何效果的基准重量。村民大约为 5。 ArmorImpulseExponent 0.5 数值越高,护甲越能使目标更牢固地被撞倒。设为 0 可关闭此功能。 MinArmorImpulse 0.35 身着铠甲的骑士也不会完全无法被撞动。 MaxArmorImpulse 1.5 赤身裸体的农民也不会轻如无物。 ArmorStaminaExponent 0.4 数值越高,护甲越会消耗你的马匹耐力。设为 0 可关闭此功能。 MinArmorStamina 0.75 目标最低可消耗的耐力值。 MaxArmorStamina 3.0 目标最高可消耗的耐力值。
行为 TrotReaction fall "fall" 是游戏可自行恢复的动画摔倒, "knockdown" 增加了起身动画,"ragdoll" 是物理布娃娃效果。 ReplanAfterReaction true 受害者被撞击后是否回到他们原本在做的事情上。 ReleaseAnimationMovement true 防止做出反应的受害者被卡进墙壁或倾斜的地面。 SuppressStaggerInCombat true 是否在战斗期间跳过踉跄效果。 WalkStagger true 设为 false 可恢复步行速度下的原版(无反应)行为。 ProtectMutt true 你的狗是否免疫此效果。 SuppressAutoCureSec 30 受害者被重新检查以下豁免条件的频率(秒)。 AutoCureHealthLimit 40.0 当生命值高于此值时,上述豁免条件会被移除。
诊断 LogTelemetry true 模组是否将诊断信息写入 kcd.log。 DiagnoseMisses false 详细日志记录。仅在报告 Bug 时开启。[ /code ]
[ size=4 ][ b ]4.2.2 版本新增内容[ /b ][ /size ] [ list ] [ * ][ b ]小跑碰撞现在由游戏本身接管,而不是通过脚本控制起身。[ /b ] 受害者会倒下,游戏会像对待其他摔倒的人一样让他们站起来。旧的脚本恢复方式在播放动画时会转动身体,这就是为什么靠着墙的人可能会站起来时面朝墙壁。将 TrotReaction 设置为 "knockdown" 可以恢复以前的行为。[ /* ] [ * ][ b ]NPC 被撞击后会回到他们原本在做的事情上。[ /b ] 商人会回到他的摊位,喝酒的人会重新靠回墙上,乞丐会继续乞讨或另寻他处,被撞下长凳的人会重新坐下。[ /* ] [ * ][ b ]受害者不再会在摔倒的地方僵住不动。[ /b ] 之前他们会一动不动地站着,直到某些东西重新加载他们,这在实际游玩中意味着你需要移开视线再转回来,而且看起来像是传送了一样。[ /* ] [ /list ]
[ size=4 ][ b ]4.0.0 版本新增内容[ /b ][ /size ] [ list ] [ * ][ b ]读档后碰撞不再失效。[ /b ] 每次撞击后,每个受害者都会被短暂标记,以防止一次穿过人群时每帧都触发相同的反应,而这个等待时间是基于一个读档会重置的时钟。读取较早的存档会导致所有你之前撞过的 NPC 都要等待相当于时间回退的长度,期间无论你撞他们多少次都不会有任何反应。此问题影响了之前的所有版本。[ /* ] [ * ][ b ]踉跄和摔倒的 NPC 不会卡进墙壁或地面。[ /b ] 在建筑物旁触发的反应动画可能会把受害者带进墙里、穿过墙壁,或者让他们站在墙内;在坡地上触发的动画则会在上坡时把他们埋进地里,下坡时让他们悬在空中。[ /* ] [ * ][ b ]小跑碰撞现在用动画将受害者击倒,而不是使用布娃娃物理。[ /b ] 他们摔倒并起身是一个连续的动作,你的马也不再会碾过刚刚撞倒的身体,这原来是小跑速度下大部分伤害的来源。疾驰仍然使用布娃娃物理,因为全速奔马理应把身体抛飞。将 TrotReaction 设置为 "ragdoll" 可以恢复旧行为。[ /* ] [ * ][ b ]护甲现在决定击退效果和耐力消耗。[ /b ] 数据直接读取游戏自身的物品表格。[ /* ] [ * ][ b ]NPC 被撞倒后不再站在街上播放受伤动画。[ /b ] 一个生命值被撞到 40 以下且正在流血的受害者,会被游戏自身的“自动治疗”行为接管,这会让他们固定在原地,同时以慢到难以察觉的速度治疗他们。如果存档中已经存在卡住的 NPC,下次你撞到他们时,他们就会被释放,因此旧存档可以自我修复。[ /* ] [ * ][ b ]耐力消耗已重新调整。[ /b ] 骑马穿过普通行人几乎不消耗耐力;战斗中大约在撞到两次后就会达到极限。[ /* ] [ * ][ b ]女性和动物。[ /b ] 女性 NPC 现在可以正确踉跄,狗也不再被赋予它们无法播放的人类击倒动画。[ /* ] [ /list ]
[ size=4 ][ b ]已知问题[ /b ][ /size ] [ list ] [ * ]手里拿着篮子或水桶的 NPC 在步行和小跑踉跄时仍会抓着它们,并且他们的手臂会穿过物体。这是因为该动画是基于空手状态制作的。[ /* ] [ * ]当有人在疾驰中被击倒时,他们携带的物品会掉落。[ /* ] [ * ]迎面骑马撞上某人,感觉上可能会像与他纠缠在一起。这是原版行为,此模组目前不会改变这一点。[ /* ] [ * ]任务和脚本化遭遇完全未经测试。本模组不触碰任务逻辑,但如果脚本场景中看起来有问题,这是一个合理的怀疑对象。[ /* ] [ /list ]
[ size=4 ][ b ]计划[ /b ][ /size ] 不是承诺,只是下一步正在开发的内容。 [ list ] [ * ][ b ]动量[ /b ] - 一个沉重的目标会削减你马匹的速度,而不仅仅是耐力。[ /* ] [ * ][ b ]RPG 系统[ /b ] - 持续超过撞击瞬间的伤害;骑术降低耐力消耗和被甩下马的几率;马甲增加撞击力;架起的长柄武器可以完全挡停冲锋。[ /* ] [ * ][ b ]犯罪[ /b ] - 严重程度随速度变化,目击者和地点决定是否产生后果,非致命事件会损害声望(目前此类事件不会有任何代价)。[ /* ] [ * ][ b ]AI[ /b ] - 士气冲击,使轻甲敌人有一次冲锋穿过其战线后崩溃逃跑。[ /* ] [ * ][ b ]其他[ /b ] - 对动物的反应,以及 NPC 在踉跄前会丢下携带的物品,而不是紧抓不放。[ /* ] [ /list ]
[ size=4 ][ b ]源代码[ /b ][ /size ] 采用 MIT 许可。源代码、技术说明和完整开发日志请访问 [ url=https://github.com/jrandall54/kcd-HorseCollisionMod ]github.com/jrandall54/kcd-HorseCollisionMod[ /url ]
显示 1-6 条,共 6 条
以上为资源接口提供的文件记录。安装时请在客户端确认文件、游戏版本及依赖。
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。