2025-05-27

이번 Sample Scene 을 통해서는 여러 개의 자식 카메라 중 가장 뷰가 좋은 카메라를 자동으로 선택하여 활성화하는 Clear Shot 에 대해 알아볼 수 있었다.
Cameron 이 장애물에 가려질 때마다, 자동으로 CM telephoto, CM overhead, CM behind 로 전환하여 최적의 화면을 보여준다.
| Hierarchy | Cinemachine ClearShot | Cinemachine Deoccluder |
|---|---|---|
![]() | ![]() | ![]() |
Sample Scene 에 구현된 CM ClearShot 객체에 Cinemachine ClearShot 과 Cinemachine Deoccluder 컴포넌트가 붙어 있었다.
먼저 Deoccluder 의 뜻부터 알아보자.
Occlusion Culling : 3D 장면에서 렌더링될 필요가 없는 객체를 제외시키는 기술,
Occluder : 오클루전 컬링에서, 카메라에 가려져 보이지않는 객체를 렌더링하지 않도록 하는 객체,
따라서 Deoccluder 는 그 반대로, 카메라가 대상을 가리는 장애물 (Occluder) 를 자동으로 피해 잘 보이게 만드는 것이다.
Cinemachine ClearShot 프로퍼티
| 항목 | 설명 |
|---|---|
| Default Target | 부모 ClearShot 카메라에 설정된 Tracking Target을 자식 카메라들이 자동 상속하게 할지 여부. 체크하면 각 자식 카메라에 따로 Target을 지정하지 않아도 됨. |
| Activate After | 현재 활성 자식 카메라를 최소한 유지해야 하는 시간(초). |
| Min Duration | 한 자식 카메라가 활성화된 최소 지속 시간(초)을 지정. |
| Randomize Choice | 같은 점수를 가진 복수의 자식 카메라 중에서 무작위로 선택할지를 설정. 자연스러운 변화를 줄지, 우선순위에 따를지를 지정. |
| Default Blend | ClearShot 가 카메라 전환 시 사용하는 기본 Blend 방식. Ex) Cut, Ease In Out 등 |
| Custom Blends | 자식 카메라 간 전환 시 특정 카메라 조합에 대해 개별적으로 전환 방식을 설정. Ex) A → B : Ease In, B → C : Cut 등 |
| Child Cameras | ClearShot 하위에 있는 Cinemachine Camera 들의 리스트. ClearShot은 이 중에서 시야가 가장 명확한 카메라를 자동으로 선택합니다. 각 자식 카메라는 자체적으로 Follow, LookAt, Composition 설정을 가질 수 있음. |
이 중, Activate After 과 Min Duration 의 설명이 잘 이해가 가지 않아 조금 더 찾아보았다.
| 항목 | Activate After | Min Duration |
|---|---|---|
| 목적 | 새로운 카메라로 전환을 유예 | 현재 선택된 자식 카메라가 최소한 유지되어야 하는 시간 |
| 동작 시점 | 다른 자식 카메라가 더 나은 시야를 제공하더라도, Activate After 동안 기다려야 함 | 이미 자식 카메라가 A 로 전환된 경우, Min Duration 동안은 다른 카메라로 전환되지 않음 |
| 요약 | 전환을 보류하는 시간 | 한 번 선택된 카메라를 버티는 시간 |
카메라 전환이 자연스럽고 안정적으로 보이게 위해서는 해당 프로퍼티를 잘 조절하면 될 것 같다.
Unity - Cinemachine Deoccluder
자식 카메라 객체가 아닌 ClearShot 객체에 Cinemachine Deoccluder 컴포넌트를 추가해야 한다.
ClearShot 객체에 Deoccluder 컴포넌트를 추가하여, 모든 자식 객체에 적용되며,
각 자식 객체가 해당 Deoccluder 를 별도의 컴포넌트를 가지고 있는 것처럼 동작하기 때문이다.
Cinemachine Deoccluder 프로퍼티
| 항목 | 설명 |
|---|---|
| Collide Against | 충돌 감지할 레이어 설정 |
| Ignore Tag | 무시할 태그 지정. 타겟의 태그로 설정하는 것이 좋음 |
| Transparent Layers | 해당 레이어의 객체는 대상의 시야를 가리지 않음 |
| Minimum Distance From Target | 타겟에 너무 가까워지는 것 방지 |
| Avoid Obstacles | 장애물을 회피할지 여부 |
| Shot Quality Evaluation | 품질 기반 점수 평가 사용 |
| └ Optimal Distance | 이상적인 카메라와 타겟 간의거리. 0보다 큰 값을 지정하면, 이 거리만큼 떨어져 있을 때 최대 품질 |
| └ Near/Far Limit | 거리 제한에 따른 점수 감소 |
| └ Max Quality Boost | 고품질 촬영에는 일반 품질 대비 해당 비율만큼 품질 향상 적용 |
해당 프로퍼티를 통해 Sample Scene 의 Cinemachine Deoccluder 를 분석해보면
를 가진다.
이러한 시야 점수를 통해 우선순위를 매겨, Cinemachine ClearShot 이 상황에 맞게
가장 최적의 장면을 유저에게 제공하는 매커니즘이다.