d07RiV / d3planner

Diablo III Character Planner
Apache License 2.0
113 stars 39 forks source link

Vault Frames Do Not Match In-Game Experience #411

Open PeaceLoveExplosives opened 5 years ago

PeaceLoveExplosives commented 5 years ago

The simulator is calculating Vault speed as the following:

FRAMES=MAX(CEILING(17.999996/(WeaponAPS*(1+WeaponIAS%)+Item&DualWieldIAS%)).4)

However, D3Planner Data shows Vault has a static Attack Speed of 1 rather than the variable Attacks_Per_Second_Total (compare vs. Dashing Strike); and it has a Walking Speed Multiplier of 1, but MS% does not factor into the above equation at all. It may also be relevant, D3Planner Data shows it has ScaledAnimTiming. I'm not sure what that portion means, however.

The 17.999996 also does not appear to factor in a Velocity (17.999996/velocity), or if that is with Velocity already factored in (base/velocity=17.999996), there would need to be a second component of the animation with its own frames, as the current values are much too fast vs. in-game experience. For example, in the current calculation, if you Dual Wield Hand Crossbows, you have 1.6 WeaponAPS and 15% IAS. This puts you at 10 Frames/Vault or 6 Vaults/second. In game with these settings you are much closer to only 2 Vaults/second. Additionally, in-game you can tell that MS% plays a role, as with Tactical Advantage consecutive Vaults are significantly faster.

So possibly the current formula is correct but only for half of the Vault animation - e.g. the initiation/ending animation, with a second formula needed for the movement portion.

One last thing to note, which may be correct but is unclear based on just D3Planner Data, is where the 4-frame minimum comes from.

PeaceLoveExplosives commented 5 years ago

Update, from looking at the .txt animation file, the frames should most likely be calculated as:

4+CEILING(17.999996185303/(1+MS%))

This is because the Vault animation appears to have 3 animations: _Cast_BackFlip_in _Cast_BackFlip_mid _Cast_BackFlip_out

In has 2 frames, Mid has 17.999996185303 frames, and Out has 2 frames. In and Out should be the animation segments linked to the "Attack Speed 1" value (which is static, so not the same as APS). This is the 4 in the above equation (2+2).

This should result in the following Vault breakpoints:

F/V | V/s | MS%+ 5 | 12.00 | 1700.00% 6 | 10.00 | 800.00% 7 | 8.57 | 500.00% 8 | 7.50 | 350.00% 9 | 6.67 | 260.00% 10 | 6.00 | 200.00% 11 | 5.45 | 157.14% 12 | 5.00 | 125.00% 13 | 4.62 | 100.00% 14 | 4.29 | 80.00% 15 | 4.00 | 63.64% 16 | 3.75 | 50.00% 17 | 3.53 | 38.46% 18 | 3.33 | 28.57% 19 | 3.16 | 20.00% 20 | 3.00 | 12.50% 21 | 2.86 | 5.88% 22 | 2.73 | 0.00%

This probably bears some final testing - my computer is not cooperating with getting 60fps precision to do so - but should in any case be more precise than the current calculation (since the current outputs 6 V/s at 0% MS).

PeaceLoveExplosives commented 4 years ago

Actually, although I still haven't been able to fully test (planning to get a new computer this month though, so the new machine should be able to handle it), through some additional theory on this and examining the rough observed values from in-game experience (again, not perfectly precise, but seems to match from what I can observe), I think this is actually how it's being calculated:

Frames/Vault = 4+CEILING(17.999996185303(35/(24(1+MS%))))

This produces the table: F/V | V/s | MS%+ 5 | 12 | 2525.00% 6 | 10 | 1212.50% 7 | 8.57 | 77500% 8 | 7.50 | 556.25% 9 | 6.67 | 425.00% 10 | 6.00 | 337.50% 11 | 5.45 | 275.00% 12 | 5.00 | 228.12% 13 | 4.62 | 191.67% 14 | 4.29 | 162.50% 15 | 4.00 | 138.64% 16 | 3.75 | 118.75% 17 | 3.53 | 101.92% 18 | 3.33 | 87.50% 19 | 3.16 | 75.00% 20 | 3.00 | 64.06% 21 | 2.86 | 54.41% 22 | 2.73 | 45.83% 23 | 2.61 | 38.16% 24 | 2.50 | 31.25% 25 | 2.40 | 25.00% 26 | 2.31 | 19.32% 27 | 2.22 | 14.13% 28 | 2.14 | 9.37% 29 | 2.07 | 5.00% 30 | 2.00 | 0.96% 31 | 1.94 | -2.78%