Race Mechanics
Majority of the information we know about racing logic comes from reverse engineering done by @umamusu_reveng, who has stopped their activity, @kak_eng and @hoffe_33. None of the information here is guaranteed to be correct, though most has been verified by in-game observation.
The developers have stopped including new race mechanics in the client application. So most new mechanics after the 1st anniversary described are speculations based on the game's parameter file, packet captures of the race replay data, and manual testing. Skill related information is still accurate to my knowledge.
Ground type proficiency modifier
CurrentSpeedWithNaturalDeceleration (22)
order_rate, order_rate_inXX_continue
behind_near_lane_time, infront_near_lane_time
Value Scaling, Ability Value Usage
MultiplyActivateSpecificTagSkillCount (14)
MultiplyBlockedSideMaxContinueTimePhaseMiddleRun (20, 21)
MultiplyArcGlobalPotentialLevel (24)
Duration Scaling, Ability Time Usage
MultiplyBlockedSideMaxContinueTimePhaseMiddleRun (5, 6)
AdditionalActivateActivateAnySkill (2, 3)
Extra Move Lane (Final Corner Lane)
Conserve Power / Release 足を貯める / 脚色十分
Course Distance to World Transform
The races are simulated at 0.0666s per tick (about 15 frames per second).
For the purpose of replay, the game records uma’s position each frame within 1 second of race start, or when a uma is within 25m before goal. Otherwise positions are recorded at 1 second intervals.
(There used to be a visual bug where the winner seemed to lose in replay due to low accuracy recording. The 25m before goal part was introduced then as a fix.)
A race course is divided into 24 sections of equal distance. Sections are numbered from 1 to 24.
A race is divided into 4 phases. Phases affect a uma’s behavior and target speed. Some skills only activate in a certain phase. Phases are numbered from 0 to 3.
During a race, the progress bar at top of the screen has a tick between opening leg and middle leg, and another tick between middle leg and final leg. During the last spurt, the UI fades away.
Bashin (horse length) is a unit of distance.
Each stat is clamped between 1 and 2000.
Raw stats are the stats shown in the stat panel.
Raw stats past 1200 are halved before being converted to base stats.
Base stats are raw stats modified by motivation. This number is used sometimes instead of the final stat, most notably by skill activation chance.
Base stat is clamped between 1 and 2000.
絶好調 | 好調 | 普通 | 不調 | 絶不調 |
1.04 | 1.02 | 1.0 | 0.98 | 0.96 |
Each adjusted stat is clamped between 1 and 2000.
Ground modifier for speed
良 | 稍重 | 重 | 不良 | |
Turf | 0 | 0 | 0 | -50 |
Dirt | 0 | 0 | 0 | -50 |
Ground modifier for power
良 | 稍重 | 重 | 不良 | |
Turf | 0 | -50 | -50 | -50 |
Dirt | -100 | -50 | -100 | -100 |
S | A | B | C | D | E | F | G |
1.1 | 1.0 | 0.85 | 0.75 | 0.6 | 0.4 | 0.2 | 0.1 |
Some race courses have 1-2 stats as threshold stats. Having base stat that exceeds threshold provides a bonus to adjusted speed.
The final modifier is the average of modifiers for all threshold stats. Therefore the maximum bonus achievable is +0.2x.
In single mode (a.k.a. training), all uma gain 400 adjusted stats.
Target speed is the speed a uma will trend towards. When below the target speed, a uma will accelerate. When above the target speed, a uma will decelerate. Target speed cannot go below minimum speed or exceed 30 m/s.
Position keeping coefficient is covered in its own section.
Force-in modifier is applied in the opening leg when an uma is more than 0.12 course width away from the inner fence and inside is open. The random number is rolled once at race start.
Strategy modifier is
Move lane modifier is applied when an uma is affected by a skill that modifies lane move speed, and has performed lane movement in the previous frame.
Slope modifier is applied when a uma is running on uphill or downhill, see Course Events.
When running uphill, a uma loses target speed equal to . When running downhill, there is a chance of per second to enter downhill accel mode that increases target speed by and reduces HP consumption by 60%. Each second the downhill accel mode ends with a chance of 20% per second.
A race’s base speed is determined by race course distance.
Examples:
The formula for base target speed varies depending on phase.
During opening leg and middle leg,
Worth noting that target speed is NOT affected by speed stat in opening leg and middle leg.
During final leg and last spurt,
Strategy | Opening Leg | Middle Leg | Final Leg & Last Spurt |
Runner | 1.0 | 0.98 | 0.962 |
Leader | 0.978 | 0.991 | 0.975 |
Betweener | 0.938 | 0.998 | 0.994 |
Chaser | 0.931 | 1.0 | 1.0 |
Oonige | 1.063 | 0.962 | 0.95 |
S | A | B | C | D | E | F | G |
1.05 | 1.0 | 0.9 | 0.8 | 0.6 | 0.4 | 0.2 | 0.1 |
At each section, race base speed multiplied by a random number is added to target speed. The random number is affected by wisdom stat. This randomness does not affect the last spurt calculation.
Examples:
Last spurt distance and target speed are calculated at the beginning of the final leg (without randomness per section). The concept of last spurt is not to be confused with the last spurt phase.
Upon entering the final leg, if the uma has enough HP to run the remaining distance at max target speed, she will immediately start the last spurt using the max target speed.
If HP is insufficient, a list of last spurt speed and distance candidates are calculated by lowering the target speed by 0.1m/s each step, till the last spurt speed reaches base target speed of the final leg. Then candidates are sorted by the time it would take to finish the race (sum of respective distance divided by speed, ignoring acceleration). Going from best to worst time, each candidate has a chance of chance to be accepted. If all candidates are exhausted without passing the wisdom check, the slowest candidate is chosen.
Last spurt calculation estimates the stamina usage up to 60m before the goal line. The calculation does not take into account the time it takes to accelerate to target speed. If an HP recovery skill activates after entering the final leg, the last spurt speed and distance are re-calculated. Debuffs on the other hand do not trigger a re-calculation.
The speed at race start is 3m/s.
A uma’s minimum speed is affected by her guts.
Minimum speed is the target speed when a uma is out of HP.
Minimum speed comes into effect after the start dash. After each frame’s acceleration calculation, if a uma has less than minimum speed, her speed is instantly raised to match the minimum speed.
When blocked, a uma’s speed is capped between 0.988x(at 0m) to 1.0x(at 2m) of the speed of the uma in front, scaled linearly to the distance in between.
Speed debuffs affect actual speed (or distance covered, in a sense) after all other calculations. The change in speed is instant with no need for acceleration / deceleration.
Normally, .
When running uphill, instead.
Strategy | Opening Leg | Middle Leg | Final Leg & Last Spurt |
Runner | 1.0 | 1.0 | 0.996 |
Leader | 0.985 | 1.0 | 0.996 |
Betweener | 0.975 | 1.0 | 1.0 |
Chaser | 0.945 | 1.0 | 0.997 |
Oonige | 1.17 | 0.94 | 0.956 |
S | A | B | C | D | E | F | G |
1.05 | 1.0 | 0.9 | 0.8 | 0.7 | 0.5 | 0.3 | 0.1 |
S | A | B | C | D | E | F | G |
1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.6 | 0.5 | 0.4 |
During a start dash, an uma gains additional acceleration. Start dash ends when her speed reaches .
There used to be a bug related to this acceleration. As a fix, speed is capped at until the start dash modifier is removed, so that the extra acceleration cannot be carried over the threshold.
After the end of a start dash, a uma is usually unable to accelerate to minimum speed within 1 frame. As a result her speed would be raised to minimum speed.
Deceleration is determined by phase
Stamina is converted to HP at the start of a race.
Runner | Leader | Betweener | Chaser | Oonige |
0.95 | 0.89 | 1.0 | 0.995 | 0.86 |
HP is consumed each second
Status modifier is as follows (multiplicative):
Ground modifier is affected by the track condition.
良 | 稍重 | 重 | 不良 | |
Turf | 1 | 1 | 1.02 | 1.02 |
Dirt | 1 | 1 | 1.01 | 1.02 |
In the final leg and last spurt, HP consumption is multiplied by guts modifier.
Examples:
HP can be recovered by skills. All skills that restore HP instantly restore a percentage of max HP. HP that goes over the max is wasted. All skills that restore HP functions identically outside their trigger condition and amount.
When a uma is out of HP, her target speed is set to minimum speed.
See https://gametora.com/umamusume/skills for the list of skills and their conditions.
Many skills need to pass a wisdom check BEFORE the race.
Examples:
Note that base wisdom stat is used here. As a result the activation chance is NOT affected by strategy proficiency or skills.
There are two variables for a uma’s current speed: Actual Speed (LastSpeed in code) and Current Speed (LastSelfSpeed in code).
Current speed is the direct result after acceleration calculations. It is fed into the next round of acceleration calculation. Current Speed is also used to calculate HP consumption per second.
Actual speed is current speed with current speed modifiers applied. Current speed modifiers are effective immediately without the need to accelerate or decelerate, unlike target speed, due to them being applied after acceleration calculation. Actual speed is used to compute distance traveled, as well as various calculations involving relative speed between two uma - blocking, overtaking, etc.
This ability is composed of 2 parts.
Many skills have a base duration. The actual duration of a skill scales with course distance.
Many skills have a cooldown time. The actual cooldown time of a skill scales with course distance.
Skills with random activation randomly pick a 10m segment before a race starts, and activate when all other conditions are fulfilled while the uma is on the selected segment.
Skills that activate on random straights first randomly pick a straight segment to activate on, then randomly pick a 10m segment. The chance of each straight segment to be selected is equal regardless of their length.
If the race goes through the same corner multiple times, the skill will activate on the last lap.
Up to 4 triggers are placed in the race, and the condition is fulfilled if uma is within one of the triggers. The triggers are distributed via the following procedure:
The remaining distance condition is calculated by subtracting the course distance (an integer) by the uma’s current position rounded down. So remain_distance>=399 can actually trigger at remain_distance>=398.000001.
Order rate condition is converted to order condition, rounding to the nearest.
For example, consider order_rate>50 in a 9-uma race. . The condition is then converted to order>5 and can only trigger when 6th place or below.
order_rate_inXX_continue requires an uma to remain in top XX% until skill activation. The first 5 seconds in the race do not count.
A uma is considered near if
A uma is considered surrounded if for all 3 of the following directions another uma can be found. The same uma can fulfill more than 1 direction.
Out:
Front:
Behind:
A uma is considered closely behind if
This check is performed to the uma 1 place ahead/behind the uma in question. Skills use a timer of how long this condition has been continuously fulfilled as a trigger. The timers reset if the uma’s placement changes.
As far as targeting is concerned, skills do not distinguish friend and foe. This means teammates can trigger and be targeted by skills, and count towards a skill’s maximum target.
Teammates are excluded from the effect of debuffs.
Skills with levels gain extra effectiveness based on their effect type.
Level | Target Speed | Accel | Stat | Everything Else - |
1 | 1.00 | 1.00 | 1.00 | 1.00 |
2 | 1.01 | 1.02 | 1.01 | 1.02 |
3 | 1.04 | 1.04 | 1.02 | 1.04 |
4 | 1.07 | 1.06 | 1.03 | 1.06 |
5 | 1.10 | 1.08 | 1.04 | 1.08 |
6 | 1.13 | 1.10 | 1.05 | 1.10 |
7 | 1.16 | 1.125 | 1.06 | 1.12 |
8 | 1.19 | 1.15 | 1.07 | 1.14 |
9 | 1.22 | 1.175 | 1.08 | 1.16 |
10 | 1.25 | 1.20 | 1.10 | 1.18 |
No scaling.
The effectiveness of aoharu skills scales with your team’s total base stats.
Type 1 (ID=8) and Type 2 (ID=9) are identical.
The effectiveness of climax skills scales with the number of races won during training.
The effectiveness scales with the maximum raw stat of all 5 stats.
The effectiveness scales with the number of green skills (skill tag 601-615) activated during the race.
Adds a flat amount of effectiveness when far enough away from the first place.
Scales with the max duration the uma is blocked on either side during the middle leg phase. The duration of the longest occurrence of blockage is used. For each blockage, the timer is reset when both sides of the uma are clear from blocking. It is not reset when the blocking uma changes, or blocked from different sides from the beginning.
Type 1 (ID=20)
Type 2 (ID=21) is not implemented yet.
Scales with the uma’s final speed stat. This includes raw stat, motivation modifier, ground modifier, race course modifier, and skills.
Type 1 (ID=22)
Type 2 (ID=23)
Scales with the uma’s total level of global potential in the L’arc scenario.
Scales with the uma’s maximum lead achieved between 0-66.6% of the course distance.
No scaling.
The duration scales with the remaining HP at the time of skill activation.
Type 1, for Mejiro Bright, Mejiro McQueen (ID=3)
Type 2, for Matikane Tannhauser (ID=7)
The duration increases by 1 second for each time the uma successfully overtakes while the skill is active, for up to 3 times. The increased duration applies to all modifiers applied by the skill. The additional duration also scales with course distance in the same way as base duration, see Skill Duration.
The same logic as the ability value counterpart, see MultiplyBlockedSideMaxContinueTimePhaseMiddleRun.
Type 1 (ID=5)
Type 2 (ID=6) is not implemented yet.
If an ability is labeled as additional activation, it does nothing on skill activation. Instead the effect is applied when a certain condition is achieved while the skill is active, for the remaining skill duration. This effect can trigger multiple times.
Triggered each time the uma successfully overtakes. Up to 3 times.
This used to be AbilityValueUsage = 19.
Triggered each time the uma activates another skill.
Type 1 (ID=2) up to 3 times.
Type 2 (ID=3) up to 2 times.
A uma’s lane is measured by distance from the inner fence. The unit used in calculation is course width. 1 course width = 11.25m. The game also uses the unit “horse lane” to measure relative distance, where 1 horse lane = 1/18 course width.
The minimum lane distance is 0. The maximum is different per race course. The widest race course is the turf course in Tokyo with 1.5 course width, and the narrowest being 3 dirt courses in Sapporo, Hakodate, Niigata with 1.1 course width.
The maximum may change throughout the race, though the only instances of this are Nakayama 2000m and some distances of Hanshin racecourse. It is unclear whether this would affect a race at all.
A uma’s initial lane is where the adjustor is:
Lane move speed has 3 components: actual speed, current speed, and target speed.
First move lane point modifier is applied in the opening and middle leg, before the move lane point.
Order modifier is applied in the final leg and last spurt.
Current speed changes towards target speed over time. This value is not directional. Acceleration is a constant. Current speed resets to 0 when the target lane is reached.
Actual speed accounts for skills and is faster when moving in.
Direction modifier is 1 when moving out. And affected by lane distance when moving in.
If the uma is blocked in the direction it is trying to move, the lane will not change. However the uma will continue to accelerate, building up current lane change speed in this case.
The target lane of a uma refers to the lane they try to move to. It is updated when a uma is less than 0.5 horse lane away from the current target lane, or if she is blocked on the side she is trying to move.
First step is determining which strategy to use. There are 3 strategies: normal, fixed and overtake.
To enter overtake mode, there must be overtake targets. Overtake targets are all visible uma between 1-20 m in front, whose distance gap divided by speed gap is less than 15 - meaning she can be caught up within 15 seconds at current speed difference - and either has a lower target speed than yours, or be blocked and has a lower current speed than your target speed. The closest uma blocking in front is also automatically an overtake target.
Normal mode is used when there are no overtake targets, or when uma is within 200m before the move lane point during opening or middle legs.
Normal mode has the following rules:
Overtake mode on the other hand is used when there are overtake targets. When all overtake targets are lost, the uma stays in overtake mode for an additional 1.5s before moving back to normal mode.
Overtake mode starts by making a list of overtake candidates. For each overtake target, find the innermost and outermost uma of the crowd they belong to. The specific condition is this:
For each inner/outermost uma, the lane +/-1 horse lane is a candidate. The candidate is considered for next step if there is no visible uma within
There is an additional candidate unrelated to overtake targets. If the phase is the opening leg or middle leg, and the uma is at least 1 horse lane from the fence, also check if 1 horse lane in is a candidate. Otherwise, check if going straight is a candidate.
If the uma doesn’t have enough lane space to either side to reach a candidate, the candidate is discarded. The remaining candidates are scored and the lowest scored candidate is accepted.
Phase coefficient differs by whether the candidate is inside or outside.
Opening leg: In = 1.0, Out = 100.0
Middle leg: In = 1.0, Out = 1.0
Final leg, last spurt: In = 1.0, Out =1.15
If no candidate is good, the current lane is accepted as a candidate.
Lastly, if the candidate accepted is to the inside of the extra move lane, and there is enough lane space to move to the extra move lane, the extra move lane is used as target lane. Otherwise the accepted candidate is used.
Fixed mode is used when affected by skill effects that affect target lane. In fixed mode, target lane is the lane specified by skill effect as long as the uma is not blocked from moving towards it.
Upon entering final corner, the extra move lane is set to
The condition for a uma to block in front is
This means the lane gap needed to be blocked is 0.3 horse lane when the other uma is 2m ahead, and 0.75 horse lane when 0m away. If multiple uma satisfy this criteria, the one with lowest distance gap is the blocking uma.
While blocked in the front, uma’s speed is limited to
.
The condition for a uma to block on either side is
The uma with lowest lane gap determines how much space is available for movement.
Certain skills require being blocked on “all” sides. It means being blocked in front and on at least one side.
Two uma are considered overlapping if
When 2 uma overlap, the one on the outside will be immediately bumped 0.4 horse lane away. This also triggers a target lane update for the uma outside.
A uma is visible if
Visible distance starts at 20m and is only modified by skills.
The formula suggests that the maximum width of the vision cone (triangle) is a constant unaffected by visible distance.
When the race starts, a uma starts running after a random delay of up to 0.1s. The delay is NOT affected by wisdom. If the delay is more than 0.08s, it is considered a late start. If the delay is less than 0.02s, you gain a start dash score bonus in the team stadium.
The following skills changes the random start delay to a fixed number:
The following skills multiply the start delay:
When start delay is less than 1 frame, acceleration and HP consumption are unaffected. The distance traveled on the first frame is .
When start delay is greater than 1 frame, no acceleration, HP consumption, or distance traveled calculation would take place. The loss of acceleration is particularly significant and may cause a uma to become blocked. Note that if the start delay is between 1 frame (0.066s) to 0.08s, there would be no late start warning.
Position keeping affects target speed between section 1 to 10. There are 5 modes besides normal mode. For runners, there are 2 modes: speed up and overtake. For non-runners, there are 2 modes: pace up and pace down. Then there is a shared pace up Ex mode.
When in normal mode, a check to enter non-normal modes is performed every 2 seconds. The check consists of an entry condition and sometimes a wisdom check. Uma returns to normal mode once exit conditions are fulfilled, or after she has run in this mode for the length of 1 section (3 sections for oonige; distance of 1 section is rounded down before multiplying). Once exited, there is a 1 second cooldown (followed by the aforementioned 2 seconds interval for a total of 3 seconds) before the checks are run again.
Position keep modes of non-runner modes are determined based on their distance from the pacemaker.
The exact mechanism a pacemaker gets chosen is unclear. The only known information is that a range parameter 10.0 (meters?) and a count parameter 2(.0?) are used.
Prior to the 1.5 anniversary update, pacemaker was the first place uma among the most forward strategy.
Runners try to take first place and maintain a lead ahead of the second place.
Target speed modifier: 1.04x
Entry condition: uma is first place and less than 4.5m (12.5m if she is the only runner, 17.5m for oonige) ahead of the uma behind. Pass the wisdom check.
Exit condition: uma is 4.5m (12.5m if she is the only runner, 17.5m for oonige) ahead of the second place.
Not to be confused with overtake target lane mode.
Target speed modifier: 1.05x
Entry condition: uma is not first place within the same strategy. Pass the wisdom check.
Exit condition: uma is 10m (27.5m for oonige) ahead of second place among uma who has the same strategy.
Non-runners try to maintain their distance with the pacemaker between 2 distance thresholds. The distance thresholds are:
Leader:
Betweener:
Chaser:
Target speed modifier: 1.04x
Entry condition: uma’s distance from the 1st place is above the maximum distance. Pass the wisdom check.
Exit condition: uma’s distance from the 1st place is below a random value between the thresholds.
Target speed modifier: 0.945x if in the middle leg; 0.915x otherwise
Entry condition: uma’s distance from the 1st place is below the minimum distance. No target speed or current speed up skill effect is active.
Exit condition: uma’s distance from the 1st place is above a random value between the thresholds. If in middle leg, the maximum distance is replaced with before rolling the random value. Or when uma is affected by a skill that modifies her current speed or target speed.
Target speed modifier: 2.0x
Entry condition for runners: another uma whose strategy should be behind is ahead of the uma.
Entry condition for others: pacemaker’s strategy should be behind the uma.
Exit condition: no other uma whose strategy should be behind is ahead of the uma.
This mode is prioritized over all other position keep modes.
Each uma rolls for kakari before the race starts. The chance is affected by wisdom.
Examples:
自制心 reduces the chance by flat 3%. i.e. 19% to 16%.
If a uma were to enter kakari, she would do so in a random section between 2 to 9. She will enter kakari as soon as she enters the section.
During kakari, HP consumption is increased to 1.6x. Kakari also forces the uma to change their position keeping strategy and succeed in all position keep wisdom rolls. Worth noting that this change in position keeping strategy only affects the AI, and does not affect things like strategy coefficient when calculating base target speed.
Every 3 seconds in kakari, the uma has a 55% chance to snap out of it. Kakari ends if the uma is still affected after 12 seconds. Kakari debuffs extend the kakari timer by 5 seconds, this effect can be applied multiple times.
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering. In the code, this mechanic is referred to as CompeteTop.
When there are 2 or more runners or oonige, lead competition may be triggered between 150m from start to the 6th section.
For runners, their relative position must be:
For oonige, their relative position must be :
Runners may compete with each other, oonige may compete with each other, but a regular runner does not compete with an oonige.
During lead competition, the runners gain additional speed based on their guts stat.
Lead competition always ends when the 9th section is reached, regardless of whether duration has expired.
During lead competition, the HP consumption rate is multiplied by the following number:
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering.
On the final straight of a race, competition may occur when multiple uma are close to each other.
A uma is considered another uma’s competition target if
If the competition target remains a target for more than 2 seconds, is top 50% in placement, and , a competition is triggered. The uma gains speed and acceleration based on her guts stat.
Competition cannot occur when HP is less than 15%, and will end if HP is reduced to below 5%.
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering.
The uma must have base power + skills bonus greater than 1200 to conserve power.
The following are mostly speculation:
Every 1.5 seconds (possibly scaling with course length?), the uma checks its state to increase or decrease conserved power.
Modes that increase conserved power:
Modes that decrease conserved power:
When conserved power is decreased, the following 2 categories of skill ability type seem to also play an unknown role:
If there is enough conserved power, acceleration is increased at the start of the last spurt.
The power stat is base power (not halved over 1200) + skill bonus.
The strategy-distance coefficient is
Short | Mile | Mid | Long | |
Runner | 1.0 | 1.0 | 1.0 | 1.0 |
Leader | 0.7 | 0.8 | 0.9 | 0.9 |
Betweener | 0.75 | 0.7 | 0.875 | 1.0 |
Chaser | 0.7 | 0.75 | 0.86 | 0.9 |
The activity coefficient is
The duration of the acceleration is unclear, but may depend on how much power has been conserved. It lasts about 3 seconds based on observation. The following coefficients seem to be related:
Distance | ActivityTimeDistanceTypeCoef |
Short | 0.45 |
Mile | 1.0 |
Mid | 0.875 |
Long | 0.8 |
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering. The details are still under investigation.
Competing before spurt occurs between section 11 and 15 of the race. Every 2 seconds, a check is performed to see if she is too far from the first place (scaling with wisdom), or has other umas nearby (scaling with guts, number of nearby uma, number of nearby uma with the same strategy). If the check succeeds, she enters a competition mode.
The exact condition is unclear. It involves the following threshold and a number of other parameters.
Distance from the lead threshold (should scale with course distance)
Strategy | Distance |
Oonige | 0.0 |
Nige | 0.0 |
Senkou | 2.5 |
Sashi | 5.0 |
Oikomi | 10.0 |
If the competition mode is activated, the uma speeds up at the cost of stamina for 2 seconds, then enters a cooldown of 1 second.
Strategy | Strategy Coefficient |
Oonige | 0.2 |
Nige | 0.8 |
Senkou | 1.0 |
Sashi | 1.0 |
Oikomi | 1.0 |
Stamina consumption strategy coefficient
Strategy | Stamina Consumption Coefficient |
Oonige | 1.5 |
Nige | 1.2 |
Senkou | 1.0 |
Sashi | 1.0 |
Oikomi | 1.0 |
Stamina consumption course distance coefficient
Near factor of 0.5 is applied if the uma is NOT far from the first place. In other words the mode is activated due to having uma nearby alone.
If a nige uma does not have another uma with the same strategy within 10m, their bonus is further multiplied by the following factor. (There is an unexplained 20% threshold for this bonus.)
Strategy | Strategy Coefficient |
Oonige | 2.0 |
Nige | 1.1 |
The uma will try to conserve a random amount of HP that is 1.035-1.04x the required amount to finish the race. Every 2 seconds, the uma checks if she has enough HP left. If she does not have enough HP, there is a chance of for her to notice and enter stamina keep mode. During stamina keep mode, the uma will not participate in the competition.
(The activation chance formula is highly speculative. We know that there are 3 parameters - 30%, 1000 as a divisor, and 0.03 as an exponent. Packet capture testing has yielded 93/100 immediate activations with 1000 wisdom, which is higher than what the current formula predicts.)
Activating a HP recovery skill will reset the stamina keeping state, allowing for the competition to activate if HP is now sufficient.
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering. The details are still under investigation.
Secure lead can occur between section 11 and 15 of the race. It occurs when the uma’s lead against another uma who should be further behind according to their strategy is less than desirable. Every 2 seconds, if the lead is less than desirable, there is a 20% chance (should scale with wisdom, but the mechanics is unknown) for the uma to attempt to secure the lead.
Desirable lead strategy coefficient
Nige | Senkou | Sashi | Oikomi | |
Oonige | 2.0 | 7.0 | 8.0 | 8.0 |
Nige | 4.0 | 8.0 | 8.0 | |
Senkou | 5.0 | 6.0 | ||
Sashi | 3.0 |
The uma speeds up for 2 seconds at the cost of stamina, then enters a cooldown of 1 second.
Strategy | Strategy Coefficient |
Oonige | 0.2 |
Nige | 1.0 |
Senkou | 1.0 |
Sashi | 0.8 |
Stamina consumption strategy coefficient
Strategy | Stamina Consumption Coefficient |
Oonige | 1.2 |
Nige | 1.0 |
Senkou | 0.8 |
Sashi | 0.8 |
Stamina consumption course distance coefficient
If a nige uma does not have another uma with the same strategy within 10m, their bonus is further multiplied by the following factor. (There is an unexplained 20% threshold for this bonus.)
Strategy | Strategy Coefficient |
Oonige | 7.0 |
Nige | 2.0 |
Note: Info in this section is inferred from the game’s parameter file, which is less concretely confirmed as results from reverse engineering. The details are still under investigation.
If the uma’s base stamina + skills bonus is higher than 1200, they will gain an additional target speed buff upon reaching max spurt speed. The buff lasts till the end of the race.
Distance Factor is determined by the racecourse distance:
How the Random Factor is calculated is unclear. The parameter file lists "TargetSpeedRandomTableChangeProbabilityByPower": 500 and the following table.
Table Type | Probability | Coefficient |
0 | 500000 | 0.98-1.00 |
1 | 300000 | 0.95-0.98 |
2 | 200000 | 1.00-1.02 |
The race time displayed on the scoreboard is different from the actual race time used for internal calculation or animation.
There is a lower bound to each race’s display time. For example, 2400m Tokyo turf races have a lower bound of 2m21s6. Should a uma break the lower bound, the displayed time will be the lower bound plus up to 1 second. There is an upper bound too.
Information in this section is likely useless to anyone other than a data miner who wants to build a race simulator. The only takeaway for casual readers is that running on an outside lane causes your uma to travel additional distances.
Each race course consists of 1001 “keyframes”, corresponding to 1000 equally distanced segments. Each keyframe consists of a 3D coordinate, and a rotation quaternion. Given course distance traveled, the position and rotation at is calculated by linearly interpolating between keyframes. Then the lane distance is taken into account by moving outside - to the left of the current rotation if course is clockwise, or to the right if counter-clockwise - by 11.25m per course width.
The distance on the xz (horizontal) plane between two world transforms, divided by the difference in course distance, is the ratio of course distance to world transform.
The ratio between 0m and 1m travelled, at lane origin, is used as the base ratio for the race course. The base ratio ranges from 0.96 to 1.06 among race courses that are currently implemented.
Each frame’s ratio of course distance to world transform is also calculated. The course distance traveled being added at each frame is reduced if the ratio from the previous frame is greater than base ratio.
In practice this means running on the outside lane while cornering, or moving lanes, would result in travelling additional distance, modeled by less distance traveled.
This section is outdated by the 1st anniversary update. For current effect, see Course Events.
A uma’s rotation is converted to euler angle to determine the slope at any point of the race.
A slope is considered uphill if , or downhill if .
Some parameters of a race course are defined as events that happen during a course. Each event is defined by its trigger location, with some having additional attributes.
ID | Name | Additional Attribute | Notes |
0 | Corner | Corner Number (1-4); Distance | |
1 | Ground Change | Change of ground type from turf to dirt. | |
2 | Straight | Start or End; Front Type (Front=1, Across=2, False Straight=3) | Each straight is defined by 2 events, the start and the end location. |
3 | Lane Max Change | New value | Change of the max lane value. |
4 | First BGM Landscape | Events of the same type ID existed before landscape mode was introduced, but their previous purpose is unknown. | |
5 | Second BGM Landscape | ||
6 | Jikkyo Trigger | Unused | |
7 | Move Lane Point | In races without this parameter, the entry point of the initial corner is used. Only seen in Niigata 1000m. | |
8 | First BGM | ||
9 | Second BGM | ||
10 | Event Crowd | Unused | |
11 | Slope | SlopePer; Length |
Information in this section are just notes for my own reference.
During race initialization, the following calculations are done in the listed order:
Each frame, the following calculations are done in the listed order: (not complete list)