overwatch 8

[Unity] 오버워치 따라잡기! 트레이서 편(6) - 기본 공격 장전

정말정말 오래걸려서 트레이서의 기본 공격 이론을 구현했다. 이제는 장전을 구현해볼 것이다. 바로 ㄱㄱ A. 트레이서 기본 공격 분석 트레이서의 좌클릭 기본 공격에 대한 정보는 위와 같다. 한 번당 두개의 총알이 나간다던가 수정해야할 정보가 보이지만, 이러한 디테일은 나중에 추가하도록 하자. 먼저, 탄창을 40이고 장전 타임은 1초인것만 생각하면 된다. 장전에는 두 가지 정도가 있을 것이다. 1. R을 눌렀을 때 장전. 2. 기본 공격을 하는데 탄창이 0일 때 자동으로 장전. B. 탄창 개념 도입 탄창, 장전에 관련된 변수들을 정의해주고 트레이서의 탄창 40개와 장전시간 1초를 설정해줬다. maxBulletNum은 탄창 최대 개수, bulletNum은 현재의 탄창 개수가 될 것이다. Reloading을 장..

[Unity] 오버워치 따라잡기! 트레이서 편(5) - 기본 공격

오랜만에 돌아온 오버워치 따라잡기! 학기 시작하니 블로그 쓰는게 점점 힘들어지고 있다.. (핑계 대지 말고 열심히 살자) 오늘은 드디어 미루고 미루던 기본공격! 바로 시작 ㄱㄱ A. 트레이서 기본 공격 분석 트레이서 기본 공격은 히트스캔이다. 그리고 일정 반경 내에서 총알이 hit한다. 기본 공격 테스트 영상 위 영상을 보면 기본 공격시 UI의 원 내에서만 총알이 날라가는 것을 볼 수 있다. UI 기준이므로 가까울 때는 총알이 한 곳에 모이게 되고, 멀면 흩어지게 된다. 그렇다면.. 이렇게 총알이 원뿔 형태로 나아가게 하면, 멀수록 더 넓은 원의 hit range를 갖지 않을까? 즉, 총알 하나의 hit ray가 저 원뿔 내로 랜덤하게 형성되어야 한다. 좀 더 정확히 분석 해보자..! (하 머리 아파) ..

[Unity] 플레이어 체력(HP바) 구현하기!

트레이서 편을 이어서 제목을 정하려 했으나 사실상 HP의 개념은 모든 캐릭터, 심지어 모든 FPS 게임에 적용되므로.. 제목을 트레이서 편으로 하지 않았다... 라는 설명입니다. 오버워치 위키(레퍼런스 1번) 사이트에는 오버워치 영웅들의 HP 정보가 잘 적혀있다. 지금까지 구현한 영웅은 트레이서밖에 없으니, 트레이서의 HP를 구현해보도록 하자. 다행히 트레이서는 이상한 overhealth 같은거 없이 150 health를 가지고 있다. (트레이서부터 구현하길 잘한듯..) A. 플레이어 Health 구현 및 표현 사실 health만 구현하는 것은 쉽다. Float 변수 하나 만들어서 150으로 지정해주면 끝. 중요한 건 이 health를 HP bar를 통해 유저가 게임 플레이하며 보는 것이다. 빠르게 HP..

[Unity] 오버워치 따라잡기! 트레이서 편(5) - Recall 시간역행

이번 편에서는 시간 역행할 때의 카메라 무빙을 자연스럽게 구현해보겠다. 점멸과 시간 역행 구현은 전 편들을 보면 된다. A. 오버워치에서 트레이서의 시간 역행 장면 영상에서 알 수 있는 것은 1. 위치는 정확히 과거를 따라간다. 2. 카메라는 중간에 뭘 했든 점멸 직전의 카메라에서 3초 전의 카메라까지 자연스럽게 이어진다. 따라서, 이번 편에서 해야하는 것은 2번이다. (1번은 전편에 구현 완료) B. 역행시 자연스러운 카메라 이동 구현 전 편에서 Queue에 트레이서의 위치, 회전 정보를 수집했듯이, 이번에도 카메라의 회전 정보를 Queue에다가 수집하면 된다. Queue가 아닌 List에다가 수집해야한다. 이번에는 첫번째 정보만 필요한 것이 아니고 마지막 정보도 동시에 필요하므로 List를 사용할 것..

