카메라 레퍼런스
플레어 레이어(Flare Layer)

카메라(Camera)

Cameras 는 월드를 캡처하여 플레이어에게 보여주는 장치입니다. 카메라를 커스터마이즈 및 조정하여 게임의 프레젠테이션을 독창적으로 만들 수 있습니다. 하나의 씬에 카메라를 원하는 만큼 추가할 수 있습니다. 카메라가 렌더링하는 순서와 화면의 위치를 설정할 수 있고, 화면의 일부만을 렌더링하도록 설정할 수 있습니다.

프로퍼티

프로퍼티: 기능:
Clear Flags 화면의 어떤 부분을 클리어할지 여부를 결정합니다. 여러 개의 카메라를 사용하여 서로 다른 게임 요소를 드로우 할때 유용합니다.
Background 뷰의 모든 요소가 그려지고 스카이박스가 없을 경우 여백 화면에 적용될 색상입니다.
Culling Mask 카메라가 렌더링할 오브젝트의 레이어를 포함하거나 제외합니다. 오브젝트의 레이어를 인스펙터에 할당해야 합니다.
Projection 카메라의 원근 시뮬레이션 성능을 토글합니다.
        Perspective 카메라가 원근감을 그대로 적용하여 오브젝트를 렌더링합니다.
        Orthographic 카메라가 원근감 없이 오브젝트를 균일하게 렌더링합니다. NOTE: 디퍼드 렌더링은 직교 모드에서 지원되지 않습니다. 포워드 렌더링은 항상 사용됩니다.
Size (when Orthographic is selected) 직교를 선택했을 때의 카메라의 뷰포트 크기입니다.
Field of view (when Perspective is selected) 로컬 Y 축을 따라 측정한 카메라의 뷰 각도의 너비입니다(단위: 도).
Clipping Planes 렌더링을 시작 및 중지하기 위한 카메라부터의 거리입니다.
        Near 드로잉이 수행될 카메라에 상대적으로 가장 가까운 포인트를 나타냅니다.
        Far 드로잉이 수행될 카메라에 상대적으로 가장 먼 포인트를 나타냅니다.
Normalized View Port Rect Four values that indicate where on the screen this camera view will be drawn. Measured in Screen Coordinates (values 0–1).
        X 카메라 뷰가 드로우 될 수평 포지션 시작점입니다.
        Y 카메라 뷰가 드로우 될 수직 포지션 시작점입니다.
        W (Width) 화면상 카메라의 출력 너비
        H (Height) 화면상 카메라의 출력 높이
Depth 드로우 순서의 카메라 포지션을 의미합니다. 값이 큰 카메라는 값이 작은 카메라 위에 드로우 됩니다.
Rendering Path 카메라가 사용할 렌더링 메서드를 정의하는 옵션입니다.
        Use Player Settings 카메라는 플레이어 설정에서 설정한 렌더링 경로를 사용합니다.
        Vertex Lit 카메라가 렌더링한 모든 오브젝트는 버텍스-릿 오브젝트로 렌더링됩니다.
        Forward 모든 오브젝트가 머티리얼당 하나의 패스를 통해 렌더링됩니다.
        Deferred Lighting 모든 오브젝트는 우선 조명 없이 드로우 되며, 그 후 모든 오브젝트의 조명이 렌더 대기열 끝에서 함께 렌더링됩니다. 참고: 카메라의 투사 모드가 직교로 설정된 경우, 이 값은 오버라이드 되며 카메라는 항상 포워드 렌더링을 사용합니다.
Target Texture 카메라 뷰의 출력을 담을 Render Texture에 대한 레퍼런스입니다. 이 레퍼런스를 설정하면 카메라의 화면 렌더링 성능이 비활성화됩니다.
HDR 카메라에 HDR 렌더링을 활성화합니다.
Target Display 어떤 외부 장치를 렌더할 것인지 정의합니다. 값은 18 사이입니다.

세부 정보

카메라는 사용자의 게임을 플레이어에게 보여주는 데 있어 필수적입니다. 상상가능한 모든 종류의 효과를 얻기 위해 카메라는 커스터마이즈 하거나 스크립팅할 수 있으며 계층 관계를 만들 수도 있습니다. 퍼즐 게임의 경우 퍼즐 전체 뷰에 카메라를 정적으로 설정할 수 있습니다. FPS 슈팅 게임의 경우 플레이어 캐릭터에 대해 카메라를 부모로 설정하여 캐릭터에 눈높이에 배치하면 됩니다. 레이싱 게임의 경우, 카메라가 플레이어 자동차의 뒤를 따라오도록 할 수도 있습니다.

여러 개의 카메라를 생성하여 각각의 카메라에 서로 다른 Depth 를 할당할 수 있습니다. 카메라는 낮은 Depth 에서 깊은 Depth 순으로 드로우 됩니다. 즉, Depth 가 2 인 카메라는 뎁스가 1 인 카메라의 위에 드로우 됩니다. Normalized View Port Rectangle 프로퍼티의 값을 조정하여 화면의 카메라 뷰의 크기를 조절하거나 위치를 이동할 수 있습니다. 이를 통해 미사일 캠, 맵 뷰, 백미러 등 여러 개의 미니 뷰를 생성할 수 있습니다.

