유니티 게임 개발/3D Portfolio

[유니티] 3D Portfolio #4 전투 모션 구현

노랑꼬리 2023. 8. 22. 14:11

목표

장비 착용, 해제 구현

장비 미 착용 시 전투 (복싱), 장비 착용 시 전투 (검방) 애니메이션 구현

(작업 기간 2023.08.20 ~ 08. 22 (3일 소요))

 

1. 장비 착용, 해제

- 게임 매니저 (싱글톤) 에서 관리하는 bool 값 변수를 사용하여 장비 소유 여부, 착용 여부 체크

ㄴ 아이템 획득 (PickUpActionController) 스크립트에서 장비 획득 시 true로 활성

 

- 액션 시 움직임 및 다른 액션 입력이 되지 않도록 코루틴을 활용하여 제어 bool 값 사용

ㄴ 입력 받는 Update 문에 if(!isAction)을 사용하여 입력 방지

ㄴ 움직임 별로 애니메이션 시간이 다르므로매개변수로 조정

 

- 장비 소유시 장착 액션 사용가능

 

2. 기본 액션 구현

- 통상 움직임 상태에서 공격 버튼 (F키)를 누를 시 전투 모드 활성화

ㄴ 장비 착용 혹은 아이템 획득 액션 시 전투 모드 비활성화

 

- 전투 모드 활성화 시 카메라 정면을 바라보도록 캐릭터 고정

ㄴ 단, 화면 이동과 동시에 움직임 입력시 캐릭터도 회전 (공격 도중 이동은 제한)

(게임들에서 사용하는 공격 시 화면 회전을 이용한 피격범위 증가, 공격 속도 증가 테크닉의 사용을 위함)

(이동 버튼을 누르지 않고 공격만 사용 시 카메라 회전으로 액션 관찰 가능)

(완전 고정으로 할 시 오히려 불편한 조작감 또한 있었음)

 

- 랜덤 함수를 활용하여 랜덤 공격 모션 사용

ㄴ 무기 장비 여부에 따라 액션이 다르다.

 

 

3. 콤보 액션 구현

- GetCurrentAnimatorStateInfo(0).IsTag("")를 사용하여 현재 연속 공격이 가능한 액션일 경우 공격 버튼 추가 입력시 콤보 액션 진행

ㄴ 플레이어가 1회 공격을 원할 때 콤보액션이 나가지 않도록 Action(0.2f)를 주어 직관성 증가

 

- 콤보 액션 시 자연스러운 연결을 위해 1회 공격 애니메이션 중간부터 이어지도록 세팅

 

 

4. 결과물