게임 개발/[D2D_Portfolio] DirectX2D 포트폴리오 작업일지

19. 스킬 쿨타임 표시 & 대쉬 Smoke 구현

헛둘이 2023. 4. 3. 23:05

스킬 쿨타임 표시

- 스킬 쿨타임을 표시를 내가 의도했던 대로 구현했다.

- 내가 의도한 것은 스킬을 사용하면 스킬 박스가 어두워지며, 쿨타임이 지나는 동안 스킬 박스의 가운데를 기준으로 시계방향으로 점점 밝은 영역을 넓혀나가며, 쿨타임이 끝나면 하얘지는 (롤에서 사용하는 것과 비슷한데 가운데 숫자가 없는) 방식이다.

- 이를 구현하기 위해 셰이더 코드를 작성했는데,

1. 상수 버퍼에 현재 쿨타임이 몇 %인지를 받아온 후, 그 %를 라디안으로 변환해준다.

2. uv좌표계의 가운데 점(0.5, 0.5)를 원점으로 잡기 위해 넘어온 uv좌표에 (0.5, 0.5)를 빼준다.

3. 그리고 모든 uv좌표를 중심에서 향하는 벡터로 취급해서 내가 기준으로 세운 벡터와 각도를 계산한 후, 그 각도가 1번에서 구한 각도보다 크다면 색상 값(xyz)를 5로 나눠서 어둡게 색상을 변경해준다.

 

대쉬 Smoke 구현

- 원작에는 대쉬한 후 잔상도 남지만, 그 뒤에 Smoke를 남기는 연출이 들어가 있다.

- 따라서 이 부분을 구현하기 위해 플레이어는 GlobalEffect라는 클래스를 보유하고, Awake에서 생성한 후 씬에 추가해준다.

- 이 멤버변수를 DashState의 Enter에서 받아와서 위치값을 적절히 제어한 후 애니메이션을 틀어주는 식으로 간단히 구현했다.

 

 

내일 할 일

- 점프 시 발생하는 Smoke 구현

- Deferred Rendering 훑어보기