유니티

유니티 08. 3D Animations / Simple Combat

채채_._. 2024. 5. 29. 08:05

게임 월드 구성과 플레이어 캐릭터

 

 

- 제공된 프로젝트와 asset을 모두 다운 후 gameworld라는 prefab을 hierarchy view에 적용.

 

- Main Camera 포지션을 0, 10, -6으로 설정.

- 회전을 60, 0, 0으로 설정.

 

 

- 모델의 크기가 작기 때문에 모델의 크기를 키움.

 

 

- Rig > Optimize Game Objects

- 오른손에 무기를 쥐기 위해 rightArm만 활성화 하도록 설정.

 

[Script]

Serial > Serialize

 

- 마우스 이동 정보로 카메라 회전

- 마우스 wheelScroll 정보로 타겟과의 거리 제어

- 타겟으로부터 distance 만큼 뒤로 떨어져서 타겟 쫓아감.

 

 

- script target 변수 안에 새로 생성한 cameraTarget player를 적용.

 

 

- 카메라가 플레이어의 자식으로 있는 카메라 타겟을 기준으로 이동, 회전을 함.

 

플레이어 캐릭터 이동

 

[Script]

이동제어하는 스크립트 / 플레이어 제어하는 스크립트

 

- player에 해당 스크립트들과 character controller 컴포넌트 추가.

- Offset : 0.4 / Center : 0,0,1

 

[결과]

- 카메라가 보는 방향 기준으로 우리가 입력하는 방향키 방향으로 캐릭터 이동.

 

[Script]

 

- 플레이어가 카메라가 보는 전방 방향을 볼 수 있도록 스크립트 수정.

 

플레이어 캐릭터 물리와 점프

 

[Script]

Movement3D

 

PlayerController

 

- 플레이어의 점프 함수 적용을 위해 script 수정

 

[결과]

- 적용하면 기존에 했던 점프 실습처럼 spacebar 누르면 점프 구현 가능.

 

플레이어 캐릭터 대기/이동, 점프 애니메이션

 

 

 

- 무기를 적용하여 포지션 -0.08, -0.1, 0.03 / 회전 : 70, 70, 230

- Materials에 캐릭터 적용

 

 

- player에서의 캐릭터에 animator에 새로 만든 animatorController asset을 적용.

 

 

- animator > blendtree movement 추가.

 

- 파라미터 vertical 추가 후 blend tree에 두개의 파라미터 적용.

- motion list 적용.

 

- Movement와 2Hand-Sword-Jump 사이에 양방향으로 이어지는 transition 생성.

- 공격과 이동에 이벤트 함수가 설정되어 있는데 실습에서 사용하는 애니메이션 클립의 Events에 가서 이벤트 함수 삭제.

 

[Script]

PlayerAnimator / PlayerController

[결과]

- 대기, 이동, 점프를 통해 애니메이션 재생.

 

플레이어 캐릭터 공격 애니메이션

발차기를 이용한 단일 공격 구현.