렌더 경로

Unity 는 여러 가지 렌더링 경로를 지원합니다. 게임의 콘텐츠나 타겟 플랫폼/하드웨어에 따라 어떤 경로를 사용할지 선택해야 합니다. 다른 렌더링 경로는 각각 다른 특징과 성능 특성을 가지며, 이는 주로 광원과 섀도우에 영향을 미칩니다. 프로젝트에서 사용하는 렌더링 경로는 Player Settings에서 선택합니다. 또한 각 카메라에 대해 렌더링 경로를 치환할 수 있습니다.

렌더링 경로에 대한 자세한 내용은 렌더링 패스 페이지를 참조하십시오.

플래그 지우기(Clear Flags)

각 카메라는 뷰를 렌더링할 때 색상과 뎁스 정보를 저장합니다. 드로우 되지 않은 화면 공간은 공백이 되며, 스카이박스를 디폴트로 보여줍니다. 여러 개의 카메라를 사용하는 경우, 각 카메라는 색상과 뎁스 정보를 버퍼에 저장하며, 각각의 카메라가 렌더링할 때마다 더 많은 데이터를 축적합니다. 사용자의 씬에 있는 특정 카메라가 뷰를 렌더링할 경우 Clear Flags 를 설정하여 버퍼 정보의 다른 컬렉션을 지울 수 있습니다. 그 방법으로는 다음과 같은 네 가지 옵션이 있습니다.

스카이박스

이것은 디폴트 설정입니다. 해당 스크린의 빈 공간에는 현재 카메라의 스카이박스가 나타납니다. 현재 카메라에 스카이박스가 설정돼 있지 않을 경우, 라이팅 창 (메뉴: Window > Lighting)에서 선택한 스카이박스로 디폴트됩니다. 그 후에는 Background Color 로 돌아갑니다. 또는 Skybox 컴포넌트를 해당 카메라에 추가할 수 있습니다. 새로운 스카이박스를 생성하고 싶을 경우, 이 가이드를 참조하십시오.

단일 색상

스크린의 빈 공간은 현재 카메라의 Background Color 로 채워집니다.

뎁스(Depth) 전용

환경 안에서 플레이어의 총이 잘리지 않게 드로우하려면, 환경을 드로우할 때 카메라 하나의 Depth 를 0 으로 설정하고, 총만 드로우할 때는 다른 카메라의 Depth 를 1 로 설정해야 합니다. 총을 그릴 카메라의 Clear Flagsdepth only 으로 설정해야 합니다. 이 경우 해당 화면 환경의 그래픽 디스플레이가 유지되며 각 오브젝트의 3D 공백상 위치에 관한 모든 정보는 버려집니다. 총이 드로우되면, 총과 벽의 거리와는 관계 없이 모든 불투명한 부분을 완전히 덮게 됩니다.

총보다 앞서 그려지는 카메라의 뎁스 버퍼가 제거된 후에, 총이 마지막에 드로우 됩니다
총보다 앞서 그려지는 카메라의 뎁스 버퍼가 제거된 후에, 총이 마지막에 드로우 됩니다

지우기 금지

이 모드로 설정하면 컬러 및 뎁스 버퍼가 지워지지 않습니다. 따라서 각 프레임이 다음 프레임 위에 드로우되어 얼룩진 듯한 효과를 얻을 수 있습니다. 이 모두는 게임에서는 보통 사용되지 않고, 사용자 셰이더와 함께 사용되는 경우가 많습니다.

일부 GPU(대부분 모바일 GPUs)의 경우 화면을 지우지 않으면 화면의 콘텐츠가 다음 프레임에서 정의되지 않을 수 있다는 점을 유의하십시오. 일부 시스템에서는 스크린에 이전 프레임 이미지나 솔리드 블랙 화면, 임의로 설정된 색상 픽셀이 포함될 수 있습니다.

클립 평면(Clip Planes)

Near 프로퍼티와 Far Clip Plane 프로퍼티는 Camera 뷰의 시작점과 끝나는 지점을 결정합니다. 평면은 카메라의 방향과 수직으로 놓이고 카메라의 포지션으로부터 측정됩니다. Near plane 은 렌더링 되는 가장 가까운 지점이고, Far plane 은 가장 멀리 있는 지점입니다.

클리핑 평면은 또한 뎁스 버퍼 정밀도가 씬 전체에 어떻게 분포되는 지 결정합니다. 일반적으로 더 높은 정밀도를 얻기 위해서는 Near plane 을 최대한 멀리 이동해야 합니다.

근접 및 원거리 클립 평면과 카메라의 FOV 에 의해 정의된 평면을 합치면 일반적으로 카메라의 절두체 라 불리는 형태를 이룹니다. Unity 에서 오브젝트를 렌더링할 때 절두체에서 완전히 벗어나 있는 오브젝트는 표시되지 않습니다. 이를 절두체 컬링이라고 합니다. 절두체 컬링은 게임에서 오클루전 컬링을 사용하는지 여부와 관계없이 발생합니다.

