씬 구성 요소 - Light, Camera, Mesh
Light·Camera·Mesh의 종류와 상호작용을 비교하고 장면의 시점·조명·형상을 목적에 맞게 구성합니다.
지금까지 우리는 언리얼 엔진의 C++ 기본기와 게임플레이 로직의 핵심 요소들을 다루며 캐릭터가 움직이고 상호작용하는 기반을 다졌습니다.
이제 이러한 캐릭터가 활동할 월드(World)와 그 월드를 구성하는 씬(Scene)에 대해 이해할 시간입니다.
게임은 단순히 움직이는 캐릭터뿐만 아니라, 그 배경이 되는 환경, 즉 씬이 있어야 완성됩니다.
씬은 주로 빛(Light), 카메라(Camera), 그리고 메시(Mesh)라는 세 가지 핵심 구성 요소로 이루어져 있습니다.
이 절에서는 각 요소의 역할과 중요성을 자세히 살펴보겠습니다.
Light (빛): 씬에 생명을 불어넣는 조명
빛은 3D 씬에서 가장 중요한 요소 중 하나입니다.
조명을 받는 표면은 빛의 종류·배치·강도에 따라 다르게 보입니다. Unlit·Emissive 재질처럼 광원 없이도 보이는 표현은 별도로 구분합니다.
언리얼 엔진은 다양한 종류의 빛을 제공하며, 각기 다른 방식으로 씬을 밝힙니다.
주요 광원 타입
- Directional Light (방향성 광원): 태양처럼 무한히 멀리서 평행하게 들어오는 빛을 시뮬레이션합니다. 씬 전체에 동일한 방향으로 영향을 미치며, 주로 낮/밤 환경의 주광원으로 사용됩니다. 그림자의 방향과 강도를 결정하는 데 핵심적입니다.
- Point Light (점 광원): 전구처럼 한 점에서 사방으로 빛을 발산하는 광원입니다. 빛의 강도가 거리에 따라 감소하며, 로컬 영역을 밝히거나 특정 오브젝트를 강조할 때 유용합니다.
- Spot Light (스포트 광원): 손전등이나 자동차 헤드라이트처럼 원뿔 형태의 특정 영역을 비추는 빛입니다. 원뿔의 크기와 내부/외부 각도를 조절하여 빛이 퍼지는 방식을 제어할 수 있습니다.
- Rect Light (직사각형 광원): 창문이나 대형 스크린처럼 직사각형 면에서 빛을 방출하는 광원입니다. 주로 실내 환경에서 부드럽고 넓은 영역을 밝히는 데 사용되며, 사실적인 반사를 생성하는 데도 효과적입니다.
빛의 중요성
- 가시성: 오브젝트를 보이게 만듭니다.
- 분위기 및 감성: 밝고 화사한 분위기, 어둡고 음침한 분위기 등 씬의 전반적인 감성을 결정합니다.
- 입체감 및 형태: 빛과 그림자의 상호작용은 오브젝트의 형태와 깊이감을 강조하여 씬에 입체감을 부여합니다.
- 성능: 광원의 개수, 그림자 계산 방식, 빛의 반사 여부 등은 씬의 렌더링 성능에 큰 영향을 미칩니다. 언리얼 엔진은 정적인 빛(
Static), 스테이셔너리 빛(Stationary), 무빙 빛(Movable) 등 다양한 모빌리티(Mobility) 설정을 제공하여 성능과 퀄리티 사이의 균형을 조절할 수 있습니다.
Camera (카메라): 플레이어의 눈
카메라는 플레이어가 게임 월드를 보는 시점을 결정하는 요소입니다.
3D 씬에서 카메라는 촬영 장비와 같아서, 카메라의 위치, 방향, 시야각 등에 따라 플레이어가 보는 게임 화면이 완전히 달라집니다.
카메라의 종류
- Player Camera (플레이어 카메라): 플레이어가 게임 월드를 바라보는 주된 시점입니다. 일반적으로
APlayerController가 소유하거나 제어하는APawn/ACharacter에 부착된UCameraComponent를 통해 구현됩니다. - Cinematic Camera (시네마틱 카메라): 게임 내 이벤트나 컷씬(Cutscene)에서 특정 연출을 위해 사용되는 카메라입니다. 렌즈·초점 등 촬영 속성을 제공하며, Sequencer나 게임 코드로 움직여 특정 장면을 강조할 수 있습니다.
카메라의 중요성
- 관점: 1인칭(FPS), 3인칭(TPS), 탑다운, 쿼터뷰 등 게임의 핵심 플레이 방식을 결정합니다.
- 정보 전달: 플레이어에게 필요한 정보를 시각적으로 전달하는 역할을 합니다.
- 몰입감: 적절한 카메라 연출은 플레이어의 몰입감을 높여줍니다.
- 제어:
APlayerController를 통해 카메라의 회전(Yaw, Pitch), 위치 등을 제어하여 플레이어가 월드를 탐색할 수 있도록 합니다.USpringArmComponent와 같은 컴포넌트는 캐릭터와 카메라 사이의 거리를 유지하거나 장애물 충돌 시 카메라를 자동으로 조절하는 등 유용한 기능을 제공합니다.
Mesh (메시): 씬을 구성하는 형태
메시(Mesh)는 3D 씬을 구성하는 가장 기본적인 시각적 형태입니다.
삼각형(Triangles)으로 이루어진 면들의 집합으로, 캐릭터, 건물, 나무, 바위, 무기 등 게임 월드의 많은 시각적 오브젝트를 표현합니다. 파티클·볼륨 등 다른 표현 방식도 있습니다.
메시의 종류
- Static Mesh (스태틱 메시): 골격 애니메이션을 사용하지 않는 메시입니다. 컴포넌트를 이동·회전하거나 재질의 World Position Offset으로 정점을 변형할 수 있으므로, 이름이 월드에서 움직일 수 없다는 뜻은 아닙니다. 건물, 지형, 가구, 소품 등 대부분의 환경 오브젝트에 사용됩니다. 언리얼 엔진에서는
.FBX등의 포맷으로 외부 3D 모델링 툴에서 제작된 후 임포트됩니다. - Skeletal Mesh (스켈레탈 메시): 골격(Skeleton)을 가지고 애니메이션될 수 있는 메시입니다. 캐릭터, 몬스터, 팔다리가 있는 동식물 등 움직임과 애니메이션이 필요한 오브젝트에 사용됩니다. 스켈레톤의 각 뼈(Bone)를 움직여 메시의 형태를 변형하고 애니메이션을 만듭니다.
메시의 중요성
- 시각적 표현: 모델의 형상과 표면을 구성합니다.
- 충돌 감지: 메시의 형태는 충돌 판정에도 영향을 미치며,
UStaticMeshComponent나USkeletalMeshComponent자체에 충돌 설정을 적용할 수 있습니다. - 성능: 메시의 복잡도(삼각형 수), 재질(Material)의 복잡도 등은 렌더링 성능에 직접적인 영향을 미칩니다. LOD(Level of Detail)나 최적화된 메시 사용은 성능 관리에 필수적입니다.
- 재질(Material) 및 텍스처(Texture): 표면 표현은 재질(Material)이 결정하며, 텍스처·상수·정점 색 등의 데이터를 사용할 수 있습니다. 모든 재질에 텍스처가 필수인 것은 아닙니다. 재질은 메시의 표면이 빛과 어떻게 상호작용할지 정의하며, 텍스처는 재질에 세부적인 색상이나 패턴을 부여합니다.
씬 구성의 상호작용
이 세 가지 핵심 요소는 독립적으로 존재하지 않고 서로 밀접하게 상호작용합니다.
- 빛은 메시의 표면에 닿아 색상과 형태를 드러내고 그림자를 드리웁니다.
- 카메라는 이 모든 빛과 메시의 상호작용을 포착하여 플레이어에게 보여줍니다.
- 메시는 씬의 시각적 기반을 제공하며, 빛의 영향을 받아 사실적인 모습을 갖춥니다.
언리얼 에디터의 뷰포트(Viewport)는 이러한 빛, 카메라, 메시의 조합을 실시간으로 보여주는 창입니다.
뷰포트에서 액터(Actor, 즉 씬에 배치된 오브젝트)를 배치하고, 각 액터에 부착된 메시 컴포넌트의 형태를 확인하며, 빛 액터를 조절하여 씬의 분위기를 조성하고, 카메라의 위치와 시야각을 변경하여 플레이어의 경험을 설계하게 됩니다.
예시: 보이는 문제와 움직임 문제를 분리하기
통로에 놓인 의자는 Static Mesh 에셋을 사용합니다. 플레이 도중 의자 액터를 옮기려면 배치된 컴포넌트의 이동 가능 설정을 확인합니다. 에셋 이름의 Static은 골격 애니메이션을 사용하지 않는다는 뜻이고, 컴포넌트의 Static Mobility와 같은 판정이 아닙니다. 화면에서 의자가 보이지만 캐릭터가 통과한다면 메시 종류만 바꾸기보다 충돌 설정을 확인해야 합니다. 반대로 충돌은 동작하지만 의자가 화면 밖에 있다면 현재 플레이 카메라의 위치·방향·시야각을 먼저 살펴봅니다.
한 가지씩 원인 좁히기
에디터의 자유 시점에서는 길이 잘 보이는데 플레이 화면에서는 벽 뒤에 가려집니다. 같은 메시와 조명 조건에서 무엇을 먼저 확인할까요? 또 Unlit 재질의 표지판이 조명 강도를 바꿔도 같은 색으로 보인다면 곧바로 광원이 고장이라고 판단해도 될까요?
시점과 표면 표현으로 풀이하기
첫 경우에는 실제 플레이에 사용되는 카메라 시점과 장애물 가림을 확인합니다. 에디터에서 잘 보였다는 사실이 플레이어의 시점을 보장하지 않습니다. 둘째 경우에는 재질의 Unlit 표현과 입력을 먼저 확인합니다. 광원을 바꿀 때마다 메시·카메라·재질까지 동시에 바꾸면 원인을 구분하기 어려우므로 한 조건씩 비교합니다.
플레이 화면에서 확인할 기준
- 형태: 메시의 스케일·피벗·충돌이 플레이 공간과 맞는지 확인합니다.
- 가시성: 목표와 이동 경로가 실제 카메라 시점에서 읽히는지 확인합니다.
- 시점: 구도·거리·장애물 처리로 필요한 정보가 가려지지 않는지 확인합니다.
- 비용: 대상 기기에서 조명·그림자·메시·재질을 함께 측정합니다. Mobility 선택만으로 성능이나 품질이 보장되지는 않습니다.