[Unity] 오버워치 따라잡기! 트레이서 편(4) - Recall 시간역행

드디어.. 트레이서 시간 역행이 돌아왔다.. 일단 개발에 들어가기 전에 트레이서가 시간 역행을 하면 어떤 일이 벌어지는지 분석해보자. A. 트레이서 시간 역행 분석 직접 옵치에 들어가서 해본 결과.. 역행을 하면 다음과 같은 일이 발생한다. 1. HP 회복 2. 장전 3. 역행할 때 이동, 기본 공격, 스킬 사용 불가 4. 카메라가 고정됨 (마우스로 움직일 수 없음) HP 회복이나 장전 같은 경우에는 HP와 총을 개발한 후에 적용할 것이다. 이번 편에서는 역행하는 것만 구현하려고 한다. B. 트레이서 시간 역행 구현 레퍼런스 1번에 따르면, 트레이서의 시간 역행은 3초 전으로 돌아간다고 한다. 역행이 걸리는 시간은 1.25초이다. 즉, E 스킬을 사용하면 1.25초 만에 3초 전의 트레이서로 역행하는 것..

[Unity] 오버워치 따라잡기! 트레이서 편(3) - Blink 점멸

https://gycblog.tistory.com/23 [Unity] 오버워치 따라잡기! 트레이서 편(2) 1편에서 기본 움직임과 점프를 구현했고, 이제는 트레이서의 대표 스킬 점멸을 구현하려 한다. 트레이서의 점멸은 Shift키 또는 우클릭시 가던 방향으로 일정 거리 순간이동한다. WASD키 중 아무것 gycblog.tistory.com 2편에서는 트레이서의 점멸을 구현하였다. 그러나 순간이동 개념으로 구현했기에 벽을 통과하여 점멸하는 문제가 발생. 오늘은 이걸 보완해보려한다. A. RayCast로 점멸 직전에 앞의 장애물 체크 점멸 직전에 점멸 방향으로 Ray를 쏴서 벽과 충돌하는지 체크한다. CheckBlinkCollision 함수를 이용하여 2편에서 구현 LShiftSkill 함수를 다음과 같이 ..

[Unity] 오버워치 따라잡기! 트레이서 편(2) - Blink 점멸

1편에서 기본 움직임과 점프를 구현했고, 이제는 트레이서의 대표 스킬 점멸을 구현하려 한다. 트레이서의 점멸은 Shift키 또는 우클릭시 가던 방향으로 일정 거리 순간이동한다. WASD키 중 아무것도 누르지 않은 상태에서 사용하면 앞으로 점멸한다. 구현해보자! A. 트레이서 점멸 구현하기 ChatGPT를 통해 특정 위치에서 가고있는 방향으로 일정 거리 갔을 때의 나의 위치를 계산하였다. 물론 직접 계산할 수 있겠지만.. 세상이 너무 좋아졌다. 어쨌든, 가고있는 방향으로의 벡터를 normalize한 것을 이용하여 점멸 후 플레이어가 있을 위치를 계산한다. 다음과 같이 갈 곳을 계산하였고, coroutine을 사용해서 순간이동 즉 점멸하도록 했다. Update 함수에서 left shift가 눌리면 LShif..

[Unity] 오버워치 따라잡기! 트레이서 편(1) - 움직임

게임 개발을 공부하기 위해서 직접 게임을 만들려면 개발 외 다른 것들이 필요하다는 것을 느꼈다. (모델링, 애니메이션, 기획, 등등..) 따라서, 나중에 하려고 했지만 지금이라도 해보려는 내 최애 게임 따라잡기! 사실 원래는 마인크래프트 따라잡기를 하려고 했는데, 요즘 옵치가 너무 재밌기 때문에 오버워치 따라잡기를 해보겠다. 차근차근 영웅들부터 분석하면서 개발하려고 한다. 오버워치가 처음 개발되었을 때 첫 영웅이 트레이서였다. 따라서 나도! 트레이서부터 따라잡기 해보려 한다. A. 트레이서 분석 트레이서는 따발총 두 개를 들고 돌아다니는 영웅으로, 점멸을 이용하여 일정 거리를 순간이동하며 빠르게 이동하는 것이 특징이다. 좌클릭: 펄스 쌍권총, 기본 공격 Shift 스킬: 점멸 (우클릭도 가능) E 스킬:..