赛马娘游戏内相关数值及技能整理

得意率部分

得意率の計算式＠ウマ娘 - マイセンのブログ

总结下是原作者认为每个概率应为 18%，固定 10% 缺席。后续纠正为 1/11 概率不出现，其余均分，另外固有计算方式不是直接加 20 得意率。

训练数值计算

参考资料：Google Doc

公式如下：

Copy
ステータス上昇値＝（①上昇基礎値）×（②育成ウマ娘成長補正）×（③友情ボーナス補正）×（④やる気効果補正）×（⑤トレーニング効果補正）×（⑥人数補正）

不过在 Grand Master 育成中验证发现如果当前没有支援卡的情况下基础成长率可能会受到惩罚，因为实际数值要比公式计算结果要低，这里预测是成长率减半，例如 20% 变为 10%。

除此之外基础属性还有 100 作为上限，大师杯剧本加成的内容会显示在基本数值上方，关于这类数据的加成是否符合上述公式还需要验证，至少目前看来两者是分开计算的。

大师杯基础训练数值

训练等级不影响 pt 获取，影响对应训练数值及消耗体力数量

具体数值数据

智力和力量训练是验证过的，其他训练只验证了一级是正确的，其他训练数据是根据力量训练的规律推算的。据说红女神爆发对应的是训练等级 6，可以按照相同规律得到 6 的数值（等级 6 未进行测试验证）。

Copy
speed_train:
level1:
speed: 10
power: 3
skill_point: 5
vital: -19
level2:
speed: 11
power: 3
skill_point: 5
vital: -20
level3:
speed: 12
power: 3
skill_point: 5
vital: -21
level4:
speed: 13
power: 4
skill_point: 5
vital: -23
level5:
speed: 14
power: 5
skill_point: 5
vital: -25
stamina_train:
level1:
stamina: 8
guts: 6
skill_point: 5
vital: -20
level2:
stamina: 9
guts: 6
skill_point: 5
vital: -21
level3:
stamina: 10
guts: 6
skill_point: 5
vital: -22
level4:
stamina: 11
guts: 7
skill_point: 5
vital: -24
level5:
stamina: 12
guts: 8
skill_point: 5
vital: -26
power_trian:
level1:
power: 9
stamina: 4
skill_point: 5
vital: -20
level2:
power: 10
stamina: 4
skill_point: 5
vital: -21
level3:
power: 11
stamina: 4
skill_point: 5
vital: -22
level4:
power: 12
stamina: 5
skill_point: 5
vital: -24
level5:
power: 13
stamina: 6
skill_point: 5
vital: -26
guts_train:
level1:
guts: 9
speed: 2
power: 3
sill_point: 5
vital: -20
level2:
guts: 10
speed: 2
power: 3
sill_point: 5
vital: -21
level3:
guts: 11
speed: 2
power: 3
sill_point: 5
vital: -22
level4:
guts: 12
speed: 3
power: 4
sill_point: 5
vital: -24
level5:
guts: 13
speed: 4
power: 5
sill_point: 5
vital: -26
wiz_train:
level1:
wiz: 8
speed: 2
skill_point: 5
vital: 5
level2:
wiz: 9
speed: 2
skill_point: 5
vital: 5
level3:
wiz: 10
speed: 2
skill_point: 5
vital: 5
level4:
wiz: 11
speed: 3
skill_point: 5
vital: 5
level5:
wiz: 12
speed: 4
skill_point: 5
vital: 5

失败率计算

根据获取的失败率拟合，有以下几种猜测：

可能是一个 sigmoid 然后对小于 10 体力的情况额外失败率加算

可能是一个贝塞尔曲线拟合

玩了会 ChatGPT 又找到了几个曲线用于拟和，发现高斯函数的效果非常好，并且高斯函数控制图形也更直观

Copy f(x)=a e−(x−b)22 c 2 f(x)=ae^{-\frac{(x-b)^2}{2c^2}}f(x)=ae−2c2(x−b)2​

失败率统计数据

记录数据为体力，第一列是速、耐、力、根、智的失败率，第二列是对应的训练等级

Copy
57
-

