유니티 게임 개발/3D Portfolio

[유니티] 3D Portfolio #6 전투 시스템 제작

노랑꼬리 2023. 8. 29. 13:39

목표

플레이어 무기 콜라이더 제작

적에게 플레이어 접근 시 추적 (테스트 용은 고정위치, 방향만 추적)

적 피격시 부위별 피격 애니메이션 (경직 있음), 사망 애니메이션 재생

플레이어 피격 시 타격 애니메이션 (경직 없음)

(작업 기간 2023.08.26 ~ 08. 29 (4일 소요))

 

 

1. 플레이어 무기 콜라이더 제작

- 복싱 전투 (주먹과 발에 콜라이더)

- 검방 (검과 방패에 콜라이더)

 

 

 

2. 적이 플레이어 추적

- 적에게 탐색범위 콜라이더를 부여

ㄴ 탐색 범위 내로 들어올 시 플레이어를 향해 바라봄

ㄴ Quaternion.Slerp() 를 사용하여 부드럽게 추적

 

- 공격 범위안에 들어오면 공격 수행

ㄴ 레이캐스트로 정면 체크

ㄴ 공격 쿨타임 코루틴으로 부여

 

 

3. 적 부위별 피격

- 머리와 몸통 본 오브젝트에 콜라이더 생성 후 스크립트 부여

ㄴ 리지드 바디를 본 오브젝트에 키네틱으로 넣어주어 따로 판별하도록 함

ㄴ 스크립트는 피격 계수와 피격 부위 애니메이션 정보를 가지고 있음

(적 메인 스크립트에서 콜라이더 태그로 판결해도 되나 태그가 번잡해지는 것보다 스크립트에서 처리하는게 좋은 것 같아서 해당 방식 사용)

 

- 피격 이후 일정 시간 동안은 무적판정

 

 

4. 플레이어 피격

- 적 피격과 같은 방식으로 구현

- 애니메이션 부분은 상체 아바타만 적용되는 애니메이션 레이어를 추가로 만들어 블랜딩 값을 Additive로 기존 움직임에 자연스럽게 추가하여줌.

ㄴ오늘코딩 유튜브 참고하여 제작

( https://www.youtube.com/watch?v=gj3gMhMZWoE )

 

 

5. 결과물

※ 영상에 나오는 죽어서도 추적하는 오류는 해결되었음