본문 바로가기

유니티/시네머신

[ 시네머신 ] 02 . 가상 카메라

[ 가상 카메라 ]

[ 정의 ]

단일 Unity카메라 사용 가상 카메라는 Unity카메라를 이동 및 회전하고 해당 설정을 제어한다 . (카메라의 애니메이터)

Unity 카메라의 제어권을 가상 카메라로 이전시 해당 설정들을 Unity카메라에 적용한다 .

 

가상카메라는 다음의 작업을 수행한다 .

  • 씬에 Unity 카메라를 배치합니다.
  • Unity 카메라가 무언가를 향하게 합니다.
  • Unity 카메라에 절차적 노이즈를 추가합니다. 노이즈는 핸드헬드 효과 또는 차량 흔들림과 같은 것을 시뮬레이션합니다.

[ Status ]

가상 카메라는 다음중 하나의 상태를 가지고 있다 .

  • Live : 시네머신 브레인이 있는 Unity Camera를 능동적으로 제어한다 . 시네머신 브레인이 원래 가상카메라에서 다음 가상카메라로  Blend 할 시 두 가상카메라 모두 Live상태이며  , Blend가 완료되면 하나의 Live카메라만 존재한다 .
  • Standby : 해당 가상 카메라는 Unity Camera를 제어하지 않지만 여전히 대상을 추적하고 조준하며 모든 프레임에서 업데이트 된다 . 이상태에서 가상카메라는 활성화후 라이브 가상 카메라와 같거나 낮은 우선순위를 가진다 .
  • Disabled :가상 카메라가  Unity Camera를 제어하지 않고 , 대상을 추적,조준하지 않는다 . 가상 카메라를 비활성화  하려면 해당 게임오브젝트를 비활성화 한다 .그러나 가상 카메라가 Blend 과정에 참여 혹은 타임라인에 호출된다면 여전히 Unity Camera를 제어 가능하다 .

Solo 토글은 가상 카메라를 일시적으로 라이브 상태로 만들지를 결정한다 . 

게임뷰에서 즉각적인 시각적 피드백을 얻어 가상 카메라의 조정이 가능하다 .

 

[ Game Window Guides / Svae During Play / Priority ]

Game Window Guides

게임뷰의 구도 가이드를 보여준다 .  Look At이 게임 오브젝트를 지정하고 Aim 섹션이 Composer 또는 Group Composer를 사용하거나, Follow가 타겟을 지정하고 Body 섹션이 Framing Composer를 사용하는 경우에 사용할 수 있다 .

해당 프로퍼티는 모든 가상 카메라에 적용된다 .

 

Save During Play

플레이 모드간의 변경사항을 적용한다 . 해당 프로퍼티는 모든 가상 카메라에 적용된다 .

 

Priority

다음 샷을 선택하기 위한 이 가상 카메라의 중요도이다. 값이 높을수록 우선 순위가 높습니다.

시네머신 브레인은 활성화되어 있고 현재 라이브 가상 카메라와 같거나 더 높은 우선 순위를 지닌 모든 가상 카메라에서 다음 라이브 가상 카메라를 선택한다 .

타임라인에서 가상 카메라를 사용할 때는 이 프로퍼티가 적용되지 않는다 .

 

[ Follow와 LookAt ]

Follow는 이동의 대상 / LookAt은 회전의 대상을 지정한다 . 

Unity 카메라가 가상 카메라의 트랜스폼 포지션/방향을 사용하도록 만들려면 두 프로퍼티를 비워두자 .

 

[ Standby Update ]

라이브가 아닌 가상 카메라가 얼마나 자주 업데이트 할 지 정한다 .

Never는 Live인 경우에만 업데이트 한다 .

Always은 매 프레임마다 업데이트 한다 .

Round Robin때때로 가상 카메라를 업데이트한다. 정확한 빈도는 Standby인 다른 가상 카메라의 수에 따라 다르다 .

 

[ Lens ]

유니티 카메라의 상응 프로퍼티를 미러링 한다 .해당 속성은 Cinemachine Brain 컴포넌트가 포함된 Unity 카메라의 값
(Perspective / Orthographic)에 따라 다른 값을 보인다. 또한 Live 대상인 가상 카메라의 해당 값을 받기 때문에 직접 조작이 안된다 . 

 

case 1 : Unity Camera가 Perspective 인 경우

Vertical Fov 수직 각도의 카메라 뷰이다.

예를 들어 Super 35 센서에서 50mm 렌즈에 해당하도록 지정하려면  19.6도의 시야각을 입력한다.

이 프로퍼티는 Cinemachine Brain 컴포넌트가 포함된 Unity 카메라가 원근 투사를 사용할 때 이용할 수 있다.

 

case 2 : Unity Camera가 Orthographic 인 경우

Ortho Size직교 카메라를 사용할 때 카메라 뷰의 절반 높이를 월드 좌표로 정의한다.

Cinemachine Brain 컴포넌트가 포함된 Unity 카메라가 직교 투사를 사용할 때 이용할 수 있다 .

 

공통 속성

NearClipPalane는 그리기가 발생하는 카메라와 상대적으로 가장 가까운 포인트이다.

 

FarClipPalane는 그리기가 발생하는 카메라와 상대적으로 가장 먼 포인트이다.

 

=>Dutch는 Z축에서 Unity 카메라를 각도 단위로 기울인다.