49
6 5
5 5
6 5
8 5
0 5
44
12 1
10 1
13 4
13 1
0 2
41
17 2
15 2
18 5
19 2
0 3
40
18 1
17 1
20 4
20 1
0 1
37
24 1
22 1
25 3
26 1
0 1
36
26 1
24 1
28 5
28 1
0 2
32
34 1
32 1
34 2
37 1
0 1
31
39 5
37 5
39 5
42 5
3 5
31
37 1
34 1
38 4
39 1
2 1
30
39 1
37 1
39 2
41 1
5 1
30
39 1
37 1
40 4
41 1
4 1
26
49 1
46 1
51 5
51 1
12 2
21
62 1
59 1
64 5
64 1
22 2
19
67 1
65 1
68 3
70 1
27 1
16
76 1
73 1
79 5
79 1
34 2
15
79 1
76 1
80 3
82 1
37 1
10
95 1
92 1
96 3
98 1
50 1
5
99 5
99 5
99 5
99 5
66 5
0
-
81 2

技能相关

通过查看数据库可以发现以下比较有用的字段，这里先简要列下关键字段，标红色的字段会在下面的章节展开说明。

字段 | 用途 | 备注
id | 表 id | 可以通过 id 到 text 表查名字，id 对应 text 表的 index 列

rarity

技能稀有度

1：绿技能或普通技能
2：金色绿技能或金色普通技
3：1/2 星马固有 例如：波乱注意砲！
4：1/2 星马升级 3 星后新的固有 例如：不沈艦、抜錨ォッ！
5：3 星马固有 例如：究極テイオーステップ
6：对应 2 周年加入的进化技能

grade_value | 技能对应的评分点数 |
precondition_x | 前置条件 | _x 代表有多个，比如 precondition_1,precondition_2, 其他同理
condition_x | 触发条件 |
float_ability_time_x | 技能时间 | 时间相关数值除以 10000 换算为秒

float_cooldown_time_x

冷却时间

绝大部分都是 500s，但也有有少部分技能是 30s
例如：コーナー巧者○

ability_type_x_x | 技能类型 | 例如：速度提升、加速度、体力回复等
ability_value_usage_x_x | 技能数值换算方式 | 比如有些技能会根据技能发动数量影响数值

float_ability_value_x_x

技能数值

速度：1500 就是 0.15m/s
加速度：4000 就是 0.4m/s^2
体力回复：550 就是 5.5%

target_type_x_x | 目标类型 | 闸技能选定目标相关
target_value_x_x | 目标数值 | 和选定目标相关的数值
pupularity_add_param_x | | 根据名字猜测是用于几番人气的计算
activate_lot | 技能是否必定发动 | 1：表示需要根据智力来决定发动概率 0：表示满足条件必定发动

技能触发条件

与 precondition_x 和 condition_x 有关。这里只是简单罗列些常见的，需要更完整的数据可以到GameTora上查阅。

条件里的内容示例如下：

Copy
distance_type==4&phase_random==1&bashin_diff_behind>=1&order==1

结构就是这样的表达式&表示与@表示或