성능 향상을 위해 작은 오브젝트를 미리 컬링하고 싶을 수 있습니다. 예를 들어 작은 바위나 파편은 큰 건물에 비해 가까운 거리에서도 안 보이도록 처리할 수 있습니다. 작은 오브젝트를 별도의 레이어에 두고 Camera.layerCullDistances 스크립트 함수를 사용하여 레이어당 컬링 거리를 설정할 수 있습니다.

컬링 마스크(Culling Mask)

Culling Mask 는 레이어를 사용하여 오브젝트 그룹을 선택적으로 렌더링하는 데 사용됩니다. 레이어 사용법에 대한 자세한 내용은 여기를 참조하십시오.

정규화된 뷰포트 사각형(Normalized Viewport Rectangles)

Normalized Viewport Rectangle 는 특히 화면의 특정 부분을 정의하여 현재 카메라 뷰가 드로우되도록 합니다. 화면의 오른쪽 하단에 맵 뷰를, 왼쪽 상단에는 미사일 팁 뷰를 배치할 수 있습니다. 디자인 작업을 하여 Viewport Rectangle 로 일부 유니크한 동작을 만들어낼 수 있습니다.

Normalized Viewport Rectangle 를 이용하여 2 인 플레이어용 화면 분할 효과를 쉽게 만들 수 있습니다. 두 개의 카메라를 생성한 후, 두 카메라의 H 값을 0.5 로 설정한 후 플레이어 1 의 Y 값을 0.5 로, 플레이어 2 의 Y 값을 0 으로 설정합니다. 이렇게 하면 플레이어 1 의 카메라가 화면의 상단에 나타나고, 플레이어 2 의 카메라의 남은 절반 부분인 하단에 나타납니다.

정규화된 뷰포트 사각형 프로퍼티로 생성한 2인용 디스플레이
정규화된 뷰포트 사각형 프로퍼티로 생성한 2인용 디스플레이

직교(Orthographic)

카메라를 Orthographic 로 설정하면 카메라 뷰의 모든 원근감이 제거됩니다. 등거리 게임이나 2D 게임을 만드는 데 특히 유용한 기능입니다.

안개는 직교 카메라 모드에서는 균일하게 렌더링되기 때문에 생각했던 것과 다를 수 있다는 점을 유의해야 합니다. 그 이유는 포스트 원근감이 있는 공백의 Z 좌표가 안개 “뎁스”에 사용되기 때문입니다. 이 기능은 직교 카메라에서는 정확도가 떨어지지만 렌더링 시에는 성능 개선을 위해 사용됩니다.

원근 카메라
원근 카메라
직교 카메라. 이 경우 거리가 멀어져도 오브젝트가 작아지지 않습니다!
직교 카메라. 이 경우 거리가 멀어져도 오브젝트가 작아지지 않습니다!

렌더 텍스처(Render Texture)

이 기능은 다른 오브젝트에 적용 가능한 Texture에 카메라 뷰를 배치합니다. 이를 통해 스포츠 경기장의 비디오 모니터, 감시 카메라, 반사 등을 만드는 것이 용이해집니다.

경기장 실황 카메라를 만드는 데 사용되는 렌더 텍스처
경기장 실황 카메라를 만드는 데 사용되는 렌더 텍스처

타겟 디스플레이

카메라에는 최대 8 개의 타겟 디스플레이 설정이 있습니다. 1 개에서 최대 8 개의 모니터를 렌더링에 사용할 수 있습니다. 이 기능은 PC, Mac, Linux 에서만 지원됩니다. 게임 뷰의 경우 카메라 인스펙터에서 선택된 디스플레이가 보여집니다.

힌트

  • 카메라는 다른 게임 오브젝트와 마찬가지로 인스턴스화, 부모자식 관계 설정, 스크립팅이 가능합니다.
  • 레이싱 게임에서 속도감을 높이려면 Field of View 를 높입니다.
  • Rigidbody 컴포넌트를 추가하면 물리 시뮬레이션에 카메라를 사용할 수 있습니다.
  • 씬에서 사용할 수 있는 카메라 수에는 제한이 없습니다.
  • 직교 카메라는 3D 사용자 인터페이스 작업에 유용합니다.
  • 뎁스 아티팩트(인접한 표면이 깜박이는 현상)가 발생할 경우 Near Plane 을 최대한 크게 설정해 보십시오.
  • 카메라는 게임 화면과 렌더 텍스처에 동시에 렌더링할 수 없으며 둘 중 하나에만 렌더링할 수 있습니다.
  • 카메라의 뷰를 텍스처에 렌더링하는 ‘텍스처에 렌더링하기’라는 옵션을 활용해 훨씬 다양하고 재밌는 효과를 얻을 수 있습니다.
  • Unity 에서는 사전 설치된 카메라 스크립트를 제공하며, Components > Camera Control 에서 확인하실 수 있습니다. 이 스크립트를 활용하여 다양한 가능성을 시험해 보십시오.
카메라 레퍼런스
플레어 레이어(Flare Layer)