This post has been de-listed
It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.
Greetings community! Deathmax has recently added a new feature to the datamine which some people will be interested in seeing. That something is frame data (and also movement speed!).
But pray tell, Mr. Data Mod, what does frame data mean?
In terms of Brave Frontier, frame data determines the following:
- The timings of each individual hit of an attack
- Consequently, this means the spark timing of a unit
- The timings of each individual tick of healing from burst heals
- The timing at which buff icons appear after using a BB/SBB
In Brave Frontier, the timings of all of these things are specified in terms of frames. A "frame" is a single cycle of the game's main logic loop, and is intended to be 1/60th of a second. If the game is slowed down due to lag, the duration of each frame gets extended as a result, which maintains gameplay such that lag doesn't have any effect on what ultimately happens.
In the raw form of the datamine (found at www.github.com/deathmax/bravefrontier_data), new data has been added to each normal attack, BB, SBB and UBB, found just above the description field. This data follows the following example format:
Example: Nyami's SBB
"damage frames": [
{
"frame times": [40, 42, 44, 46, 53, 55, 57, 59, 72, 74, 76, 78, 102, 104, 106, 108],
"hit dmg% distribution": [20, 2, 2, 1, 20, 2, 2, 1, 20, 2, 2, 1, 20, 2, 2, 1],
"hit dmg% distribution (total)": 100,
"hits": 16,
"proc id": "1"
},
{
"frame times": [40, 53, 72, 102],
"hit dmg% distribution": [25, 25, 25, 25],
"hit dmg% distribution (total)": 100,
"hits": 4,
"proc id": "64"
},
{
"frame times": [90],
"hit dmg% distribution": [100],
"hit dmg% distribution (total)": 100,
"hits": 1,
"proc id": "10001"
},
{
"frame times": [90],
"hit dmg% distribution": [100],
"hit dmg% distribution (total)": 100,
"hits": 1,
"proc id": "83"
}
],
The actual effects of each proc are further down (deathmax wanted to avoid bloating the file too much, and decided to keep the timings separate from the full 10 levels of each BB). The frame timings will always be in the same order as the procs shown in the BB data below, so it lines up properly.
In our example, Nyami displays the timings for her SBB's two attacks, and its two buffs. Each set of frame data has 5 fields:
- "frame times" shows the timing of each individual "hit" of the linked proc. The unit of time used is frames, each being 1/60th of a second - so 15 is 25% of a second, 30 is 50% of a second, 60 is a full second, and so on. This timing does not include the amount of time between the unit being activated and beginning its attack animation, which is dependent on the unit's starting and target locations and its movement speed. The timing is also independent of the effect delay shown as part of the skill data in the datamine - all frame timing for hits is based on when the unit begins its animations.
- For damage, this is when the number appears on screen, and the timing it sparks with
- For healing, this is also when the number appears on screen. It controls whether healing displays as a single chunk, or in multiple hits style (e.g. Alice and Allanon)
- For buffs, this is when the buff icon appears on your units
- Not when the buff is applied. The buff is applied according to the delay timer in the main data.
- In all cases, all calculations related to the effect are made when the proc is triggered according to the main data. The frame timing just determines when healing and damage will be applied.
- "hit dmg% distribution" shows the damage or healing of each hit, as a percent of the total calculated when the effect is triggered. This is the same as it always has been, but note that it also now shows how healing is divided for healing effects.
- Means nothing for buff procs
- "hit dmg% distribution (total)" shows the sum total of all the numbers for the previous field. It's a shortcut so we can see obviously if a unit has any unexpected bonus through distribution here.
- Means nothing for buff procs
- "hits" is the total hit count of the proc.
- Means nothing for buff procs
- "proc id" is the... well, the ID of the proc. It should match up with the proc's partner below. Proc IDs determine what kind of effect the game produces with the variables provided - it's the internal switch that tells the game "use these numbers to deal damage", "use these numbers to burst heal", "use these numbers to add a crit buff to somebody" or whatever.
Looking at our example in more depth, we can try to find out why Nyami sparks with herself.
Nyami's damage procs are ID 1 and ID 64.
Nyami's first attack has times of [40, 42, 44, 46, 53, 55, 57, 59, 72, 74, 76, 78, 102, 104, 106, 108].
Her second attack has times of [40, 53, 72, 102]
Comparing the numbers, we see that all 4 of the numbers in her second attack are present in her first attack. Because the attacks start on the same frame, these line up perfectly and cause her two attacks to spark.
While we're here, we can also observe her attack's hit pattern. Nyami's hits are divided into 4 sets, with the hits in each set being set apart by 2 frames, and the delay between sets of hits is inconsistent. It's unlikely we'll find many units that spark perfectly with that. However, and this is a special case, Nyami's BB has exactly the same timings. Nyami can perfectly spark her BB with her SBB if you can get their starting positions and timing correct.
Movement Speed
In other news, deathmax has also added each unit's movement speed to the datamine. As there are too many variables involved for travel time, as well as some units with fixed travel time (teleporters/non-movers), this should mostly be treated as a reference of how fast units are respective to one another.
It should be noted here that the speed shown in the datamine is inversely proportional to the unit's real speed. For example, Mifune has a speed value of 0.0015, while Vars has a speed value of 0.0050 - and yet anybody that's used Vars can tell you how slowly he moves across the field.
At this point, the movement speeds I've noted are as follows:
0.0015 (fastest)
0.0024
0.0033
0.0041
0.0050 (slowest)
I'm yet to find any other movement speeds (and I've checked all 7* units in global's data)
So what can we use this all for?
In regards to movement speeds, we can use it to find candidates for perfect spark set-ups. As we know perfect spark timings for some units in auto-battle, for example, we can compare them to other units and see who matches their speed.
- Supposing we know Rize can be perfectly sparked with another Rize - Rize has a movement speed of 0.0033, which is shared by other known perfect sparkers such as Gildorf and Avant.
- But it's also shared by other units we haven't used for perfect spark setups, such as Hadaron, Avani, Ravenna, Zeruiah. These units are all examples of ones we can theoretically spark perfectly by using the same autobattle setup as Rize.
- You'll have to forgive this list for being mostly global exclusives but I just started searching the file for movement speed matching Rize from the bottom and upwards for a while.
- There are other movement speeds which perfect spark timings have been found for as well, such as Nyami (0.0015 - shared with very few other units, but including Mifune). In addition, we might be able to use this data in a search for perfect spark setups for timings we haven't found anything for yet
In regards to frame timing, we can use it to find units that spark well together. Or units which look similar, but don't spark well together
- First example: Lario's timings are 2 frames apart for all hits in his animation. As a spark blanket, we might look at other spark blankets to compare him with, so I went back and looked at Feeva, because she was often used at the same time as Lario. Feeva's hit timings are all 3 frames apart - she cannot spark perfectly with Lario.
- But because of how they intersect, Feeva and Lario will spark consistently with one another (i.e. you can always expect a similar result). Feeva will spark every second hit and Lario will spark every third hit, so if their spark blankets begin on the same frame you'd expect them to spark 13 times.
- Second example: Nyami's hits are all 2 frames apart. 12 of them are on even frames. This means if we could get Lario's attack to land its first hit on one of Nyami's even frames, Nyami and Lario will spark 12 times together. If we screw up and match her odd frames instead, they'll spark 4 times together. Their attacks take place over roughly the same amount of time, so this would actually be quite consistent.
- Final example. Ziehl (latest JP dark unit) has a 40 hit SBB with a pattern of 3 frames between hits, except for a single 5 frame gap between his 10th and 11th hit. Elza has a 40 hit SBB with a pattern of 3 frames between hits, with no inconsistencies. This gives 3 possibilities:
- If Elza and Ziehl's first hits spark, they will spark 10 times
- If Elza sparks Ziehl's 11th hit, they will spark 30 times
- Otherwise they will not spark at all
- It's also notable they have the same movement speed, meaning we could theoretically use a perfect spark setup to always match their 11th hits if we can force a 1 frame gap between them. Ziehl's 11th hit is on his 50th frame, and Elza's 11th hit is on her 51st frame
- Let's make that one homework for when Ziehl reaches global. It should be possible.
Also in regards to frame times, we can see who has the fastest animations. If we could also calculate the movement time from various locations, we could confirm exactly how much time a unit takes to finish an attack based on these numbers.
- For example, Mifune has a frame timing of 33 on his single hit (attack takes 33/60 of a second to complete after movement). Gildorf has a frame timing of 31 on his longest proc (attack takes 31/60 of a second to complete after movement). So Gildorf's animation is actually faster than Mifune's.
- However, Mifune's movespeed is 0.0015, and Gildorf's is 0.0033. Remembering that these are inversely proportional to one another, Mifune moves roughly twice as fast as Gildorf when sent to attack. It's likely the speed difference means even though Gildorf's animation is 2 frames faster, Mifune's slightly faster in time to attack and return to the player side.
- Or we can see who has slow animations. I decided to compare Gazia and Deimos for this one. Gazia's last damage frame is frame 269 (269/60 seconds; 4.483 seconds to finish his attack). Deimos' last damage frame is frame 215 (215/60 seconds; 3.583 seconds to finish his attack). However, Deimos has about a 70% faster movement speed across the field, and I'm not entirely certain how much of a difference that makes.
- I looked into some other ones that are interesting for Imp farming, too. Nyami has an animation time of 108 frames movement time; meanwhile Malbelle has an animation of 99 frames and doesn't move. Therefore, Malbelle is a faster unit for imp farming than Nyami. Other notables (including their numbers):
- Nyami: 108 frames 0.0015 movement
- Malbelle: 99 frames no movement
- Farlon: 73 frames 0.0033 movement
- Kira: 84 frames (BB) 0.0033 movement (many people have used Kira for a while, which leads to...)
- Kiravel: 51 frames (BB) teleport movement (Kiravel works as a faster Kira for imp farming! He's also faster than Farlon and has a relevant LS to make things easier)
- Rouche: 59 frames (BB) 0.0033 movement
- Nemethgear: 125 frames 0.0041 movement
- Mifune: 33 frames 0.0015 movement
- Gildorf: 31 frames 0.0033 movement
I'll leave it up to the community to work out anything else they can do with this.
All new work on the actual coding of the datamine is courtesy of /u/deathmax, I'm just here to explain things
Subreddit
Post Details
- Posted
- 8 years ago
- Reddit URL
- View post on reddit.com
- External URL
- reddit.com/r/bravefronti...