关键字 | 描述 | 备注
distance_type | 赛道距离信息 | [1,4] 代表短距离到长距离
ground_type | 场地信息 | [1,2] 代表草地和泥地
running_style | 跑法 | [1,4] 逃、先、差、追
phase | 比赛阶段 | [0,3] 对应序盘、中盘、终盘前半、终盘后半
phase_random | 在对应比赛阶段的随机位置 | phase_random==1 就是在中盘随机位置发动，这个随机是事先 roll，之后到对应位置判断是否满足条件发动
phase_laterhalf_random | 在对应比赛阶段后半的随机位置 |
phase_firsthalf_random | 对应前半 |
order_rate | 比赛排名要求 | 数值是比例，65 就是 65%，计算结果向上取整
order | 比赛排名要求 | 这个就是具体数值了
corner | 表示弯道还是直线 | 1：弯道 0：直线
is_final_corner | 终弯及之后的终直 |
bashin_diff_behind | 与后面马的马身差距 |
bashin_diff_infront | 与前面马的马身差距 |
distance_diff_top | 距离头马的马身距离 |
change_order_onetime | 是否有改变顺位 | <0 表示向前变化，>0 表示向后变化
change_order_up_end_after | 发生顺位变化次数 |
is_overtake | 是否有超车目标 | 比如你当前速度比前面的马快，这个时候你会把前边的马当做要超越的目标，不需要实际顺位变化
distance_rate | 跑动距离比例 |
remain_distance | 剩余赛道距离 |
blocked_side_continuetime | 被马阻挡的时间 |
compete_fight_count | 触发追比 | >0 表示触发追比
temptation_count | 触发焦躁 | 有些技能会有不能触发焦躁的要求
is_lastspurt | 是否是最终冲刺 | 如果耐力达标的话，会在进入终盘开始冲制，耐力不达标会延后冲刺时间
activate_count_middle | 在中盘释放过的技能数量 | 例如翘尾巴有技能释放数量要求
near_count | 附近马娘数量 |
is_surrounded | 被包围 |
is_last_straight_onetime | 进入最终直线时 |
down_slope_random | 下坡随机位置 |
up_slope_random | 上坡随机位置 |
hp_per | 剩余体力要求 |
infront_near_lane_time | 前方附近车道马娘持续时间 |
behind_near_lane_time | 后方附近车道马娘持续时间 |
accumulatetime | 累计未发动技能时间 |
lane_type | 内外道 | 0：内道 1：外道
season | 季节 | [1,4] 春夏秋冬 5：春（桜）
rotation | 左右方向的赛道 | 1：右 2：左
track_id | 赛马场地点限定 | 这个看技能描述就可以了解
post_number | 开始时所在的车道 |
corner_random | 弯道随机 |
straight_random | 直线随机 |
ground_condition | 马场状态 | [1,4] 良、不良、稍重、重
is_basis_distance | 赛道距离是否被 400 整除 | 1：根幹距離○ 0：非根幹距離○
weather | 天气 | [1,4] 晴、云、雨、雪
random_lot | 固定发动概率 |

技能类型

ability_type_x_x 和 ability_value_usage_x_x

ability_type | enum | 描述
1 | Speed | 速度基础属性
2 | Stamina | 耐力基础属性
3 | Power | 力量基础属性
4 | Guts | 根性基础属性
5 | Wiz | 智力基础属性
6 | RunningStyleExOonige | 大逃
7 | HpDecRate | 体力下降（未发现技能使用）
8 | VisibleDistance | 视野
9 | HpRate | 体力恢复
10 | StartDash | 出闸时间
11 | ForceOvertakeIn | （未发现技能使用）
12 | ForceOvertakeOut | （未发现技能使用）
13 | TemptationEndTime | 延长焦躁时间
21 | CurrentSpeed | 当前速度

22

CurrentSpeedWithNaturalDeceleration

解包哥 twitter 内容作为参考：
1. 持続時間中、速度に直接加算します。
（ここまでは 21 番 CurrentSpeed、つまりデバフの方とは同じ処理です。）
2. 持続時間が終了すると、一度だけスキル効果量の分、現在速度を上げます。
再结合名字区别可以做更自然的推断：CurrentSpeed 之前主要是减速技能在用，对于这些技能应用减速时，都是直接进行加减不存在加速及减速过程，而该字段的意思是技能结束后不是直接突变的方式把速度减掉，而是从当前速度进行自然状态的降速来回到目标速度。

27 | TargetSpeed | 目标速度
28 | LaneMoveSpeed | 变道速度
29 | TemptationPer | 提升焦躁概率
30 | PushPer | （未发现技能使用）
31 | Accel | 加速度
35 | TargetLane | 目标车道
36 | ActivateRandomNormalAndRareSkill | （未发现技能使用）
37 | ActivateRandomRareSkill | 随机触发金技能（水船的固有）
50x | ChallengeMatchBonusXXX | 应该是育成继承活动使用

以下描述为通过已有技能和能找到的数值信息分析

ability_value_usage | enum | 描述
1 | Direct | 直接使用，就比如速度提升 0.15m/s 就直接是这个值
2 | MultiplySkillNum | 每有一个技能提升 1% 最大提升 20%

3

MultiplyTeamTotalSpeed

