Diablo 2

Анимации: FCR, FHR, FBR, D/E/A

Содержание

  1. Введение
  2. Faster Cast Rate
  3. Faster Hit Recovery
  4. Faster Block Rate
  5. Dodge/Evade/Avoid

Введение

Для тех кто не знал, в Diablo 2 секунда состоит из 25 фреймов (или кадров). Таким образом, изображение на экране меняется каждые 0.04 секунды. Поэтому любая анимация в игре происходит за целое количество фреймов, что делает невозможным непрерывное ускорение анимаций. В силу этого в игре существуют так называемые брейкпоинты (breakpoints), определяющие необходимое значение параметров, ускорящих анимацию, для уменьшения ее длительности на 1 фрейм. 

Используемые обозначения:

  • HS – Holy Shield (Paladin skill)
  • L, CL, Inf – Lightning, Chain Lightning, Inferno (Sorceress skills)
  • Vampire – форма вампира, бонус полного набора Trang-Oul
  • Fetish – форма stygian doll, результат использования заклинания Delirium с Runeword «Delirium»
  • xbw – Crossbow
  • 2hs – Two-handed swords
  • Stf – Two-handed staves, hammers, axes, polearms
  • 2ht – Tho-handed thrusting weapons (spears)
  • 1ht – One-handed thrusting weapons (knives, javelins)
  • 1hs – One-handed swinging weapons (все, кроме knives, javelins)
  • HtT – hand-to-hand, unarmed - без оружия
  • fpa – frames per animation (количество фреймов, затрачиваемое на анимацию)
  • AF – ActionFrame (или ActionFlag) – фрейм, в который происходит сама анимация
  • [] – округление вниз ([4.5] = 4)
  • {} – округление вверх ({4.5} = 5)

Также в таблицах красным цветом выделены значения, недостижимые в немодифицированной игре.

Faster Cast Rate

На самом деле, анимацию в Diablo II можно разделить на 2 отрезка – начальную и конечную. Начальная - та, что до события (в данном случае - момент каста). Конечная - та, что после.

Допустим, у нас есть Sorceress с параметром FCR равным 195%. Так как брейкпоинт 194%, то посмотрев в известные всем таблицы, узнаем, что скорость анимации для Lightning – 11 фреймов. Что мы не узнаем оттуда, дак это то, что в действительности AF будет равен 5 фреймам. Что означает, что каст молнии будет выглядеть так: 5 фреймов на начальную анимацию, на 5-ом фрейме появляется сама молния, и 6 фреймов на конечную анимацию. Однако, AF часто бывают не привязаны к брейкпоинтам для полной анимации. При FCR = 194% Lightning – 11-и фреймовая анимация с AF = 5, а при FCR = 200% – 11-фреймовая анимация, с AF = 4. Вся анимация занимает столько же времени, однако вы кастуете спелл на 1 фрейм быстрее.

Суть в том, что прервать спелл можно, если прерывание происходит до AF. Если пытаться прервать Lightning на 7-м фрейме, то Lightning все равно скастуется. Также, если вы телепортируетесь до прерывания, ничего не изменится, вы уже переместились.

Пара примеров.

Все знают, что у классов Barbarian и Sorceress одинаковые брейкпоинты. Но это не совсем так (см. таблицу ниже). Оказывается у Sorceress AF ниже, чем у Barbarian, поэтому при телепортировании она (при одинаковом количестве FCR) окажется в другой точке раньше, чем Barbarian.

Пусть у нас есть Barbarian с 63% fcr (9fpa, AF = 7) и Sorceress c 37% fcr (10fpa, AF = 6). Barbarian пытается телепортироваться, Sorceress хочет ему помешать с помощью telekinesis (в данном примере возьмем, что шанс knockback у telekinesis равен 100%). Если Barbarian и Sorceress начнут кастовать в одно и то же время, то Barbarian не сможет телепортироваться, так как прерывание произойдет до AF. Однако, если бы у него было 86% fcr (9fpa, AF = 6), то он бы успешно телепортировался.

Другой пример: есть сферический персонаж с mind blast (11fpa, AF=7), и такой же сферический персонаж с teleport (10 fpa, AF=6) и анимацией fhr, выполняющейся за 4 фрейма. Пусть первый из них спамит mind blast на второго. Mind blast будет вводить его в анимацию fhr на 4 фрейма. Таким образом, у второго будет 7 фреймов, чтобы телепортироваться, что достаточно, так как телепорт выполнится за 6 фреймов.

AmazonAssassinBarbarianDruidNecromancerPaladinSorceressIron Wolf
BowHtHxbw / 2hsstf / htWerebearWerewolfHumanHumanVampireFoHOtherL+CL+InfOther
fcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaffcrfpaaf
019100191101912019130169013901690168018100158023503490159019701370177
7181071811718127181381599129715861584171091486225 15 3389149718791278167
141791318101118111018121515815128151481015710161018137112153932715148151772011615157
22169141710141711141712161482011826137141471116930127182058631618138201763710620156
3215822161022161122161227138371084012726137191594811624194  3012823166639526146
481482916926161023161139137391076311637136301487510635184  39127351561058539136
68137321593215103215114212763979910640126461381259548174  48117521462007458126
991274814948149421510651178696163956011663137  65164  7510763145  63125
15211656148681394814108611610586  9510668127  86154  8610678135  86115
  681388613868131010210620076  1579599117  120143  12596117125  138105
  99128991287213917496      142116  180133    194115  200104
  11312715211899129        163106        200114    
  152117180117133128                        
      152118                        

 

 

Faster Hit Recovery

