본문 바로가기

Version Info

[버전 정보] 엘소드 극대화/크리티컬/추가데미지 효율 비교 계산기 | [Version Info] Crit./Add./Max. Efficiency Comparator

엘소드 극대화/크리티컬/추가데미지(크리/추뎀) 효율 비교 계산기 (데미지 계산기 겸용)

Elsword Maximize/Critical/Additional Damage Efficiency Calculator (Damage Calculator)

- 최신 버전

- Latest Version

ORIGINAL LINK : LINK

SHORT LINK : http://durl.kr/6kddew

 

극대화 관련 실험내용 및 설명 Description of experiment about Maximize : LINK

(실험해서 확인하고 싶으신 분을 위한) 극대화 타격 데이터 빠르게 수집하는 요령 (For the people who want to check by self) Tips to collect statistics of hitting data quickly : LINK

 

- 버전 히스토리 Version History

v.0.17.4 - 2016.07.19 레벨 양식 기본값 90. Default level form data as 90. 0.17.4elsword_atkaddcri.html

v.0.17.3 - 2016.06.11 대전보정 Sample 2의 수치가 Sample 1으로 불러오기되는 버그 수정. Fixed a bug PvP normal. of Sample 2 overwrite Sample 1 when loading from link hash. 0.17.3elsword_atkaddcri.html

v.0.09 ~ v.0.17.2 archive00_elsword_atkaddcri.rar

v.0.17.2 - 2016.06.11 대전보정을 건상태에서 CAM계산시 나오는 버그 수정. Fixed a bug when using CAM calculation while pvp normalization.

v.0.17.1 - 2016.06.11 CAM 안내문 추가. 버그 및 오류 예외처리. MS Edge의 버그를 발견했다! IE는 말할것도 없다. Bug and error exception. I found a bug of MS Edge! IE have no value to say.

v.0.17 - 2016.06.10 크추극(CAM, Cri,Add,Max) 비율 최적화 기능 추가. CAM(Cri,Add,Max) ratio optimizer.

v.0.16.4 음수 저장/불러오기 가능. Save/load negative values.

v.0.16.3 - 2016.5.29 테스트 용도로 대전보정을 넣어보는 기능. PvP/arena normalization as test purpose.

v.0.16.2 - 2016.5.27 누락된 버프 저장가능. 크확, 극대 버프 추가. 화면너비에 따른 표정렬 최적화. Able to save missing buffs. Added cri. max. buff. Optimized table arrangement to screen width.

v.0.16.1 - 2016.5.26 링크의 해시태그를 통한 저장기능 구현. 잔잔한 오류 수정. Added function : save data as link. Fixed some few bugs.

v.0.16 - 2016.5.19 변경된 점감공식을 반영 Changed normalization formula for every stats.(2016.5.19 Korean server only)

v.0.15 - 2016.4.22 랜덤 데미지 범위의 최소치가 전보다 2배 많이 올라가는걸 반영 / 기대값계산식의 오류를 수정 Minimum damage raise double along maximize stat / Fixed error in expected value formula

v.0.14.1 - 2015.11.5 랜덤 데미지 범위의 최소치가 극대화에 따라 올라가는걸 반영 Minimum damage in the range raise along maximize stat

v.0.13.2 - sigma 수정할 수 있게 editable sigma

v.0.13.1 - 2015.10.27 스탯 복사 후 값조정을 할 때 가끔 무한루프에 빠지며 계산기가 뻗는 현상을 개선했습니다. Freezing when adjusting values just after copying stat.

v.0.13 - 2015.10.26 편의기능개선, 데미지감소 무시 옵션 추가. Enhanced accessibility, option for ignore red.damage added.

v.0.12 - 2015.10.25 극대화를 포함하여 효율비교를 할 수 있도록 개선. Able to compare with effect of maximize stat.

v.0.10 - 2015.10.20 한글/영문 UI를 분리했습니다. Korean/English UI separated.

v.0.09 - 2015.10.5 사용자 인터페이스 편의기능 개선 Better UI

 

 

- 사용되는 공식과 계산식

2015.10.22 스탯 개편이 이루어졌고, 데미지와 관련된 공통 스탯으로 "극대화"라는게 추가되었습니다.

무기 공격력의 0.45배부터 1.55배까지 범위안에서 랜덤 데미지가 들어가는 시스템이며, 극대화 스탯을 올리면 높은 데미지가 뜰 확률이 점점 높아지는 이해하기도 힘들고 직관적이지도 않고 데미지도 로또가 되는 뭐같은 시스템입니다.

 

