안동민 개발노트 아이콘

안동민 개발노트

4장 : 월드와 씬 구성

씬 구성 요소 - Light, Camera, Mesh

지금까지 우리는 언리얼 엔진의 C++ 기본기와 게임플레이 로직의 핵심 요소들을 다루며 캐릭터가 움직이고 상호작용하는 기반을 다졌습니다. 이제 이러한 캐릭터가 활동할 월드(World)와 그 월드를 구성하는 씬(Scene)에 대해 이해할 시간입니다. 게임은 단순히 움직이는 캐릭터뿐만 아니라, 그 배경이 되는 환경, 즉 이 있어야 완성됩니다. 씬은 주로 빛(Light), 카메라(Camera), 그리고 메시(Mesh)라는 세 가지 핵심 구성 요소로 이루어져 있습니다. 이 절에서는 각 요소의 역할과 중요성을 자세히 살펴보겠습니다.

핵심 포인트: Light는 메시를 드러내고, Camera는 결과를 프레이밍하며, Mesh는 월드의 시각적 형태를 제공해 세 요소가 함께 씬 품질과 플레이 경험을 결정합니다.


Light (빛): 씬에 생명을 불어넣는 조명

빛은 3D 씬에서 가장 중요한 요소 중 하나입니다. 빛이 없으면 아무것도 보이지 않으며, 빛의 종류와 배치, 강도에 따라 씬의 분위기와 시각적 품질이 극적으로 달라집니다. 언리얼 엔진은 다양한 종류의 빛을 제공하며, 각기 다른 방식으로 씬을 밝힙니다.

주요 광원 타입

  • Directional Light (방향성 광원): 태양처럼 무한히 멀리서 평행하게 들어오는 빛을 시뮬레이션합니다. 씬 전체에 동일한 방향으로 영향을 미치며, 주로 낮/밤 환경의 주광원으로 사용됩니다. 그림자의 방향과 강도를 결정하는 데 핵심적입니다.
  • Point Light (점 광원): 전구처럼 한 점에서 사방으로 빛을 발산하는 광원입니다. 빛의 강도가 거리에 따라 감소하며, 로컬 영역을 밝히거나 특정 오브젝트를 강조할 때 유용합니다.
  • Spot Light (스포트 광원): 손전등이나 자동차 헤드라이트처럼 원뿔 형태의 특정 영역을 비추는 빛입니다. 원뿔의 크기와 내부/외부 각도를 조절하여 빛이 퍼지는 방식을 제어할 수 있습니다.
  • Rect Light (직사각형 광원): 창문이나 대형 스크린처럼 직사각형 면에서 빛을 방출하는 광원입니다. 주로 실내 환경에서 부드럽고 넓은 영역을 밝히는 데 사용되며, 사실적인 반사를 생성하는 데도 효과적입니다.

빛의 중요성

  • 가시성: 오브젝트를 보이게 만듭니다.
  • 분위기 및 감성: 밝고 화사한 분위기, 어둡고 음침한 분위기 등 씬의 전반적인 감성을 결정합니다.
  • 입체감 및 형태: 빛과 그림자의 상호작용은 오브젝트의 형태와 깊이감을 강조하여 씬에 입체감을 부여합니다.
  • 성능: 광원의 개수, 그림자 계산 방식, 빛의 반사 여부 등은 씬의 렌더링 성능에 큰 영향을 미칩니다. 언리얼 엔진은 정적인 빛(Static), 스테이셔너리 빛(Stationary), 무빙 빛(Movable) 등 다양한 모빌리티(Mobility) 설정을 제공하여 성능과 퀄리티 사이의 균형을 조절할 수 있습니다.

Camera (카메라): 플레이어의 눈

카메라는 플레이어가 게임 월드를 보는 시점을 결정하는 요소입니다. 3D 씬에서 카메라는 촬영 장비와 같아서, 카메라의 위치, 방향, 시야각 등에 따라 플레이어가 경험하는 게임의 전망이 완전히 달라집니다.

카메라의 종류

  • Player Camera (플레이어 카메라): 플레이어가 게임 월드를 바라보는 주된 시점입니다. 일반적으로 APlayerController가 소유하거나 제어하는 APawn/ACharacter에 부착된 UCameraComponent를 통해 구현됩니다.
  • Cinematic Camera (시네마틱 카메라): 게임 내 이벤트나 컷씬(Cutscene)에서 특정 연출을 위해 사용되는 카메라입니다. 플레이어의 제어를 받지 않고 미리 정의된 경로를 따라 움직이거나 특정 장면을 강조합니다.

