Difference between revisions of "Movement Scaler"

ADVERTISEMENT
From Diablo Wiki
Jump to: navigation, search
(Calculating the Heroes Movement Rates)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
==What is Movement Scaler?==
 
==What is Movement Scaler?==
  
Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things.
+
Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things. This is the stat adjusted by the affixes you get on items. The formulae used in Diablo III are as follows:
 
 
  
 
==Calculating the Heroes Movement Rates==
 
==Calculating the Heroes Movement Rates==
Line 37: Line 36:
 
  Calc1 = 1 - Min(1, MovementScalarReductionResistance)
 
  Calc1 = 1 - Min(1, MovementScalarReductionResistance)
  
This makes sure the worst you can get here is a 0, best 1. So even if you set the ReductionResistance to 9999 it'll end up being 0. Although in theory you can have a negative value but Blizzard will no doubt prevent that somewhere else in their code if it matters.
+
Min means take the lowest value, so the best Slow Resistance you can have is 1 (100%). This will be combined with the Reduction Percent Below:
  
 
  Calc2 = (1 - MovementScalarReductionPercent * Calc1 )
 
  Calc2 = (1 - MovementScalarReductionPercent * Calc1 )
  
A percent will be a value between 0.00 and 1.00 so all this does is take whatever the resistance is and take the percentage (as the name gives away). So if your ReductionResistance was 50% and your ReductionPercentage was 50% you'll end up with 25%.  
+
OK, so ReductionPercent (lets say a slow of 0.60 [caltrops]) multiplied by the Resistance will be your total slowed amount, again reversed. (example: 1-0.6 = 0.4 with no resistance).  
  
 
  Calc3 = (1 + MovementBonusTotal)
 
  Calc3 = (1 + MovementBonusTotal)
  
This just gives you a minimum of 1.
+
MovementBonusTotal is unknown at present as the Scalar is used by affixes (items). Maybe skills will use this instead of the Scalar? So for now, we'll leave this at 1.
  
 
  Calc4 = Max(0.1, MovementScalar)
 
  Calc4 = Max(0.1, MovementScalar)
Line 51: Line 50:
 
Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!
 
Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!
  
* Default: 0.1 * 1 * 1 * 1 = 0.1; This would be full speed.
+
*(your bonus movement) * 1 * ( 1 - [slow %] * ( 1 - [Slow Resistance]))
* Full Resistance: 0.1 * 1 * 0 * 0 = 0; You would be unable to move.
+
*Default: 0.1 * 1 * 1 = 0.1; This would be full base speed.
* Some buff: 0.1 * 1.25 * 1 * 1 = 1.125; 25% increase (easy to show with 10 * 125% = 12.5);
+
*Slowed by Caltrops with no Resistance: [0.1] * 1 * ( 1 - [0.6] * (1 - [0]) ) = 0.04; You're slow!
 +
*Affix Run1 on your Axe: [0.15] * 1 * ( 1 - [0] * (1 - [0]) ) = 0.15; 5% increase!
 +
