개발일지 목록


#1 - 플레이어 기본 조작

#2 - 무기 기틀 세우기

#3 - 무기 종류 추가 및 업그레이드 구현

#4 - 기본 몬스터

#5 - 몬스터 스폰

#6 - 즉사 공격, 가까운 적 탐색, 데미지 표기

#7 - 플레이어 스텟

#8 - 성능 최적화 (움짤 주의)

#9 - Experience Point

#10 - 넉백 / 미티어 스트라이크

#11 - 경험치 및 레벨업 UI

#12 - HP / SP

#13 - 상호작용 / 타일맵

#14 - 활 무기 개선 및 추가 / 플레이어 팔로우

#15 - 패기 / 길찾기 (1)

#16 - 길찾기 (2)

#17 - 길찾기 (끝)

#18 - 맵 (1)

#19 - 맵 (2) / 공중 유닛

#20 - 맵 (3) / 실내 / 마스크

#21 - 장비 업그레이드 (1)

#22 - 장비 업그레이드 (2)

#23 - 테스트 플레이 & 중간 점검 (1)



방패 무기


마음을 다잡고 빠르게 돌아온 것 !

현재 무기 개수가 5개인지라 찝찝한 와중 만들어주어야 할 무기가 떠올랐으므로 후다닥 구현.

바로 뱀서의 성경 포지션인 방패.


뱀서랑 판박이 아니냐 싶긴 하지만... 뱀서가 잘 만든 것 같다.

기본 등급의 무기다보니 독특함보다는 기본적인 기능만을 만들어주고,

업그레이드 된 무기에 개성을 부여해줄 생각.


방패답게 적의 투사체를 방어해준다는 특징이 있음.

뱀서는 적의 투사체가 어떤 공격이든간에 막혀서 사라지는데,

게임 중반만 가더라도 투사체로 가득차기때문에 적의 탄막 공격이 아무런 의미도 없어서 아쉽게 느껴졌음.

따라서 컨트롤 요소를 넣어줄 겸 투사체를 공격해서 없앨 수 없게 할 것이고,

물론 내 투사체가 많아지면 화면이 가득 차서 적 투사체도 잘 안보일테니

최대한 적의 투사체가 눈에 띄도록 할 것임.



디자인


아쉽게도 에셋에는 쓸만한 방패 스프라이트가 없어서 직접 그려주었음.

세부 디테일은 일단 보류하고 쓸만한지 대략적으로 그렸음.

7dec9e36ebd518986abce8954488756bc3

8방향 각 스프라이트를 그려주었고, 전면에는 육구를 그려주었는데

도트가 작다보니 잘 표현도 안되고 약간 젤다 시커족 문양이 생각나는 것.



구현


개별 실드, 한 공격 타임에 사용할 실드를 묶어서 들고있을 객체, 장비, 세 가지 종류로 나누어 구현했음.

간략하게 핵심적인 부분만 설명하겠음.


먼저 실드들을 가지고 공격 시간동안 사용하는 객체에서는

지속시간동안 자신이 관리하는 실드들 위치를 설정함.

1eb3d136abc236a14e81d2b628f1756b8c563958

약간 지맘대로 주체가 난잡한데

현재 실드 개수에 따라 실드 사이 각도를 미리 정해주고 각 실드들의 각도를 구해서 원 방정식 위의 좌표 구하듯이 위치를 구함.

요렇게 해준 이유는 도중에 투사체 개수가 증가하거나, 크기나 속도 등이 변경되었을 때

즉시 적용해주는데 용이하게 하기 위함.


실드 쪽에서는 받은 값으로 위치를 옮기고 현재 각도에 따라 보여줄 스프라이트를 변경.


7dee9e21ecd418986abce8954385776c00bf5c

결과 요런 식으로 빙빙 잘 돌아간다.


7de99e21ecd418986abce8954584706d1b3087

빙빙 돌면서 때릴 때 데미지 뜨는게 몬가 마음에 든다.



다음으로 스텟 적용, 등장/사라짐 효과 적용, 그림자 추가

7deb9e21ecd418986abce8954483766876313b

사실 처음에는 아이작의 몸 주변을 도는 투사체를 막아주는 파리 보호막처럼 천천히 이동시켜줄 생각이었는데,

이게 느리다보니 같은 대상을 계속 때리려면 기본 ontriggerenter/exit/stay 등으로는 해결이 안되는 문제가 있었음.


1eb3d136a59a69ef20afd8b236ef203ed45e05dc51aba1df

따라서 hashset에 넣어주고 exit되지 않으면 데미지틱마다 데미지를 주도록 했는데,

이렇게 하니 또 생긴 문제가 기껏 투사체 속도를 증가시켜서 방패가 빠르게 회전하게 하면

요렇게 한 의미도 사라지고 빠르게 회전하다보니 느릴 때에 비해 보스같은 피통 많은 단일 몹을 상대할 때에는 손해가 되버리는 점.


고민을 해보았는데, 원신의 향릉 원폭이나 롤의 아우솔을 생각해보면

얘네들도 한바퀴 돌아서 투사체가 몹 밖으로 나갔다 다시 들어가야 딜을 주니

굳이 이럴필요가 없지 않을까 싶어졌다.



7de59e21ecd418986abce8954182726fd777ac

다만 이런식으로 해버리면 적이 쏜 탄막을 모두 막아버리는 절대 방어가 되어버리는 것 아닐까 싶어서

방패의 수나 속도를 적절히 조절해줘야 할 것 같음.


마지막으로 여타 장비들과 동일하게 레벨업 시에 공격을 한 번 더 진행하도록 해주었다.

7ced9e21ecd418986abce89547877d6bedaf53

이것 때문에 부득이하게 방패 투사체, 방패 관리, 장비 3가지 타입으로 나뉘어졌고,

쿨이 지속시간보다 짧아져도 대응이 가능해졌다.


7de49e21ecd418986abce89545847d640b11e2

요런 식으로 Summoned가 유휴 상태인 projectile을 사용해 회전시킨다.


다만 무기 사용 시작이 아닌 지속 시간이 끝난 이후 쿨타임이 돌도록 하게 해줄 생각이라

레벨업 시 외에 동시에 방패가 돌 일은 없을 것 같음.


참고로 easing은 dotween의 easing함수를 빼와서 만들어주었음.

1eb3d136a59a6aef20afd8b236ef203e94c893216d82384a





공전은 플레이어 자식으로 넣고 돌리면 끝 아니야? 싶을 수도 있지만

그러면 매번 자식 객체 각도 identity로 설정해준다던지,

플레이어 오브젝트의 자식이 된다던지 이런 부분이 별로 마음에 들지 않아서 요렇게 구현해주었다.


다음 개발일지는 정말로 필드 드롭 랜덤 보상이 될 것 같다.

반짝