극대화가 0일 때, 동일한 세팅으로 반복공격을 해서 나오는 데미지를 수집하여 통계를 내면 정규확률분포 곡선이 나오게 됩니다. 정규확률분포는 최대와 최소라는 개념이 없음에도 0.45와 1.55 컷트부분에 딱걸리는 데미지도 뜰 확률이 존재하며, 이게 생각보다 잘뜨는데 극대화가 0인 경우 약 2%정도의 확률로 뜨는 것으로 실험되었습니다. 최대뎀2%, 최소뎀2%해서 합치면 4%이죠. 이것은 가장 무난한 정규확률분포를 게임에 적용할 때 0.45이하 또는 1.55이상이 당첨되면 그냥 최소 또는 최대 데미지를 적용하는 알고리즘에 의해 2%수준의 확률이 발생하는 것으로 보입니다. 정규분포의 형태와 이 2%정도라는 값에 맞춰 표준편차를 획득할 수 있고, 0.45이하 또는 1.55이상구간을 적분하면 약 2%가 되도록하는 표준편차값을 알 수 있습니다.

극대화를 올리면 정규분포의 중앙값이 높은 쪽으로 이동합니다. 이동하는 아이디어는 공식홈페이지의 공략게시판에 "토오야마킨지"님이 [외부링크]작성한 글에서 얻었습니다. 이동하는 정도 또한 반복해서 데이터를 닥치고 모으는 실험을 통해 추정했습니다. 먼저 극대화 스탯과 그에 따라 점감공식을 통해 나온 %값이 0~100%까지 존재할 수 있는데, 이 값을 올리면 올린만큼 1:0.5비례로 정규분포의 중앙값이 이동했습니다. 중앙값이 이동하면 1.55이상의 끄트머리보다 높은 부분이 당첨될 확률이 높아지는데 이게 모두 1.55데미지로 퉁쳐지게 되고 결국 1.55데미지가 뜰 확률이 곧 이동한 정규분포에서 우측끝부터 양의 무한대까지 적분한 결과와 같습니다. 이를 통해 극대화 스탯이 몇%일 때, 맥시멈 데미지가 뜨는 확률이 예측가능합니다. 이 확률이 나오는 계산상 극대화 %스탯과 실제 게임내 극대화 %스탯을 맞춰봤습니다.

극대화 관련 실험내용 및 설명

 

정규분포를 다루기 위해서 정규분포(Normal Distribution)의 확률밀도함수(Probability Density Function)와 누적분포함수(Cumulative Distribution Function)가 사용되었습니다. 부가적으로 통계함수인 오류함수(Error Function)도 필수적으로 활용되었습니다. 정규분포에서 기대값(평균)을 구하기 위해 평균 계산 공식인 ∫xf(x)dx를 사용한 정적분도 활용되었습니다. 수치로 나타내기엔 이해하기가 어려워서 그래프를 그리기 위해 HTML5의 CANVAS태그를 사용하였고 따라서 구버전의 브라우저에서는 사용할 수 없습니다.

 

이하는 기존에 적어두었던 데미지 공식에 관련된 내용입니다.

 

 

여러사람들이 실험해서 쥐고박고 해서 알아낸 엘소드의 데미지 계산식은 다음과 같슴다. 추가데미지 파트는 내가 알아낸 것이죠.

 

modatk*perdam*(1-def)*(1-red)*cridam + 0.5625*atk*peradd*perdam^0.65

 

modatk : Modified Attack, 변경된 공격력

perdam : Percent Damage, 스킬의 퍼센트데미지

def : Defense, 방어력

red : Reduce Damage, 데미지 감소

cridam : Critical Damage, 크리티컬 데미지, =1.5

0.5625 : Constant for Additional Damage, 추가데미지 상수, =9/16

atk : Non-Modified Attack, 원래 공격력(공격력버프,*공격력증가+% 같은거 제외된)

peradd : Add.Damage in Percent, %로 환산한 추가데미지 스텟

0.65 : Power for Additional Damage, 추가데미지 지수, =13/20

 


modatk, atk

modatk 항은 atk 항과 차이를 알기 어려울 수 있는데 스샷을 동원해 설명하면 다음과 같다.

스탯창에 뜨는 저 17373과 16343과 같은 공격력 수치는 *공격력증가+% 수치가 합해져서 나온다. *공격력증가+%(%공증)가 뭐냐면 아래 스샷들을 참고.



