✍️ 개요
이전 포스터에서 3인칭 시점 가상 카메라를 생성한 적이 있습니다.
[ 3인칭 시점 가상 카메라 구현 방법 ]
[Cinemachine] 3인칭 시점 구현
✍️ 개요 3인칭 시점은 Unity 3D 게임을 제작할 때 많이 사용합니다. 그래서 유니티는 Cinemachine 카메라에 3인칭 시점에 대한 제어를 제공하고 있어요. 오늘은 Cinemachine을 활용하여 3인칭 시점을
gus6615.tistory.com
하지만 위 방식으로 생성한 3인칭 시점 가상 카메라는 벽을 뚧는 문제가 발생합니다.
그래서 저희는 충돌체를 생성하여 가상 카메라가 충돌을 감지하도록 할 필요가 있습니다.
📌 충돌체 추가하기
사실 이미 Starter Asset 에는 수많은 충돌체(Collider)가 존재합니다.
따로 충돌체를 추가할 필요는 없지만 방법을 설명하도록 하겠습니다.
① [ Add Component ] 을 눌러 [ {type} Collider ] 을 선택합니다.
② 원하는 Collider 가 추가되었는지 체크합니다.
③ Collider 충돌체의 외곽선이 오브젝트를 잘 감싸는 지 체크합니다.
이 과정을 통해 충돌체를 추가할 수 있습니다.
📌 카메라와 충돌체 상호작용 구현
방법은 매우 간단합니다.
Cinemachine Third Person Follow 컴포넌트의 [ Avoid Obstacles ] 을 체크합니다.
짜잔~ 이러면 카메라가 벽을 뚧고 지나가는 현상을 없앨 수 있습니다.
매우 간단하면서 강력한 기능이죠?
📌 충돌체 회피 고급 기능
충돌체 회피 (Avoid Obstacles) 기능은 충돌체를 미리 계산하여 카메라의 위치를 조정하는 강력한 기능입니다.
하지만 위치를 조정하는 과정에서 특정 충돌체만 감지하거나, 위치 조정을 부드럽게 하고 싶을 수 있습니다.
지금부터 Avoid Obstacles 을 선택하면 나타나는 프로퍼티에 대해 알아보겠습니다.
① Collision Filter
- 충돌을 회피할 레이어를 설정합니다.
- [ Flags ] 을 활용한 Masking 데이타 타입입니다.
② Ignore Tag
- 해당 태그를 보유한 장애물은 충돌을 회피하지 않습니다.
③ Camera Radius
- 카메라의 충돌 반경입니다.
④ Damping into collision
- 정상 위치에서 충돌 회피가 계산된 위치로 이동할 때 천천히 움직입니다.
- 숫자가 클수록 천천히 움직입니다.
⑤ Damping from collision
- 충돌 회피가 계산된 위치에서 정상 위치로 이동할 때 천천히 움직입니다.
- 숫자가 클수록 천천히 움직입니다.
[ 즉각적인 반응을 원할 때 ]
[ 점진적인 반응을 원할 때 ]
※ 주의! 점진적인 반응을 수행하면 도중에 벽을 뚧는 현상이 나타날 수 있어요.
📝 정리
오늘은 3인칭 시점에서 카메라와 오브젝트 간의 충돌에 대해 알아봤습니다.
Cinemachine Third Person Follow 프로퍼티 중 하나인 Avoid Obstacles 을 통해
카메라와 오브젝트 충돌을 구현할 수 있다는 사실을 알았습니다.
또한, Avoid Obstacles 내부 프로퍼티를 통해 확장 가능한 충돌 기능을 살펴봤습니다.
'유니티(Unity) > 패키지: Cinemachine 정리' 카테고리의 다른 글
[Cinemachine] RPG 캐릭터 시점 구현 (0) | 2024.12.05 |
---|---|
[Cinemachine] 타겟 기반 시점 구현 (0) | 2024.12.03 |
[Cinemachine] 2.5D 구현 (3D 환경에서 2D 구현) (1) | 2024.12.02 |
[Cinemachine] 3인칭 시점 구현 (1) | 2024.12.01 |
[Cinemachine] 시네머신 동작 원리 (2) | 2024.11.30 |