리니어 텍스처 작업(Working with linear Textures)
두 개 이상의 카메라 사용(Using more than one camera)

카메라(Cameras)

Unity 에서는 3 차원 공간에서 오브젝트를 정렬하고 움직이는 것으로 씬을 생성합니다. 그러나 뷰어의 스크린은 2 차원 평면이기 때문에 뷰를 캡처한 뒤 디스플레이를 위해 “평면화” 시킬 방법이 필요합니다. 작업은 Cameras 를 통해 가능합니다.

카메라는 씬 공간에서 뷰를 정의하는 오브젝트입니다. 오브젝트의 포지션이 뷰포인트를 정의하는 가운데 오브젝트의 전방 축(Z)이 뷰의 방향을 결정하고 윗 축(Y)이 스크린의 윗면을 결정합니다. Camera 컴포넌트 또한 뷰 안에 들어가는 영역의 크기와 형태를 정의합니다. 파라미터를 설정하면 카메라가 현재 화면에서 “보는” 것을 디스플레이합니다. 카메라 오브젝트가 움직이고 회전하기 때문에 디스플레이된 뷰 역시 그에 따라 움직이고 회전합니다.

원근 카메라와 직교 카메라

같은 씬을 원근법 모드(왼쪽)와 직교 모드(오른쪽)로 나타낸 모습
같은 씬을 원근법 모드(왼쪽)와 직교 모드(오른쪽)로 나타낸 모습

현실 세계의 카메라는 인간의 눈과 같이 멀리 떨어져 있는 물체를 더 작게 보이는 관점으로 월드를 바라봅니다. 원근 효과는 예술과 컴퓨터 그래픽스에 널리 사용되며 현실적인 씬을 만드는데 중요한 역할을 합니다. 그러므로 Unity 역시 원근 카메라를 지원하지만 목적에 따라 효과를 사용하지 않고 뷰를 렌더링하는 경우가 있습니다. 예를 들어, 실제 월드의 오브젝트와 같아서는 안되는 지도나 정보 디스플레이를 만들 경우입니다. 거리에 따라 오브젝트의 크기를 줄이지 않는 카메라를 직교 라 부르며 Unity 카메라 역시 직교 옵션이 있습니다. 씬을 볼 수 있는 원근과 직교 모드를 카메라 투영 이라고 합니다. (위에서 내려다 본 씬BITGEM)

뷰 되고 있는 영역의 형태

원근과 직교 카메라 모두 현재 포지션에서 얼마나 “볼 수” 있는지 한계가 있습니다. 그 한계는 카메라의 전방 (Z)과 수직을 이루는 평면에 의해 정의됩니다. 이것은 카메라로부터 멀리 떨어진 오브젝트가 “클리핑”(즉, 렌더링으로부터 제외되어)되기 때문에 장거리 클립 평면 이라 부릅니다. 또한 이에 반대인 카메라가 가까울 때 나타나는 근접 클립 평면 이 있습니다. 두 평면 사이의 거리만을 가시적으로 볼 수 있습니다.

원근을 사용하지 않는다면 오브젝트가 거리에 상관 없이 같은 크기로 보입니다. 이 뜻은 직교 카메라의 뷰 영역은 두 클립 평면 사이에서 직사각형 박스가 늘어나는 형태로 나타난다는 뜻입니다.

원근법이 사용되면 오브젝트는 카메라로부터 거리가 증가하면 점점 작아집니다. 이는 씬의 볼 수 있는 부분의 폭과 높이가 거리가 멀어짐에 따라 늘어난다는 뜻입니다. 그렇게 때문에 원근 카메라의 뷰 영역은 박스가 아니라 카메라 포지션에 꼭지점이 달리고 지지대가 장거리 클립 평면에 위치한 피라미드 형태가 됩니다. 그러나 완벽한 피라미드 형태라고 할 수 없는데 윗 부분은 근접 클립 평면에 의해 잘려나가기 때문입니다. 끝이 잘려나간 피라미드 형태를 절두체 라고 합니다. 높이가 일정하지 않기 때문에 절두체는 폭과 높이의 비율(종횡비) 그리고 꼭지점 위와 아래 사이의 각도(FOV시야)로 정의됩니다. 자세한 설명은 절두체 뷰의 이해 페이지를 참조하십시오.

카메라 뷰의 배경

건물 내부 씬에서 카메라는 항상 건물이나 동굴, 기타 구조물의 인테리어 오브젝트 안에 완전히 들어가 있을 수 있습니다. 그러나 외부에서 액션이 일어난다면 오브젝트 사이가 텅 비어있는 영역이 생깁니다. 배경 영역은 보통 하늘, 우주 아니면 어두컴컴한 깊은 수면 아래 씬을 표현하는 데 사용됩니다.

카메라는 배경에 공백이 있는 완전하지 않은 상태로 둘 수 없기 때문에 빈 공간을 무언가로 채워야 합니다. 가장 간단한 옵션은 배경 위에 씬을 렌더링 하기 전에 단색으로 채우는 것입니다. 카메라의 Background 프로퍼티를 사용하면 인스펙터나 스크립트에서 컬러를 설정할 수 있습니다. 외부 씬에서 잘 작동되는 더 정교한 방법은 Skybox를 사용하는 겁니다. 이름 그대로 스카이박스는 하늘의 이미지로 포장된 “상자”와 같이 작동합니다. 카메라는 상자의 한 가운데에 위치하게 되며 모든 방향에서 하늘을 볼 수 있게 됩니다. 카메라가 회전하며 하늘의 다른 영역을 볼 수 있지만 중심에서 절대로 움직이지 않습니다(그러므로 카메라는 하늘을 “더 가까이”서 볼 수 없습니다). 스카이박스는 씬에서 모든 오브젝트 뒤에 렌더링되기 때문에 무한히 멀리 떨어져 있는 뷰로 나타납니다. 가장 많이 사용되는 방식은 표준 외부 씬에서 하늘을 표현하는 경우이고, 상자가 사실 카메라를 아래까지 완전히 감싸고 있는 상황입니다. 스카이박스를 사용해서 씬의 일부(예를 들어 수평선 너머로 뻗어나가는 구릉으로된 면)를 표현하거나 전방위 뷰, 또는 수면 아래를 표현할 수 있습니다.

Skybox 프로퍼티를 라이팅 창 (메뉴: Window > Lighting)에 설정하는 것으로 씬에 추가할 수 있습니다. 사용자만의 스카이박스를 만드는 방법에 대한 자세한 내용은 이 페이지를 참조하십시오.

리니어 텍스처 작업(Working with linear Textures)
두 개 이상의 카메라 사용(Using more than one camera)