fpa1918171615141312111098765432
Amazon 061320325286174600 
Assassin 07152748862004680
Barbarian 07152748862004680
Druid (Human, 1hs) 037131929426399174456 
Druid (Human, other weapons) 05101626395686152377 
Necromancer 05101626395686152377 
Necromancer (Vampire) 026101624344872117208638 
Paladin (2ht, stf) 0371320324875120480 
Paladin (other weapons) 07152748862004680
Sorceress 0591420304260861422801480 
 
Fetish04710152027354865861292004144680 
Werewolf 09204286280
Werebear 05101624375486152360 
 
Rogue (Act 1) 061320325286174600 
Town Guard (Act 2) 0591420304260861422801480 
Iron Wolf (Act 3) 05813182432466386133232600 
Barbarian (Act 5) 07152748862004680

Потеря некоторого количества жизней или стан вводят в анимацию восстановления от удара. Вопрос в том, сколько это – "некоторое количество" (часто можно услышать, что это 1/12 от жизни, что не верно)? Для определния этого, нужно знать, при каких обстоятельствах срабатывается анимация восстановления от удара. Рассмотрим последовательность определения, будет ли выполнена эта анимация:

  1. Сначала наносится урон.
  2. Если цель умирает от полученного урона, то анимации не будет.
  3. Если цель заморожена, то анимации не будет.
  4. Если наносимый урон - только яд, то анимации не будет.
  5. Если наносимый урон меньше 1 (1 = 256 бит, все вычисления жизни и урона для повышения точности производятся в битах), то анимации не будет.
  6. Получаем MaxLife – максимальное количество жизней цели.
  7. Получаем divisor – коэффициент (обычно он равен 16, но для некоторых missile attack – 8, см ниже)
  8. Получаем GetHitTriggerNumber = MaxLife / divisor.
  9. Теперь с полученным уроном производятся некоторые вычисления:
    1. Если урон меньше, чем GetHitTriggerNumber, то анимации не будет.
    2. Если урон меньше, чем GetHitTriggerNumber * 2, то анимации не будет с шансом 50%, с шансом 50% будет произведен переход к следующему пункту.
    3. Если урон меньше, чем GetHitTriggerNumber * 4, то анимация будет с шансом 75%.
    4. Если урон больше, чем GetHitTriggerNumber * 4, то анимация будет с шансом 100%.
  10. Если цель не может быть введена в состояние анимации, то анимации не будет (очень вовремя такая проверка :).

Таким образом, для divisor = 16, анимация восстановления от удара 100% сработает при уроне больше, чем 1/4 MaxLife, 75% при уроне от 1/8 MaxLife до 1/4 MaxLife, и 37.5% при уроне 1/16 MaxLife до 1/8 MaxLife.

Missile attacks, для которых divisor = 8:

  • Amazon: Magical Arrow, Multiple Shot, Strafe, Guided Arrow, Immolation Arrow (не огонь на земле), Poison Javelin (только javelin), Plague Javelin (только javelin)
  • Necromance: Bone Spear
  • Assassin: Blade Fury
  • Other: thrown knives, thrown axes, thrown javelins, обычная атака стрелами или болтами
  • Monster Missiles: Rogues' standard arrows, Quillrats' spikes, Corrupted rogues' default arrows (Blood Raven), Skeletal archers' arrows, toxic and spikey trapped wall missiles in Act2&3 dungeons, Pantherwomen's javelins, Fetishs' blowgun darts, Vipers' bonespears

 

 

Faster Block Rate

fpa1716151413121110987654321
Amazon (1hs)04611152329405680120200480 
Amazon (1ht) 0133286600
Assassin 0133286600
Barbarian 09204286200 
Druid (Human) 061320325286174600 
Necromancer 061320325286174600 
Paladin 0133286600
Paladin (с HS) 086
Sorceress 07152748862004680 
 
Werewolf 07152748862004680 
Werebear 051016274065109223
 
Werebear + HS 0837120 

В версии 1.09 был возможен blocklock – несколько блокирований подряд, которые полностью лишали персонажа возможности выполнять какие-либо действия. Начиная с версии 1.10 был введен block timer, в течение которого персонаж может выполнять блокирование без анимации. Его длительность составляет 15+[FBR/8] фреймов, отсчитываемых с момента начала последней анимации блокирования.

Формы Vampire и Fetish не имеют анимации блокирования, поэтому вместо нее используется анимация восстановления от удара (Faster Hit Recovery).

Также, некоторые монстры могут блокировать без щита и без анимации блокирования (все Great Mummies, все Oblivion Knigts и все актовые боссы, включая всевозможных клонов). Для этого у них должен быть задан параметр NoShldBlock=1.

Iron Wolves хоть и имеют щит, но не имеют анимации блокирования, и не могут блокировать.

 

Dodge, Evade, Avoid

Dodge, Evade, Avoid – пассивные навыки класса Amazon. Скорость их анимации может меняться под действием Fanaticism, Holy Freeze, Chill effectivness и Slow Target.

Формула для вычисления скорости анимации:

fpa = {256 * FramesPerDirection / [AnimationSpeed * (100 + Acceleration) / 100] } - 1,

Здесь FramesPerDirection = 9, Animati 256, Acceleration – сумма положительных и отрицательных бонусов.

Посчитаем стандартную скорость анимации:

fpa = {256 * 9 / [256 * (100 + 0) / 100] } - 1 = 8.

Пусть теперь Amazon использует лук с Runeword Faith, который дает ауру Fanaticism 15 уровня. От этой ауры будет бонус к Acceleration +33. Таким образом:

fpa = {256 * 9 / [256 * (100 + 33) / 100] } - 1 = 6.

Как видим, Fanaticism 15 уровня уменьшил длительность анимации на 2 фрейма.

Нравится7
Комментарии (2)
B
i
u
Спойлер