쐐기를 조금 열심히 하시는 분들이라면 플레이터 프로파일 만드는 Jundies를 아실텐데요, Judies가 현재 자기 플레이터 프로파일과 Platynator 기본 기능으로 들어가 있는 차단 쿨타임 틱을 만든 방법을 설명해놓았는데 재밌어보여서 코드 보고 조금 더 풀어서 적어봅니다. 알고리즘에 관한 얘기니 재미로 보십쇼

일단 차단 쿨타임 틱이란 스킬을 시전 중인 몹이 있을 때, 자신의 차단 스킬 쿨타임이 스킬 시전 당시에는 돌아오지 않았지만 시전 끝나기 전에는 돌아오는 경우 정확히 어느 때에 쿨타임이 돌아오는지 마킹해주는 기능입니다. 아래와 같은 그림처럼요. 시전 바가 초록색을 넘어가면 내가 차단 가능합니다.


근데 이상한게 '플레이어 스킬의 남은 쿨타임'은 비밀값입니다. 이걸 어떻게 구현을 했을까요? Jundies는 비밀값을 억지로 우회하지 않고 시각적 속임수?를 이용해서 구현을 했다고 합니다.

방법을 대충 설명하자면 다음과 같습니다.
1) 자신의 차단 스킬의 역방향 진행 바를 만든다 (캐스팅 바처럼 쿨타임이 시작하면 막대기가 채워지고 쿨이 다 돌면 끝까지 채워지는 진행 바). 이 바를 편의상 '내 차단 바'라고 하겠습니다.
* 이러한 진행 바를 만드는 것은 가능합니다. 다시 말해 순전히 시각적 효과를 만드는 것은 허용되어 있고 몇초가 남았냐 등의 구체적인 값을 알아내서 연산 (단순 숫자로 표시, 총 쿨타임으로 나눠서 %로 표시 등의 실제 계산)은 불가능합니다.

그리고 내 차단 바를 현재 캐스팅 중인 몹의 시전 바와 시간-픽셀 스케일을 일치시킵니다. 이 스케일링이 추후 중요한데 다시 말해서 5초짜리 캐스팅, 10초짜리 캐스팅 중인 몹이 있다면 두 캐스팅 바에 할당 된 각각의 차단 바의 길이가 다른 겁니다. 자신의 차단 쿨타임이 20초라고 하면 다음과 같습니다. 이 또한 꾸미기에 불과하기 때문에 블쟈의 제한 사항이 아닙니다.






2) 내 차단 바의 왼쪽 끝를 현재 캐스팅 중인 바의 진행 상황의 오른쪽 끝에 앵커시킨다
따라서 내 차단 바는 몹의 캐스팅이 올라감에 따라서 같이 오른쪽으로 진행되는 겁니다. 다음과 같은 식입니다.


3) 내 차단 바의 진행 상황에 마커를 위치시킨다.
이제 내 차단 바를 채울 차례입니다. 앞서 말했듯이 내 차단 바는 역방향 차단 바입니다 (오른쪽 시작, 왼쪽으로 채워짐). 차단 바의 끝 부분에 초록색으로 색을 칠해줍니다. 이 또한 물론 제한 사항이 없습니다.


4) 내 차단 바를 초록색 마커 제외하고 모두 투명하게 만든다.
몹의 시전 바는 정방향, 내 차단 바는 역방향 진행을 하고 시간 스케일이 같기 때문에 초록색 마커는 시간에 상관 없이 항상 제자리에 있게 됩니다. 이렇게 만든 움직이지 않는 초록 마커를 몹 스킬 시전 바 위에 얹게 되면 몹 시전 바 기준으로 정확히 언제 내 차단이 돌아오는지 표시가 가능해집니다. 차단이 스킬 시전 끝까지 돌아오지 않는 경우는 초록색 마커가 시전 바 내부에 들어오지 않습니다(왼쪽에 위치). 이 경우는 그냥 몹 시전바 크기로 잘라내서 아예 보이지 않게 합니다.
아래는 몹이 10초 캐스팅을 시작할 때 내 스킬 쿨이 7초 남은 경우입니다.


이렇게 정확한 차단 스킬의 남은 값을 알지 않고도 순수하게 시각적 효과로 내 차단이 언제 돌아오는지 표시가 가능합니다. 마치 기차 달리는 모습을 영화로 찍는다면 기차를 움직이지 않고 배경을 움직이는 식으로 해결을 한겁니다. 채널링 스킬의 경우 방향을 다 거꾸로 해주면 됩니다.
쓰고보니 노잼이네요 재밌죠?

Jundies 설명 글: https://www.reddit.com/r/CompetitiveWoW/comments/1qid60b/comment/o0r4i0m/
Jundies 플레이터 프로파일 (코드 포함): https://wago.io/ak3iS95aa
Platynator (상기 기능 내장): https://www.curseforge.com/wow/addons/platynator

다음 댓글 금지:
기본 네임플레이트로 잘만 해왔다
애드온 격차 어쩌고 저쩌고