- 개요
Cinemachine 플러그인을 추가하여 플레이어의 시점과 카메라를 통일한다
또 애니메이션 리깅을 추가하여 조준하는 동작을 연출한다
- 스크립트 작업
1) PlayerLookAim 클래스

PlayerLookAim 클래스는 마우스 커서에 따라 조준선을 움직이는 역할을 수행한다
멤버변수의 구성은 위와 같다
- crossHair 멤버변수 : 조준선 UI
- worldPosition 멤버변수 : 월드 좌표계
- scenePosition 멤버변수 : 스크린 좌표계

Start 함수를 위와 같이 오버라이드하여 Game 뷰에서 마우스 커서를 숨기도록 설정한다

FixedUpdate 함수를 위와 같이 오버라이드한다
- Input System에서 마우스 커서의 위치값을 읽어와 mousePos에 저장
- mousePos를 기반으로 스크린 좌표계의 값을 가져와 screenPosition에 저장
- ScreenToWorldPoint 함수를 호출하여 스크린 좌표계의 값을 월드 좌표계로 변환하고 worldPosition에 저장
- 해당 클래스가 수식된 오브젝트의 위치를 worldPosition의 값으로 수정
- 조준선 UI의 위치값을 mousePos의 값으로 수정
- 애셋 작업
1) Cinemachine + 애니메이션 리깅
1 - 1) Cinemachine 설정

Cinemachine Camera 컴포넌트를 위와 같이 설정한다
- Tracking Target 속성 : 플레이어 캐릭터를 카메라가 따라다닐 대상으로 설정
- Position Control 속성 + Rotation Control 속성 : 위와 같이 설정하여 숄더뷰 3인칭 카메라를 설정
- Add Extension 속성 : Cinemachine Deoccluder 컴포넌트를 추가

Cinemachine Deoccluder 컴포넌트를 위와 같이 추가하여 카메라의 충돌 처리를 진행한다
Wall 태그를 지닌 벽과 같은 오브젝트를 대상으로 충돌 처리를 진행하고
Player 태그를 지닌 오브젝트는 무시하도록 설정한다
1 - 2) 애니메이션 리깅

플레이어 캐릭터에 Rig Setup을 선택하여 리깅 오브젝트를 추가한다

AimSpine1 오브젝트는 위와 같이 구성하였다
PlayerLookAim 컴포넌트가 수식된 오브젝트를 기준으로 Spine 본이 회전하도록 설정한다
회전 범위는 -90° ~ 90°로 설정한다

AimSpine2 오브젝트는 위와 같이 구성하였다
PlayerLookAim 컴포넌트가 수식된 오브젝트를 기준으로 Spine1 본이 회전하도록 설정한다
회전 범위는 -180° ~ 180°로 설정하여 AimSpine1보다 더 많이 회전하도록 설정한다

AimHead 오브젝트는 위와 같이 구성하였다
PlayerLookAim 컴포넌트가 수식된 오브젝트를 기준으로 Head 본이 회전하도록 설정한다
회전 범위는 -180° ~ 180°로 설정한다
- 최종 실행 결과

'유니티 엔진 - 게임 프로젝트 > Photon을 사용한 멀티 플레이어 게임' 카테고리의 다른 글
| 서버 연결 - 1) Photon PUN의 사용 (0) | 2026.03.09 |
|---|---|
| 프로젝트 세팅 - 최종) 엄지 손가락 리깅 추가 (0) | 2026.03.09 |
| 프로젝트 세팅 - 개선) InputManager 추가 (0) | 2026.02.24 |
| 프로젝트 세팅 - 2) 무기 변경과 리깅 (0) | 2026.02.23 |
| 프로젝트 세팅 - 1) 플레이어의 입력 + 애니메이션 처리 (0) | 2026.02.18 |