위 스탯수치를 가진 캐릭터에 저만큼의 %공증 수치가 활성화되어 있으면 atk * (1+ 0.10 + 0.02 + 0.04) = modatk = 17373가 되는 것이다. 던전에서는 펫이 들어가고, 대전에서는 빠진 값이겠지.

스탯창에 표시된 값은 modatk값 뿐이니 여기서 거꾸로 atk를 구하려면 나누면 된다. modatk / (1+ 0.10 + 0.02 + 0.04) = atk = 14976.7

참고로 스텟창에 표시된 공격력은 소수점이 생략된 상태다. 소수점 버림이라고 해야하나?


스탯창에 표시되는 수치는 어쨌든 그렇고, 게임내에서 버프등을 받으면 modatk가 또 변한다. 대표적 버프는 아래 같은 것

버프가 걸리면 스텟창에 나와있는 modatk값에 저만큼이 또 곱해진다. modatk = modatk * (1+ 0.20*1.15)

확인사살 잊지않고 적용해주기.



perdam

perdam은 스킬의 퍼뎀. 퍼센트로 표시된 데미지. 위력!

아래와 같은 것들이다.

[진]이 붙어서 힘의 격류로 최종강화 어쩌고는 이미 적용된 수치가 툴팁에 표시된다. 퍼뎀이 1452%라면 백분율이기 때문에 perdam=14.52 가 되는 것.


최근 패치로 망각의 주문서와 함께 특성이 패치되었는데 이 특성을 찍으면 atk나 다른게 변하는게 아니라 perdam이 변한다!

표기되어 있는건 3281% 이지만 <묵직해진>을 찍어서 130%로 만들면 다음과 같다.


perdam = perdam*1.30

42.653 = 32.81*1.30


참고로 기술의 반지나 액티브, 스페셜액티브의 위력을 증가시키는 장비, 칭호등도 위와 같이 처리된다. 많이많이 높일 수만 있다면 진정한 갓 옵션. 추가데미지의 perdam^0.65 항까지 같이 늘어나니까.



cridam

크리티컬이 안뜨면 cridam 항은 1로 치환하면 되고 징벌의 문장 같은거 받으면 저 값을 1.5보다 올리면 된다.



추가데미지 파트의 상수들

추가데미지와 관련된 상수들 0.5625나 0.65같은건 실험(주로 함수 그래프 피팅, function graph fitting)을 통해서 알아낸 것들이고,

atk항은 위에 modatk설명하면서 같이 했다.



peradd, 점감

peradd의 경우는 추가데미지 스텟을 %로 변환한 수치다.

우선 크리티컬, 추가데미지를 포함해서 동작속도, 이동속도, 점프속도, 데미지감소, 명중, 회피, 각성충전속도의 9가지 스텟은 %로 변환할 때, 첫번째로 다음 값으로 나누게 된다.

stat = 8 + level*1.5

레벨이 80이라면 8+120 해서 stat=128이 되는거다. 이 값을 스텟창에 나와있는 각 스텟수치에서 분모로 넣어 나누면 된다.

예를 들어 크리티컬 스텟이 17000이면 percri = 17000/128 = 132.8125% 가 되는 것이다.(%단위에 주의)

백분율 단위가 붙어서 나오므로 %단위를 제외하면 1.328125이다.


이게 그대로 적용되는 것은 아니고 점감이라는게 적용되는데, 스텟수치가 너무 높아지는 걸 방지하는 용도이다.

점감공식은 "크리티컬,추가데미지"에 적용되는 유형, "명중,회피,각종속도"에 적용되는 유형, "데미지감소"에 적용되는 유형, "각성충전속도"에 적용되는 유형으로 무려 4가지나 있다.

여기선 "크리티컬,추가데미지"에 적용되는 유형만 설명한다.


위 예시에서 128로 나누기만 한 크리티컬 스텟을 percri_original 이라고 하고 점감공식을 통해 보정된 최종수치를 percri라고 하면 식은 다음과 같다.


percri(%) = percri_original(%) - 0.4*(percri_original(%)/10 -4)^2


단위는 모두 %인 것으로 사용하면 되며, percri_original>40% 일 때, 사용된다.

이 식은 내가 찾아낸것이 아니고... 먼 옛날에 누군가 언팩을 해서 알아내서 퍼진 것으로 알고 있다. 아니면 말고? 그렇게 책임을 질 수 있는 발언이 아니므로 신용하지 말자.


위 식을 사용해 크리티컬 스텟이 17000인 경우 최종 %수치는 98.355859375가 나온다. 심심하면 한번 해보자.