队友属性和，受心情影响，分为 5 个档位（按照普通）：
每个档位提升 12.5%, 最大 50%
1:<1200 100%
2:<1800 112.5%
3:<2600 125%
4:<3600 137.5%
5:≥3600 150%

4 | MultiplyTeamTotalStamina | 同速度
5 | MultiplyTeamTotalPower | 同速度
6 | MultiplyTeamTotalGuts | 同速度
7 | MultiplyTeamTotalWiz | 同速度
8 | MultiplyRandom1 | （未发现技能使用）
9 | MultiplyRandom2 | （未发现技能使用）

10

MultiplySingleModeWinCount

根据胜场决定倍率：
[0,6) 0.8
[6,14) 0.9
[14,18) 1
[18,25) 1.1
[25,∞) 1.2

12

MultiplyFanCount

根据 fans 数决定倍率：
[0,20k) 0.8
[20k,50k) 0.9
[50k,100k) 1
[100k,160k) 1.1
[160k,∞) 1.2

13 | MultiplyMaximumRawStatus |

14

MultiplyActivateSpecificTagSkillCount

根据发动绿技能数量决定倍率：
[0,2] 0
[3,4] 1
[5] 2
[6] 3

15 | MultiplyActivateHealSkillCount | （未发现技能使用）
16 | MultiplyFinalCornerEndOrder | （未发现技能使用）
17 | MultiplyInvTeamMemberCount | （未发现技能使用）
18 | MultiplyBaseWiz | （未发现技能使用）

19

AddDistanceDiffTop

和头马的距离影响 （CB 固有中长距离）
CB 固有的说法是大于 8 马身 + 0.1m/s, 可以先作为参考

20

MultiplyBlockedSideMaxContinueTimePhaseMiddleRun1

换皮樱花进王的固有，根据中盘竞争（BlockSide）的时间计算倍率。以下技能相关信息推测：
技能使用的系数数据结构包含一个 Threshold 和一个 Multiply，并且是一个数组保存。将对应数组打印出来是如下内容：
Threshold: 2 Multiply: 1
Threshold: 4 Multiply: 2
Threshold: 6 Multiply: 3
Threshold: 999 Multiply: 4
可以简单认为 < Threshold 会使用对应配置的倍率，也就是中盘竞争 6s 可以吃到 4 倍加成

21 | MultiplyBlockedSideMaxContinueTimePhaseMiddleRun2 | Threshold: 4, Multiply: 2.000000

目标类型

target_type_x_x 与 target_value_x_x解析

target_type | enum | 描述
1 | Self | 对自身使用（大部分技能目标都是这个）
2 | All | 对全体使用（未发现使用该类型技能）
3 | AllOtherSelf | 除了自己外全体使用（未发现使用该类型技能）

4

Visible

对视野可见范围内使用（例如：八方にらみ）
（数值为目标最大数量）

5 | RandomOtherSelf | （未发现使用该类型技能）
6 | Order | （未发现使用该类型技能）
7 | OrderInfront | （未发现使用该类型技能）
8 | OrderBehind | （未发现使用该类型技能）
9 | SelfInfront | 对前方所有马（数值为目标最大数量）
10 | SelfBehind | 对后方所有马（数值为目标最大数量）
11 | TeamMember | （未发现使用该类型技能）
12 | Near | （未发现使用该类型技能）
13 | SelfAndBlockFront | （未发现使用该类型技能）
14 | BlockSide | （未发现使用该类型技能）
15 | NearInfront | （未发现使用该类型技能）
16 | NearBehind | （未发现使用该类型技能）
17 | RunningStyle | （未发现使用该类型技能）
18 | RunningStyleOtherSelf | 针对跑法设定目标（数值 [1,4] 对应逃 - 追）
19 | SelfInfrontTemptation | 前方焦躁（数值为最大目标数量）
20 | SelfBehindTemptation | 后方焦躁（数值为最大目标数量）
21 | RunningStyleTemptationOtherSelf | 跑法焦躁（数值 [1,4] 对应逃 - 追）
22 | CharaId | 对应角色存在
23 | ActivateHealSkill | 触发体力恢复的角色（数值为最大目标数量）