Projects(27)
-
[Charon] #7. 무기 기본 3타 콤보 공격 구현하기 (긴 글 주의)
저번 글에서 확장성을 고려하여 무기 시스템의 기반을 만들었었습니다. 이제는 진짜 무기의 공격 구현을 해볼 차례네요. 공격 키를 입력 받아야 하니 새로운 입력 키 바인딩이 필요할 것이고, 단순히 눌렀을 때냐 아니면 누르고 유지하고 있을 때냐 등등의 상호작용도 추가해줘야 할 겁니다. 우선 입력 처리부터 먼저 해보도록 하겠습니다. 1. 공격 키 바인딩 및 입력 분기 처리하기 New Input System의 "상호 작용(Interaction)" 공격은 마우스 좌 클릭으로 입력을 받습니다. Player Input Actions에 들어가서 해당 키 바인딩을 해주도록 하죠. 왼쪽 마우스 버튼을 바인딩 해주었습니다. 그런데 Interactions에 Hold와 Press가 추가한 걸 볼 수 있는데요. 상호작용(Inter..
2022.10.06 -
[Charon] #6. 휴머노이드 애니메이션 수정과 무기 탈장착 시스템 기반 만들기
로그라이크 게임이니, 무기를 사용하여 몬스터들을 때려잡을 수 있어야 할 겁니다. 그만큼 무기라는 것이 우리 게임에서 핵심이 된다는 얘기죠. 우선 우리 게임의 기본 무기인 "카론의 노(Charon's Paddle)"로 기능을 구현해볼 겁니다. 하지만 이번 글에서는 그 기반만 먼저 다져볼까 해요! 솔직히 말해서 무기가 노처럼 생기진 않았습니다. 구매했던 무기 에셋 중에 그나마 노 같이 생긴 걸로 쥐어 주었어요... 그리고 게임 그래픽이 너무 밋밋한 것 같아서 URP(Universal Render Pipeline)으로 프로젝트를 업그레이드 하고 싶었는데, 커스텀 쉐이더(Custom shader)는 URP Shader로 자동 변환이 안 되더라구요. 현재 구입했던 에셋 중에 물과 검기 이펙트 에셋이 커스템 쉐이더..
2022.10.05 -
[Charon] #5. 상태 패턴(State Pattern) 도입하기
모듈화의 필요성을 느끼다 기존 PlayerController 스크립트를 통해 기능을 추가하려면, 기존 소스코드를 수정해야 해서 확장이 어려웠습니다. 저희 게임에는 대시, 대시 공격, 차지 공격, 기본 공격 콤보 3타 등등 한 상태에서 다른 상태로 분기되는 동작들이 많았습니다. 그래서 지금 코드 구조로 계속 확장하다가는 세계 제일의 스파게티를 만들 것 같아서 구조 변경이 필요하다고 생각했습니다. 이전에 디자인 패턴(Degisn Pattern)들을 보던 중, 상태 패턴(State Pattern)을 적용하면 Controller의 기능을 추가하는 게 굉장히 쉬울 것 같았습니다. 제가 어떤 식으로 구조를 바꾸었는지 아래에서 보면서 천천히 설명해 드릴게요. 1. 모든 상태들의 기원이 되는 부모 추상 클래스, Bas..
2022.10.04 -
[Charon] #4. RigidBody를 이용한 3D 캐릭터 N단 대시(Dash) 구현하기
오랜만에 다시 카론(Charon) 게임 프로젝트 글을 올리는 것 같네요. 그동안 이것저것 또 열심히 했습니다. 비록 컴퓨터공학과 4학년이지만 학과 MT를 가보기도 하고, 추석 할인 세일을 하길래 인프런에서 강의 2개를 사서 조금씩 보기도 했습니다. 이제 슬슬 졸업 작품 발표 기한도 다가오는 지라, 개발 계획 및 범위를 다시 재조정할 필요가 있다고 느껴 저번 주에 회의를 진행했었습니다. 이제 한동안은 카론(Charon) 프로젝트와 코딩테스트 게시글이 주를 이루겠네요. 이번 주에 제가 맡은 개발은 캐릭터의 대시(Dash) 기능입니다. 사실 저번에 이미 구현했던 기능이지만, 문제점들이 많았던 관계로 수정을 해 나갔지요. 추가) 2023-11-24 본 글과 같이 만든 대시는 부자연스럽기 때문에, 리팩토링을 진행..
2022.09.21 -
[Charon] #3. RigidBody를 사용한 3D 캐릭터의 경사로(Slope) 지형 이동 구현하기
오랜만에 다시 포스팅을 올리네요. 그동안 다른 교육 프로그램을 듣는다고 바빠서 카론 개발을 못 했습니다. FPS 게임 개발은 처음 진행해봤는데, 어릴 때 카운터스트라이크 온라인 좀비 시나리오 모드를 좋아했던 기억을 되살려 재미있게 만들었던 것 같습니다. 나중에 기획을 제대로 해서 사이드 프로젝트로 하나 진행해보고 싶네요. 멀티 플레이도 된다면 금상첨화겠지만 그거까지 하려면 갈 길이 굉장히 멀 것 같습니다.ㅎㅎㅎ... 잡담은 여기까지 하도록 하고, 저번 글에서는 이동 애니메이션 싱크 맞추는 것까지 했었죠? 평지에서는 아무런 문제가 없었지만 계단과 같은 경사 지형인 경우에는 수많은 문제가 발생했었습니다. 그래서 손을 봐야할 내용들이 좀 굉장히 많았어요. 그래도 하나하나 찾아보며 공부했기에 나름 의미있는 시간..
2022.08.30 -
[Charon] #2. 이동 애니메이션(Move Animation) 적용 및 싱크(Sync) 맞추기
1. 애니메이션 가져오기 캐릭터 모델이 휴머노이드가 아니라서 리타겟팅을 못 사용하는 경우 저는 에셋 스토어에서 캐릭터 모델을 샀고, Humonoid Animation Retargeting을 이용하여 Mixamo 사이트에 있는 애니메이션들을 재사용하려고 했습니다. 그런데, 구매한 에셋이 휴머노이드 모델이 아니더라구요. 그래서 Mixamo 사이트 애니메이션들을 적용하질 못 했습니다. 기존 휴머노이드 뼈대 구조와 구매한 에셋의 뼈대 구조가 달랐기에, 매칭이 안 되는 문제가 발생하더라구요. 그래서 그냥 3D 툴(Blender, Maya 같은)에 가져와서 뼈대를 모두 제거 후, Mixamo 사이트에 오토 리깅(Auto Rigging)이라는 기능을 이용하여 자동으로 휴머노이드 뼈대 구조를 등록해 주었습니다. 이전에..
2022.08.18