위 식이 추가데미지에도 그대로 적용되며 peradd값을 구하는데 사용하면 된다.

크리티컬, 추가데미지에 대한 점감공식을 멋지게 그려놓은 것도 있다.




^0.65에서 ^ 이게 무엇인고?

x^0.65 이것은 멱함수라고 부르는 것이다. 뭐라고 부르는지 몰랐는데(영어이름만 알고 있었음. power function이라고) 멱함수(冪函數)라고 한다. 기본 교육과정을 배우는 학교에서는 대략 x^0.5 함수정도만 배운다. 제곱근이라고 하죠. ^뒤에 거듭제곱같아보이는 상수에 따라서 x값은 양수만 가능하고 음수를 넣으면 허수(imaginary number)가 나오는 함수. 이런 경우엔 실수영역에서만 사용하려면 x>=0로 x를 제한해줘야한다. 정의역이라고 하던가? 그런 용어는 아무래도 좋습니다.


2^0.5 = 1.414 이러면 확 와닿을지도.



def, red

def 방어력과 red 데미지감소에 대해서 잊어버렸군요. 이것도 아주 중요한 건데.

위 두가지는 따로 구분이 되어있기는 한데, 역할은 차이가 나지 않는다. 하지만 차이를 발생시키는 요인은 방어를 무시하는 공격이나 방어력 디버프 같은 것들이다.

데미지감소를 감소시키는 공격은 딱히 없는게 차이점.



위 같은 패시브가 있는 상태로 맞으면 def는 항상 def=def*(1-0.30)인 상태가 될 것이다.

어라, 그러면 방어력 디버프를 저기에 추가로 70%더 먹이면 방어무시가 되지 않겠느냐...?

의문이 들 수 있는데, 다행히도 복리식으로 계산한다. 70%를 더 먹이면 def=def*(1-0.30)*(1-0.70)해서 0은 절대 안된다.



Features

기본 데미지 공식에 대한 설명은 이 정도고 크리/추뎀 효율 비교 계산기의 특징(feature)에 대해서 따로 몇가지 설명을 붙여보겠다.

이 계산기는 원래 목적이 추뎀작과 크리작 같은것을 비교하고, 두가지 세팅 중 어느것이 더 나에게 적합한지 데미지 시뮬레이션을 해보는 도구이다.

지금은 복잡하게 시리 %공증에 파멸의 마법석이라던가, 기술의 반지효과 같은 것들이 나와서 전부 비교할 수 있게 해두었다.


추가데미지의 지수함수 곡선때문에 추가데미지, 공격력같은 변수에 의해서 곡률이 변화한다. 1000% 이하의 공격은 추뎀작이 쎄고 어쩌고 하는 이야기는 여기서 나온다.

그래서 그래프로 볼 수 있도록 만들었다. 그리고 "1000% 이하"와 같은 기준을 계산해주고 있다.


그리고 지금은 던전, 대전 보정을 추가로 찾을 수 있게 해두었다. modif 보정배수라는 항으로 따로 들어가 있는데 이 항까지 들어간 데미지 공식은 다음과 같다.


modatk*perdam*(1-def)*(1-red)*cridam*modif + 0.5625*atk*peradd*perdam^0.65


와우, 갓추뎀은 보정도 안받는다...

별일 없으면 modif = 1 이다.

이 보정배수 찾는 팁은 따로 작성했었다. <링크>



그래프 곡선의 교점 구하는 기능과 보정배수 찾는 기능과 같은 것들은 따지자면 매우 단순하게 구현되어 있다.

아마, 중학교? 요즘 애들은 초등학교때 배우나? 어쨌든 그때 배우는 연립방정식이다.


연립은 두가지 이상의 서로 다른 식을 통해 변수를 정리하는 방법이다.

예를 들어서 a=x*z, b=y*z 의 두가지 식이 있다고 치면, 이것을 연립해서 y를 구하는 식을 만들어보자.

두 식에 공통으로 들어있는 항은 z이다. y가 들어있지 않은 식을 z에 대해 정리해서 y가 들어있는 식에 대입한다.

z=a/x

대입하면 b=y*a/x

y에 대해 정리하면 y=b*x/a


이런 느낌이다. 예시에는 변수가 a,b,x,y,z로 다섯가지 사용되었는데 계산기에서는 modatk, perdam, def, red, ...atk, peradd... 등등... 그것도 Sample 1과 Sample 2를 비교하는 것이므로 변수를 대략 두배로 늘려놓았다.

즉, 두 가지 데미지공식을 연립한 결과가 사용되는 중이다.