게임 개발/[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 훑어보기