카메라의 중요성

  • 관점: 1인칭(FPS), 3인칭(TPS), 탑다운, 쿼터뷰 등 게임의 핵심 플레이 방식을 결정합니다.
  • 정보 전달: 플레이어에게 필요한 정보를 시각적으로 전달하는 역할을 합니다.
  • 몰입감: 적절한 카메라 연출은 플레이어의 몰입감을 높여줍니다.
  • 제어: APlayerController를 통해 카메라의 회전(Yaw, Pitch), 위치 등을 제어하여 플레이어가 월드를 탐색할 수 있도록 합니다. USpringArmComponent와 같은 컴포넌트는 캐릭터와 카메라 사이의 거리를 유지하거나 장애물 충돌 시 카메라를 자동으로 조절하는 등 유용한 기능을 제공합니다.

Mesh (메시): 씬을 구성하는 형태

이 다이어그램은 씬을 구성하는 Light, Camera, Mesh가 각각 무엇을 담당하고 서로 어떤 결과를 만드는지 정리합니다.

메시(Mesh)는 3D 씬을 구성하는 가장 기본적인 시각적 형태입니다. 삼각형(Triangles)으로 이루어진 면들의 집합으로, 캐릭터, 건물, 나무, 바위, 무기 등 게임 월드의 모든 시각적 오브젝트를 표현합니다.

메시의 종류

  • Static Mesh (스태틱 메시): 정적인 형태를 가지는 메시입니다. 게임 플레이 중에는 형태가 변하지 않고 고정되어 있습니다. 건물, 지형, 가구, 소품 등 대부분의 환경 오브젝트에 사용됩니다. 언리얼 엔진에서는 .FBX 등의 포맷으로 외부 3D 모델링 툴에서 제작된 후 임포트됩니다.
  • Skeletal Mesh (스켈레탈 메시): 골격(Skeleton)을 가지고 애니메이션될 수 있는 메시입니다. 캐릭터, 몬스터, 팔다리가 있는 동식물 등 움직임과 애니메이션이 필요한 오브젝트에 사용됩니다. 스켈레톤의 각 뼈(Bone)를 움직여 메시의 형태를 변형하고 애니메이션을 만듭니다.

메시의 중요성

  • 시각적 표현: 게임 월드의 모든 시각적 요소를 구성합니다.
  • 충돌 감지: 메시의 형태는 충돌 판정에도 영향을 미치며, UStaticMeshComponentUSkeletalMeshComponent 자체에 충돌 설정을 적용할 수 있습니다.
  • 성능: 메시의 복잡도(삼각형 수), 재질(Material)의 복잡도 등은 렌더링 성능에 직접적인 영향을 미칩니다. LOD(Level of Detail)나 최적화된 메시 사용은 성능 관리에 필수적입니다.
  • 재질(Material) 및 텍스처(Texture): 메시는 그 자체로 색상이나 표면 질감을 가지지 않습니다. 표면에 색상, 질감, 반사 등을 입히기 위해 재질(Material)텍스처(Texture)가 적용됩니다. 재질은 메시의 표면이 빛과 어떻게 상호작용할지 정의하며, 텍스처는 재질에 세부적인 색상이나 패턴을 부여합니다.

씬 구성의 상호작용

이 세 가지 핵심 요소는 독립적으로 존재하지 않고 서로 밀접하게 상호작용합니다.

  • 메시의 표면에 닿아 색상과 형태를 드러내고 그림자를 드리웁니다.
  • 카메라는 이 모든 빛과 메시의 상호작용을 포착하여 플레이어에게 보여줍니다.
  • 메시는 씬의 시각적 기반을 제공하며, 빛의 영향을 받아 사실적인 모습을 갖춥니다.

언리얼 에디터의 뷰포트(Viewport)는 이러한 빛, 카메라, 메시의 조합을 실시간으로 보여주는 창입니다. 뷰포트에서 액터(Actor, 즉 씬에 배치된 오브젝트)를 배치하고, 각 액터에 부착된 메시 컴포넌트의 형태를 확인하며, 빛 액터를 조절하여 씬의 분위기를 조성하고, 카메라의 위치와 시야각을 변경하여 플레이어의 경험을 설계하게 됩니다.

아래 다이어그램은 Light, Camera, Mesh가 씬 제작 과정에서 어떤 책임을 나눠 맡고 어떤 순서로 점검하면 좋은지 정리한 것입니다.

마지막으로 세 요소를 함께 점검할 수 있도록 씬 균형 체크리스트를 한 화면에 정리했습니다.


이제 언리얼 엔진 씬을 구성하는 가장 기본적이고 핵심적인 요소인 빛, 카메라, 메시의 역할과 중요성을 이해하셨을 것입니다.

마지막으로 Light 타입과 Mobility 선택 기준을 실제 씬 점검 순서에 맞춰 정리해 보세요.

Light, Camera, Mesh가 플레이 시점에서 서로 어떻게 확인되는지 마지막 판독 순서로 묶어 봅니다.