东方归言录杂谈:深挖灵力回收机制

似乎研究这个的玩家很少,外网上搜了很久也只在油管上找到一个视频(youtube.com/watch?v=clQ7m76u5io)。这个up用妖梦的二符解释了灵力回收与伤害无关,与打中的敌人数量成正比,与命中的子弹数成正比(每个0.03)。
不过这个视频讲的比较粗糙,因为也不是这个视频的主要目的,他是为了说明灵力上升和灵力回收效率的绘卷哪个好。他只用了一个对群符卡,而显然扩散射击/集中射击/符卡、对单/对群的回收效率是不同的。因此我就自己做了很多实验来剖析这个机制。
首先通过简单的实验可以排除一些无关的因素:
1. 关卡难度
2. 敌人类型:小怪/boss
3. 敌人状态:被本次攻击击破与否,是否破盾
4. 角色状态:角色等级、觉醒与否
5. 攻击伤害
- 而且上面说的up也验证过了

6. 暴击与否
- 这个不是很显然,但实验下来确实暴击不会提供更高的回灵

其次有这些因素明显有关联:
1. 是否命中
- 这个可以拿妖梦集中射击做实验,因为只有一发子弹。发现命中就能回灵力,没命中就是0。所以确实是每发子弹独立取样的,没命中的子弹不会回复任何灵力。因此所有的实验中都要确保命中率达到100%,可以通过带一个纳兹铃放二技能。
2. 射击类型:扩散/集中/符卡,对单/对群
- 这个平时可以明显感觉到扩散射击回复灵力比集中射击和符卡都要快,至于量化请看下文。
3. 命中子弹数
- 也就是说在同一组射击中,每发子弹的(平均)回灵都是一样的。下图为泳紫和铃仙二号的扩散射击(均为单体)的数据:

4. 命中敌人数
- 对群射击中,回收灵力和命中的敌人成正比。下图为A魔理沙分别对一个敌人与三个敌人的数据:

所以每枚子弹每命中一个敌人,将会为角色回复一定的灵力(均值为X)。
下文就是要找出这个X和哪些东西有关。
原本我设想的是这个X只和射击类型有关(即与角色无关)。但很快就被自己打脸了,因为出现了下面几个反例:
1. 同为对单的扩散射击,且0p同为6枚子弹的情况下,雷鼓回复灵力0.855,而灵梦回复灵力0.711。有明显差异。

2. 同为对群的扩散射击,寅丸星0p12枚子弹回复灵力0.922,而妖梦0p只有6枚子弹却回复灵力0.945。居然差不多。

因此结论还是对每个角色的每种射击,这个X都不同。
在我苦苦思考实验这个X到底与什么有关的时候,我想起来了很久以前解包游戏的数据,在ShotMaster(存放射击的参数)和SpellCardMaster(存放符卡的参数)中找到了这么一列:


破案了,这个phantasm_power_up_rate以前我以为是角色在ph擂台的伤害增幅(关键这名字取得。。),现在结合上面的实验惊人的发现这个值就是“X”,或者准确的说是500X。
比如灵梦的扩散射击,0p共6枚子弹击中一名敌人,总回灵量0.711,每个子弹回灵0.1185≈60/500=0.12
比如妖梦的扩散射击,0p共6枚子弹击中三名敌人,总回灵量0.945,每个子弹回灵0.0525≈27/500=0.054
比如妖梦的二符,之前说的up验证了它的X为0.03,也跟这里的15/500=0.03吻合
另外这个值放在ShotMaster和SpellCardMaster中而不是BulletMaster(存放每一种子弹的参数)中,也侧面印证了同一组射击中每发子弹的(平均)回灵量都是相同的。
综上所述,每个角色的每种射击的平均灵力回收量为:
(phantasm_power_up_rate/500) * bullet * enemy
其中“bullet”为命中子弹数,“enemy”为命中敌人数。而这个“phantasm_power_up_rate”是游戏的一种隐藏参数,和弹幕补正类似,而且每个射击或符卡都有一个单独的这个值。
举个栗子,L1魔理沙的扩散射击的ph值为59,而使用2个灵力进行强化时共有12枚子弹(初始6枚,1p追加2枚,2p追加4枚)。那么2p的期望回灵就是(59/500)*12=1.416,当然那是在假设全部命中的情况下。通俗地说就是用掉2p就可以回复1.4p。
最后,每一枚子弹回复的灵力是随机的,目前只能知道phantasm_power_up_rate是这个随机分布里面的重要参数,至于究竟具体是什么样的模型还需要更多的实验(或者直接反汇编)。反正根据中心极限定理,子弹足够多的时候就可以看作以它为均值的正态分布就是了-_-#。