이 속성은 가상 카메라에 고유하기에 Unity 카메라에는 상응하는 속성이 없다 .

 

=>Mode Override 시네머신이 이 가상 카메라를 활성화할 때 ,

Unity 카메라 컴포넌트에 적용할 다른 카메라 모드를 선택할 수 있다 .

이 설정을 통해 카메라 컴포넌트에 적용된 모든 변경 사항은 가상 카메라가 비활성화 후에도 유지된다.

가상 카메라에서 Mode Override를 설정하는 경우 모든 가상 카메라에서 하나만 설정해야 한다 .

옵션은 다음과 같다 .

None은 카메라에서 투영 및 물리적 카메라 속성을 변경하지 않고 그대로 둔다 .

Orthographic / perspective는 Unity카메라를 해당 모드로 변경한다 .

Physical은 투영 속성을 원근으로 설정하고 물리적 카메라 기능 및 속성을 활성화합니다.

 

[ Transitioin ]

카메라를 전환 설정 중 Transitions는 카메라 사이를 이동을 제어한다.

 

Inherit Position은 라이브상태일때 Unity카메라의 좌표로  가상 카메라가 실제로 이동한다 .

 

Blend Hint 는 가상 카메라의 Blending 에 대한 힌트이다 .

  • CylindricalPosition: 원기둥을 따라 블렌딩
  • None : 직선을 따라 블렌딩
  • ScreenSpaceAimWhenTargetsDiffer : 다른 카메라의 LookAt 사이의 각도에  맞춰 블렌딩
  • SphericalPosition : 원을 따라 블렌딩

상세한 내용은 다음의 블로그를 참고하자

 

[ Body 속성 ]

Body는 씬에서 움직이는 방식을 지정한다 .

  • Do Nothing : 가상 카메라를 움직이지 않습니다.
  • 3rd Person follow: 카메라를 플레이어 주변의 수평 및 수직으로 따라가기 대상으로 회전한다 .
  • Framing Transposer : 선택적 댐핑을 사용하여 팔로우 대상 에 대해 고정된 화면 공간 관계로 이동합니다 .
  • Hard Lock to Target : 추적 대상에 동일한 위치를 사용합니다 .
  • Orbital Transposer : 플레이어의 입력을 선택적으로 수락하여 Follow 대상에 대한 가변 관계로 이동합니다 .
  • Tracked Dolly : 미리 정의된 경로를 따라 이동합니다.
  • Transposer : 선택적 댐핑과 함께팔로우 대상 에 대해 고정된 관계로 이동합니다 .

[ Body - 샷의 구성 ]

Body의 속성중 Framing Transposer, Composer  Group Composer 는 샷을 구성할 카메라 프레임의 영역을 정의한다

  • Dead Zone ( 투명 영역 ) : 시네머신이 타겟을 유지하는 프레임 영역입니다.
  • Soft Zone ( 파란 영역 ) : 타겟이 프레임의 이 영역에 들어가면 카메라가 방향을 다시 설정하여 데드 존으로 돌려보냅니다. 이 작업은 Damping 설정에 지정된 시간에 따라 천천히 또는 빠르게 수행됩니다.
  • No Pass Area ( 빨간 영역 ) : 타겟이 절대 들어가지 않는 통과 금지 부분이다 .
  • Target ( 노란 사각형 ) : 타겟을 나타낸다 .

cf)

Damping :

카메라가 타겟을 추적하는 동안 타겟이 소프트 존 에 들어갈때 카메라의 응답을 빠르거나 느리게 지정한다.

작은 숫자를 사용하면 빠른 응답으로 카메라를 빠르게 움직이거나 조준하여 타겟을 데드 존 내에 유지할 수 있습니다.

숫자가 높을수록 더 무거운 카메라를 시뮬레이션하며, 시네머신이 타겟이 소프트 존에 더 많이 들어가도록 허용한다 .

 

[ Aim 속성 ]

씬에서 회전하는 방식을 지정한다 .

  • Composer : 컴포지션 제약 조건을 사용하여 카메라 프레임에서 Look At 대상을 유지합니다.
  • Group Composer : 카메라 프레임에 여러 Look At 대상을 유지합니다.
  • Do Nothing : 가상 카메라를 회전하지 않습니다.
  • POV : 사용자 입력에 따라 Virtual Camera를 회전시킵니다.
  • Same As Follow Target : 카메라의 회전을 FollowTarget 의 회전으로 설정합니다.
  • Hard Look At : 시선 대상을 카메라 프레임 중앙에 유지합니다.

[ Noise 속성 ]

실제 카메라와 같이 손에 들은 듯한 효과를 부여한다 .

ex) 달리는 캐릭터라면 카메라 흔들림을 추가한다 .

프레임이 업데이트될 때마다 시네머신은 카메라 움직임과 별도로 노이즈를 추가하여 타겟을 따라가도록 만든다.

노이즈는 이후 프레임에서 카메라의 포지션에 영향을 주지 않는다.

이러한 분리를 통해 Damping등의  프로퍼티가 예상대로 동작한다 .

[ Extenstion ]

가상 카메라에 동작을 추가하는 컴포넌트이다 .

확장에 관한 도큐먼트

 

 

 

 

 

 

 

출처

블로그

스크립팅 API

유니티 메뉴얼