*Affix Run1 on your Axe but slowed with Caltrops: [0.15] * 1 * ( 1 - [0.6] * (1 - [0]) ) = 0.06; (you're 40% slower than someone who has no buffs or debuffs)
 +
*Affix Run1 on your Axe but slowed with Caltrops but with 50% resistance: [0.15] * 1 * ( 1 - [0.6] * (1 - [0.5]) ) = 0.105; (Still faster than a normal character by 0.5%!)
  
 
Now back to the original formula:
 
Now back to the original formula:
Line 59: Line 61:
 
  MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
 
  MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
  
So we now know the best bonus is 1.25 which is the same as 250% in game bonus to run speed! No point going above that then guys and girls, 250% is your limit!
+
So we now know the best bonus is 1.25 which is the same as 1150% in game bonus to run speed! No point going above that then guys and girls, 1150% is your limit from this source! Of course there is the UncappedBonus, but at the moment we've not figured out where this is used...
  
 
  MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
 
  MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
Line 70: Line 72:
 
* RunningRateTotal = RunningRate * MovementScalarTotal
 
* RunningRateTotal = RunningRate * MovementScalarTotal
  
 +
Lets give WalkingRate a value of 100.
 +
Basic speed will be calculated as: 100*0.1 = 10;
 +
With Run1: 100*0.15 = 15;
 +
With Caltrops: 100*0.04 = 4;
  
So as you can see the MovementScalar is just a percentage speed increase!
+
So as you can see the MovementScalar is just as it says on the tin, a % movement speed increase with a cap of 1150% on the speed gains from affixes!

Latest revision as of 14:53, 29 March 2012

What is Movement Scaler?[edit | edit source]

Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things. This is the stat adjusted by the affixes you get on items. The formulae used in Diablo III are as follows:

Calculating the Heroes Movement Rates[edit | edit source]

The forumulae used in Diablo III are as follows:

  • MovementScalar (Fixed per Hero class)
  • WalkingRate (Fixed per Hero class)
  • StrafingRate (Fixed per Hero class)
  • SprintingRate (Fixed per Hero class)
  • RunningRate (Fixed per Hero class)
  • MovementBonusTotal (Starts at 0)
  • MovementScalarReductionPercent
  • MovementScalarReductionResistance
  • MovementScalarUncappedBonus


First step is to calculate the Movement Scalar Total which is done by the following formula:

MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus

This basically means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:

MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)

Basically this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.

Working out the MovementScalarSubtotal:

MovementScalarSubtotal = Max(0.1, MovementScalar) * (1 + MovementBonusTotal) * (1 - MovementScalarReductionPercent * (1 - Min(1, MovementScalarReductionResistance)))

Breaking that down:

Calc1 = 1 - Min(1, MovementScalarReductionResistance)

Min means take the lowest value, so the best Slow Resistance you can have is 1 (100%). This will be combined with the Reduction Percent Below:

Calc2 = (1 - MovementScalarReductionPercent * Calc1 )

OK, so ReductionPercent (lets say a slow of 0.60 [caltrops]) multiplied by the Resistance will be your total slowed amount, again reversed. (example: 1-0.6 = 0.4 with no resistance).

Calc3 = (1 + MovementBonusTotal)

MovementBonusTotal is unknown at present as the Scalar is used by affixes (items). Maybe skills will use this instead of the Scalar? So for now, we'll leave this at 1.

Calc4 = Max(0.1, MovementScalar)

Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!

  • (your bonus movement) * 1 * ( 1 - [slow %] * ( 1 - [Slow Resistance]))
  • Default: 0.1 * 1 * 1 = 0.1; This would be full base speed.
  • Slowed by Caltrops with no Resistance: [0.1] * 1 * ( 1 - [0.6] * (1 - [0]) ) = 0.04; You're slow!
  • Affix Run1 on your Axe: [0.15] * 1 * ( 1 - [0] * (1 - [0]) ) = 0.15; 5% increase!
  • Affix Run1 on your Axe but slowed with Caltrops: [0.15] * 1 * ( 1 - [0.6] * (1 - [0]) ) = 0.06; (you're 40% slower than someone who has no buffs or debuffs)
  • Affix Run1 on your Axe but slowed with Caltrops but with 50% resistance: [0.15] * 1 * ( 1 - [0.6] * (1 - [0.5]) ) = 0.105; (Still faster than a normal character by 0.5%!)

Now back to the original formula:

MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)

So we now know the best bonus is 1.25 which is the same as 1150% in game bonus to run speed! No point going above that then guys and girls, 1150% is your limit from this source! Of course there is the UncappedBonus, but at the moment we've not figured out where this is used...

MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus

This is then used for the following Formulae:

  • WalkingRateTotal = WalkingRate * MovementScalarTotal
  • StrafingRateTotal = StrafingRate * MovementScalarTotal
  • SprintingRateTotal = SprintingRate * MovementScalarTotal
  • RunningRateTotal = RunningRate * MovementScalarTotal

Lets give WalkingRate a value of 100. Basic speed will be calculated as: 100*0.1 = 10; With Run1: 100*0.15 = 15; With Caltrops: 100*0.04 = 4;

So as you can see the MovementScalar is just as it says on the tin, a % movement speed increase with a cap of 1150% on the speed gains from affixes!