欢迎光临散文网 会员登陆 & 注册

上古卷轴5 - 失衡篇(暂定)

2023-07-18 15:34 作者:超高校级の舞弊者  | 我要投稿

输出的失衡值大多数按三种方式:
1,武器重击(不包括盾牌猛击、不包括徒手)
输出的失衡值 = 武器的Stagger × 攻击动作的Stagger

2,法术、附魔(MagicEffect 是 Stagger 模型,无论是否勾选 Detrimental flag
输出的失衡值 = Spell 中效果的绝对值

3,盾击(包括盾牌猛击、不包括 能装备盾牌但无法持盾 的单位,如 寒霜元素 的盾击)
输出的失衡值 =  (50 + Block 格挡熟练度) × 0.01 × 盾击动作的Stagger

格挡熟练度 的计算无上下限(输出负数的失衡值 可以与 目标负数的Mass 负负得正)
这里可能有相关 Game Settings 参与,但我还没试出来。

如果是 武器重击 输出失衡值,且目标在做一些特殊动作(例如 平时站着偶尔摇晃一下身体的闲置动作),那么不会施加失衡值。

而 盾击 与 法术 输出的失衡值则没这个机制。

 武器重击盾击 输出的失衡值 仅可被 Perk 的切入点 Mod Target Stagger 影响;
 法术 输出的失衡值 仅可被 Perk 的切入点 Mod Spell Magnitude 影响;
目标 接受的任意失衡值 可被 Perk 的切入点 Mod Incoming Stagger 影响。

若目标已经处于失衡状态,期间免疫其它失衡效果(可以接受失衡debuff,但不会更新失衡值记录、不会重置失衡动作)。

==============================
每个单位都有 Mass 这项基础属性,输出的失衡值 会受到目标的 Mass 减免:

如果目标是玩家,则目标参与计算的 Mass * 2.5 ;


当以 重击法术 给予目标失衡时,输出的失衡值为 Mag 。
若目标 Mass 等于 0.0 时,Stagger = Mag ;
若目标 Mass 大于 2.1 时,Stagger = Mag / Mass - (Mass - 2.1) * 0.15 ;
其余情况下,Stagger = Mag / Mass ;


当以 盾击 给予目标失衡时,输出的失衡值为 Mag 。
若目标 Mass 等于 0.0 时 ,Stagger = 1.0 ;
否则,Stagger = Mag / Mass ;


最终,Stagger 的取值范围在 0.0 与 1.0 之间 (包括) 。
==============================

最后,会根据 Stagger 值,更新目标身上的失衡值记录(staggerMagnitude)、失衡方向(staggerDirection),并产生对应失衡动作与失衡持续时间。

根据 Stagger 值,
若为 0.0 ,则不更新目标身上的失衡值记录,不产生失衡动作。
若不为 0.0 ,则更新目标身上的失衡值记录,并根据它,产生失衡动作。

1, 重击盾击 造成失衡动作的持续时间,与 法术 造成失衡动作的持续时间,会有所不同( 法术 产生的持续时间更长)

2,对于人类目标而言,手持的是 空手 / 双手武器单手武器 / 法术 / 法杖 / 弓 / 弩 ,受到失衡动作的持续时间 会有所不同(目标手持 空手/双手武器 受到的持续时间更短)

3,不同生物的失衡动作不同、前倾后倾的方位所产生的失衡动作不同,因此所产生 失衡动作的持续时间 也会有所不同(如 猛犸巨象 的空手满额失衡时间约为 1.67 秒、巨人 的双手满额失衡时间约为 2.27秒 与 2.22 秒)

----------------------------------------

关于 失衡动作持续时间 (秒) ,由于不确定因素太多,
这里只提供人类NPC参考公式(精确到小数点后两位误差范围 0.02 秒)。

重击 盾击  >
 Stagger 区间            单/法/杖/弓/弩                            空/双
  (0.75 , 1.00]         Stagger * 4.00 - 1.00          Stagger * 2.68 - 0.04
  (0.50 , 0.75]         Stagger * 1.00 + 1.25         Stagger * 1.67 + 0.72
  (0.25 , 0.50]         Stagger * 1.00 + 1.25         Stagger * 1.17 + 0.95
  (0.00 , 0.25]         Stagger * 2.00 + 1.00         Stagger * 3.67 + 0.32

法术 >
 Stagger 区间            单/法/杖/弓/弩                            空/双
  (0.75 , 1.00]         Stagger * 2.65 + 0.50         Stagger * 2.68 - 0.02
  (0.50 , 0.75]         Stagger * 1.85 + 1.11         Stagger * 1.67 + 0.73
  (0.25 , 0.50]         Stagger * 1.85 + 1.13         Stagger * 1.17 + 0.97
  (0.00 , 0.25]         Stagger * 1.35 + 1.25         Stagger * 3.67 + 0.33


例如:

玩家以 钢制剑(Stagger:0.75),重击(Stagger:×1.0)一个目标,使其失衡。

目标是原版无mod的正常男性人类NPC,没有Perk,Mass为 1 ,手里是空手。

那么目标受到的 Stagger动作值 为 0.75,受到失衡持续时间约为 1.97 秒。

----------------------------------------

Game Settings:
fStaggerMassOffsetBase:2.1

fStaggerMassOffsetMult:0.15

fStaggerPlayerMassMult:2.5

==============================

特例:龙
龙 的动作文件好像没有 staggerMagnitude 这项属性。
在尝试获取 受到的动作值Stagger、受到Stagger的来自方向 这两项动作记录值时,返回值始终会是 0 。


龙 在计算受到 重击盾击法术 输出的失衡值与自身的 Mass 之后,
若 Stagger 大于 0 ,则直接产生最大的失衡动作(地面持续约 2.00 秒,空中持续约 1.35 秒)

除了龙起飞时的动作会免疫失衡,龙在地面上跟在天空飞行时,都可以被失衡影响。
龙在生命值低于 35% 时,会受到一次失衡,并且尝试着陆,在生命值不满阈值的情况下不会飞行。

==============================

弓弩:
每个单位都有 BowStaggerBonus 这项基础属性,默认为 0.0 。
当弓弩的箭矢命中目标时,会输出该数值的失衡值 (无论弓是否拉满) 。
这个属性不会影响法术的弹幕。

箭矢失衡计算 Mass 方式与 法术 相同。
箭矢失衡计算 失衡时间 与 武器重击 相同。

额外效果:弩矢 在命中敌人时,若目标在做部分特定的动作,则会输出对应的失衡值(如 巨人前进攻击 1.5 、巨人立定挥棒攻击 1.0 、巨人踩踏攻击 0.5 ,但不包括 巨人跑动、巨人左手轻挥攻击)。

==============================

测试脚本关键代码参考:ActiveMagicEffect

(akTarget as ObjectReference).GetAnimationVariableFloat("staggerMagnitude")

RegisterForAnimationEvent(akTarget as ObjectReference, "staggerStop")

GetTimeElapsed()




上古卷轴5 - 失衡篇(暂定)的评论 (共 条)

分享到微博请遵守国家法律