안녕하세용 이번주도 죽지않고 돌아왔습니다
이번에는 무기 시스템을 개편했어용
기존에도 마우스를 옮겨서 사격하는 방식을 채택했지만, 2D 횡스크롤에서 3D 탑뷰로 바뀌다 보니 이 부분도 변화가 필요했어요
그래서 처음부터 끝까지 총기를 비롯한 무기를 사용해서 전투하는 시나리오를 다시 개편해보았답니다
우선은 총기의 종류가 꽤 다양해질것 같아서 데이터들을 쉽게 관리하고 싶었어요
그래서 기존의 CSV 데이터에서 ScriptableObject 데이터로 넘어가면 좋을것 같았어요
그래서 ScriptableObject를 기반한 무기 데이터에 정보와 무기종류에 따른 행동 등 필요한 기능을 넣어줬습니다
SerializeReference를 사용하니까 무기의 행동도 클래스로 정의할 수 있었어요 덕분에 크게 돌아가지 않아도 됐어요
그리고 CSV를 파서로 불러와서 데이터에 올리던 방식을 SO 객체들을 어드레서블을 사용해 불러오는 방식으로 바꿨습니다
다양한 무기를 패치할때 요긴하게 쓰일것 같아용
이제 기능을 구현해야하는데, 기존의 (나름 수제) 2D 애니메이션 체계를 기반으로한 조준 시스템을 3D 모델에 적용시켜야 했어요.
그래서 Animation Rigging을 사용해서 캐릭터가 조준점을 따라 조준하는 기능을 우선으로 구현했답니다
그 다음엔 투사체를 소환하는 기능과 더불어 기본적인 총기 사격 시스템을 만들어놓고
추가로 투사체를 활용해 콤보 공격이 가능한 근접 공격 시스템도 만들어 두었어요
아직 IK 사용이 익숙치 않아서 애니메이션은 이상하지만 투척물을 던지는 시퀀스도 만들었어용
그러다 기본적인 동사가 어느정도 완성이 되어서, 무기의 종류를 다양하게 만들어보고자 샷건이랑 돌멩이를 넣어봤고
조금 디테일을 얹고 오류를 수정해서 아래 영상처럼 구현해보았어요!
앞으로 이 시스템을 활용해서 무기의 종류를 더 추가하고
개조, 밸런스 조정, 애니메이션 같은 디테일 개선도 이루어질 예정이랍니다
특히 잠입요소와의 조화가 중요하다고 생각해서, 잠입요소를 대대적으로 손보기 전에 무기 시스템을 손볼듯 해용
뒤에서 공격하면 즉사시킬수 있는 암살 기능과 기본적인 콤보 공격을 완성해보았어용
암살은 즉사기라 너무 치명적이라서 은신에 패널티를 주거나 횟수 제한을 두는 등 밸런스 조절이 필요해보여요
그리고 총기 시스템을 활용해서 권총, 소총만 만들어두었는데, 이번에 펌프액션 산탄총까지 넣어서 구현해봤어요
펌프액션이랑 탄을 장전하는 시퀀스, 그리고 탄퍼짐을 구현하려고 해보았답니다
총기마다의 조준 거리도 다르게 해서 마우스를 영역 안으로 제한시켜뒀어요
정확도 밸런스를 조정할 수 있고 개조 옵션을 추가할 수 있을거라고 기대하고 있어요
추가로 반동, 탄퍼짐 등 디테일을 위한 여러 기능도 구현할 예정이에용
투척물은 포물선과 직선 두가지 방식으로 날아가도록 구현해뒀어요. 무기의 컨셉에 맞춰서 날아갈듯 합니다
던지는 애니메이션이 많이 이상해서 후에 꼭 손봐야겠어요.. 믹사모 애니메이션을 IK Rig 위에 억지로 얹으려고 해서 그런가봐요
적을 유인하는 돌멩이, 시야를 방해하는 연막탄, 적들을 기절시키는 섬광탄 등
다양한 투척물을 넣어볼 수 있을것 같아요
이번주까지 무기 시스템을 만들면서 자료구조를 바꾸게 되었는데, 자연스럽게 아이템, 스킬, 퀘스트 등 RPG와 관련된 시스템으로 넘어가고 싶더라구요
이 기본적인 시스템들이 완성되고 나서는 무장/개조->은신->전투->스테이지 클리어 라는 플로우를 짜보려고 해요
다음주에는 아이템과 스킬 이야기로 돌아오겠습니다!
이번주도 다들 화이팅입니다! 꽃샘추위 조심하세요~
고순데?
이 댓글은 게시물 작성자가 삭제하였습니다.