같은 공간도 색과 빛이 바뀌면 달라진다
지난 장에서 바닥, 벽, 장애물을 배치해 테스트 스테이지의 형태를 만들었습니다. 하지만 아직은 회색 박스처럼 보일 가능성이 큽니다. 형태만으로도 게임을 테스트할 수는 있지만, 플레이어가 "여기가 길이다", "저기는 위험하다", "저 물체는 중요하다"라고 느끼게 하려면 겉모습과 빛이 필요합니다.
이번 장에서는 두 가지를 다룹니다.
머티리얼(Material): 오브젝트 표면의 색, 거칠기, 금속 느낌 등을 정하는 에셋입니다.
조명(Light): 장면을 밝히고 그림자와 분위기를 만드는 액터입니다.
쉽게 말해 Static Mesh가 물체의 "모양"이라면, Material은 그 물체의 "피부"입니다. 같은 큐브라도 회색 콘크리트처럼 보일 수 있고, 반짝이는 금속 상자처럼 보일 수도 있습니다.
이번 실습의 목표는 거창한 그래픽을 만드는 것이 아닙니다. 우리가 만든 작은 3D 수집 게임의 테스트 스테이지를 보기 좋고 읽기 쉬운 장면으로 바꾸는 것입니다.
AI 생성 이미지
Material은 Static Mesh의 겉모습을 정한다
언리얼 엔진에서 레벨에 배치한 큐브, 구체, 벽, 바닥은 보통 Static Mesh를 사용합니다. Static Mesh는 기본 형태가 고정된 3D 모델 에셋이라고 생각하면 됩니다. 레벨 안에서는 위치, 회전, 크기를 바꾸거나 블루프린트로 움직일 수도 있지만, 캐릭터처럼 뼈대가 움직이며 형태가 변하는 모델과는 구분됩니다.
여기에 Material을 연결하면 표면의 색과 질감이 결정됩니다. 예를 들어 같은 Cube라도 다음처럼 다르게 보이게 만들 수 있습니다.
바닥: 어두운 회색, 거친 표면
벽: 밝은 베이지색, 약간 거친 표면
수집 아이템: 노란색, 금속 느낌, 반짝이는 표면
위험 구역: 붉은색, 눈에 잘 띄는 표면
초보자는 처음부터 복잡한 텍스처를 쓰지 않아도 됩니다. Base Color, Roughness, Metallic 세 값만 바꿔도 충분히 느낌이 달라집니다.
Base Color: 표면의 기본 색입니다.
Roughness: 표면이 얼마나 거친지 정합니다. 값이 낮으면 반짝이고, 높으면 빛 반사가 부드럽게 퍼집니다.
Metallic: 금속 느낌의 정도입니다. 0이면 비금속, 1이면 금속에 가깝습니다.
바닥 머티리얼 만들기
먼저 바닥에 사용할 간단한 머티리얼을 만들어 보겠습니다.
Content Browser 또는 Content Drawer를 엽니다.
이전 장에서 만든
Materials폴더가 있다면 그 안으로 들어갑니다. 없다면 새 폴더를 만들고 이름을Materials로 정합니다.빈 공간에서 마우스 오른쪽 버튼을 누릅니다.
Material을 선택합니다.
이름을
M_Floor로 정합니다.M_Floor를 더블 클릭해 Material Editor를 엽니다.
Material Editor가 열리면 가운데에 큰 노드가 보입니다. 이 노드가 최종 머티리얼의 결과입니다. 우리는 여기에 색과 숫자 값을 연결할 것입니다.
Base Color 연결하기
그래프의 빈 공간에서 키보드
3을 누른 채 클릭합니다.작은 색상 노드가 생깁니다. 이것은 RGB 색을 만드는 노드입니다.
노드를 선택하고 색을 어두운 회색이나 살짝 푸른 회색으로 바꿉니다.
이 노드의 출력 핀을 메인 Material 노드의 Base Color에 연결합니다.
바닥은 너무 밝으면 캐릭터나 아이템이 묻힐 수 있습니다. 처음에는 약간 어두운 회색 계열이 안전합니다.
Roughness 연결하기
빈 공간에서 키보드
1을 누른 채 클릭합니다.숫자 하나를 담는 Constant 노드가 생깁니다.
값을
0.7정도로 설정합니다.이 노드를 메인 Material 노드의 Roughness에 연결합니다.
Roughness가 0.7이면 표면이 꽤 거칠어 보입니다. 바닥이 거칠면 빛이 너무 강하게 반사되지 않아 장면이 안정적으로 보입니다.
저장하고 적용하기
Material Editor 상단의 Apply를 누릅니다.
Save를 누릅니다.
레벨로 돌아옵니다.
바닥 Actor를 선택합니다.
Details Panel의 Materials 항목에
M_Floor를 드래그해 넣습니다.
Actor의 종류에 따라 Materials 항목이 바로 보이거나, Static Mesh Component를 선택했을 때 보일 수 있습니다. 보통은 Element 0 같은 슬롯에 머티리얼을 넣으면 됩니다.
이제 회색 기본 큐브였던 바닥에 우리가 만든 색과 표면 느낌이 적용됩니다.
벽과 아이템 머티리얼 만들기
이번에는 벽과 수집 아이템용 머티리얼을 추가로 만들어 보겠습니다. 방법은 같습니다. 머티리얼 이름과 값만 다르게 하면 됩니다.
벽 머티리얼 예시
새 Material을 만들고 이름을 M_Wall로 정합니다.
추천 값은 다음과 같습니다.
Base Color: 밝은 베이지색 또는 연한 회색
Roughness:
0.8Metallic: 연결하지 않거나
0
벽은 바닥보다 약간 밝게 두면 공간의 경계가 잘 보입니다. 단, 너무 새하얗게 만들면 조명을 받았을 때 눈부셔 보일 수 있습니다.
수집 아이템 머티리얼 예시
다음으로 수집 아이템에 쓸 머티리얼을 만듭니다. 아직 실제 수집 기능은 만들지 않았지만, 앞으로 사용할 중요한 오브젝트라고 생각하고 눈에 잘 띄게 만들어 보겠습니다.
새 Material 이름을 M_CollectItem으로 정합니다.
추천 값은 다음과 같습니다.
Base Color: 노란색 또는 금색
Roughness:
0.25Metallic:
0.8
Metallic 값이 높고 Roughness 값이 낮으면 빛을 더 강하게 반사해 금속처럼 보입니다. 이 조합은 아이템을 "중요한 물체"처럼 보이게 만드는 데 좋습니다.
단, 모든 오브젝트를 반짝이게 만들 필요는 없습니다. 바닥, 벽, 장애물까지 모두 반짝이면 플레이어가 어디를 봐야 할지 헷갈립니다. 반짝이는 재질은 아이템, 보상, 특별한 장치처럼 강조하고 싶은 대상에만 쓰는 편이 좋습니다.
조명은 장면의 방향을 정한다
머티리얼을 입혔다면 이제 빛을 조절할 차례입니다. 언리얼 엔진의 조명은 단순히 "밝게 만드는 기능"이 아닙니다. 플레이어의 시선을 유도하고, 공간의 분위기를 만들고, 물체의 형태를 읽기 쉽게 만드는 도구입니다.
초보자가 먼저 알면 좋은 조명은 세 가지입니다.
| 조명 | 특징 | 사용 예시 |
|---|---|---|
| Directional Light | 한 방향으로 전체 장면을 비춤 | 태양빛, 달빛 |
| Point Light | 한 지점에서 모든 방향으로 빛을 퍼뜨림 | 전구, 횃불, 가로등 |
| Spot Light | 원뿔 모양으로 특정 방향을 비춤 | 손전등, 무대 조명, 강조 조명 |
Directional Light는 넓은 야외 장면의 기본 빛으로 쓰기 좋고, Point Light는 특정 위치 주변을 밝히는 데 적합합니다. Spot Light는 한 물체나 좁은 구역을 강조할 때 유용합니다.1
Directional Light로 기본 햇빛 조절하기
Third Person 템플릿으로 시작했다면 레벨 안에 이미 Directional Light가 있을 가능성이 큽니다. World Outliner에서 DirectionalLight 또는 비슷한 이름을 찾아 선택해 보세요.
Directional Light는 위치보다 회전 방향이 중요합니다. 태양이 어느 위치에 놓였는지보다 빛이 어느 방향에서 들어오는지가 장면에 더 큰 영향을 줍니다.
다음 순서로 조절해 봅니다.
World Outliner에서 Directional Light를 선택합니다.
회전 도구 단축키
E를 누릅니다.빛의 방향을 조금씩 돌려 봅니다.
바닥과 벽의 그림자가 어떻게 바뀌는지 확인합니다.
Details Panel에서 Intensity 값을 조절합니다.
낮 장면처럼 만들고 싶다면 빛을 위에서 비스듬히 내려오게 합니다. 그림자가 너무 길면 해가 낮게 떠 있는 느낌이 나고, 그림자가 짧으면 한낮에 가까운 느낌이 납니다.
처음에는 Intensity를 크게 바꾸기보다 회전부터 조절하는 것이 좋습니다. 빛 방향만 바꿔도 장면의 입체감이 크게 달라집니다.
Point Light로 아이템 주변을 밝히기
수집 아이템은 플레이어가 쉽게 알아봐야 합니다. 머티리얼을 금색으로 만드는 것도 좋지만, 근처에 작은 Point Light를 두면 더 잘 보입니다.
상단 메뉴 또는 Place Actors 패널에서 Point Light를 찾습니다.
레벨로 드래그해 수집 아이템 근처에 배치합니다.
Location의 Z 값을 올려 아이템보다 약간 위에 둡니다.
Details Panel에서 Light Color를 노란색이나 따뜻한 색으로 바꿉니다.
Intensity와 Attenuation Radius를 조절합니다.
Attenuation Radius는 빛이 닿는 범위입니다. 범위가 너무 크면 레벨 전체가 노랗게 물들 수 있습니다. 아이템 주변만 은은하게 밝아지는 정도로 줄여 보세요.
작은 수집 게임에서는 Point Light를 "여기 뭔가 있다"라는 신호로 사용할 수 있습니다. 다만 아이템마다 너무 강한 조명을 붙이면 장면이 복잡해지고 성능에도 부담이 될 수 있습니다. 중요한 아이템 몇 개에만 사용하는 습관이 좋습니다.
Spot Light로 목표 지점 강조하기
Spot Light는 원뿔 모양으로 빛을 쏩니다. 특정 문, 목표 지점, 시작 위치, 점프해야 할 플랫폼을 강조할 때 유용합니다.
간단한 실습을 해 보겠습니다.
Spot Light를 레벨에 배치합니다.
목표로 삼을 벽이나 아이템을 향하게 회전합니다.
Details Panel에서 Outer Cone Angle을 조절해 빛의 범위를 정합니다.
Inner Cone Angle을 조절해 중심부의 강한 빛 영역을 정합니다.
Intensity를 낮게 시작한 뒤 조금씩 올립니다.
Spot Light는 너무 강하면 무대 조명처럼 과장되어 보일 수 있습니다. 처음에는 "살짝 눈에 띄게 한다"는 정도로 사용하세요.
Lumen은 빛의 반응을 실시간으로 보여 준다
언리얼 엔진 5에서는 Lumen이라는 실시간 전역 조명 시스템을 사용할 수 있습니다. 전역 조명은 빛이 물체에 닿은 뒤 주변으로 퍼지는 효과를 말합니다. 예를 들어 노란 벽에 빛이 닿으면 주변도 살짝 따뜻한 색을 띨 수 있습니다.
초보자 입장에서 Lumen의 장점은 명확합니다. 조명을 움직이거나 색을 바꾸면 결과를 비교적 빠르게 확인할 수 있습니다. 예전 방식처럼 매번 조명을 굽는 과정을 기다리지 않아도, 에디터에서 분위기 변화를 바로 보며 조절할 수 있습니다.
다만 Lumen이 모든 문제를 자동으로 해결해 주지는 않습니다. 빛이 너무 많거나, 너무 강하거나, 머티리얼이 지나치게 반짝이면 장면은 여전히 어색해질 수 있습니다. Lumen은 좋은 도구이지만, 최종 판단은 화면을 보는 사람이 해야 합니다.
확인할 곳은 다음과 같습니다.
상단 메뉴에서 Edit > Project Settings를 엽니다.
Engine > Rendering 항목으로 이동합니다.
Dynamic Global Illumination Method 또는 Global Illumination 관련 설정에서 Lumen이 선택되어 있는지 확인합니다.
필요하다면 Reflection Method도 Lumen으로 되어 있는지 확인합니다.
프로젝트나 엔진 버전에 따라 기본 설정과 메뉴 이름이 조금 다를 수 있습니다. Third Person 템플릿처럼 언리얼 엔진 5의 기본 템플릿으로 시작했다면 Lumen이 이미 켜져 있는 경우가 많습니다. 지금은 "빛이 주변에 퍼지는 느낌까지 계산해 주는 시스템" 정도로 이해하면 충분합니다.
너무 어두운 장면 고치기
초보자가 자주 겪는 첫 번째 문제는 장면이 너무 어두운 경우입니다. 이때 무작정 모든 조명의 Intensity를 크게 올리기보다 아래 순서로 확인하세요.
1. Directional Light가 꺼져 있지 않은지 확인하기
World Outliner에서 Directional Light를 선택합니다. Details Panel에서 Visible 또는 Actor Hidden In Game 관련 설정이 이상하지 않은지 봅니다. 실수로 조명을 숨겼거나 삭제했을 수 있습니다. 특히 에디터에서는 괜찮아 보이는데 Play를 눌렀을 때만 어둡다면 Hidden In Game 설정도 확인해 보세요.
2. 빛의 방향 확인하기
Directional Light의 방향이 장면을 읽기 어렵게 만들 수도 있습니다. 회전 도구로 빛 방향을 바꿔 보면서 바닥과 벽에 그림자가 자연스럽게 생기는지 확인합니다.
3. Exposure 확인하기
언리얼 엔진에는 카메라 노출처럼 밝기를 자동 조절하는 기능이 있습니다. 어두운 곳과 밝은 곳을 오갈 때 화면 밝기가 달라질 수 있습니다. 테스트 중 밝기가 계속 변해 헷갈린다면 Post Process Volume의 Exposure 설정을 나중에 고정할 수 있습니다. 지금은 "자동 밝기 조절이 있을 수 있다"는 사실만 기억해도 됩니다.
4. 머티리얼이 너무 어둡지 않은지 확인하기
조명 문제가 아니라 Base Color가 너무 어두운 경우도 많습니다. 바닥과 벽이 모두 검정에 가까우면 빛을 받아도 형태가 잘 보이지 않습니다. 바닥은 중간 회색, 벽은 그보다 조금 밝은 색으로 시작하면 안전합니다.
과하게 밝은 장면 고치기
두 번째 문제는 장면이 너무 밝거나 하얗게 날아가는 경우입니다.
1. Intensity를 낮게 시작하기
Point Light나 Spot Light를 추가할 때 Intensity를 크게 넣으면 주변이 쉽게 과해집니다. 값을 크게 올리기보다 낮은 값에서 시작해 조금씩 올립니다.
2. Attenuation Radius 줄이기
Point Light의 범위가 너무 넓으면 의도하지 않은 곳까지 밝아집니다. 아이템 강조용 조명이라면 아이템 주변만 비추도록 Attenuation Radius를 줄입니다.
3. 흰색 머티리얼 피하기
완전한 흰색 Base Color는 조명을 받았을 때 쉽게 눈부셔 보입니다. 흰 벽을 만들고 싶어도 약간 회색이나 베이지색을 섞는 편이 자연스럽습니다.
4. 반짝이는 재질을 남발하지 않기
Roughness가 낮고 Metallic이 높은 머티리얼이 많으면 장면 전체가 번쩍거릴 수 있습니다. 금속 느낌은 강조할 오브젝트에만 사용하세요.
작은 수집 게임에 적용하기
이제 우리가 만드는 작은 게임의 기본 장면을 다음처럼 정리해 봅니다.
바닥에는
M_Floor를 적용한다.벽에는
M_Wall을 적용한다.앞으로 수집 아이템으로 사용할 구체에는
M_CollectItem을 적용한다.Directional Light는 위에서 비스듬히 들어오게 회전한다.
중요한 아이템 근처에 약한 Point Light를 둔다.
목표 지점이나 출구 방향에는 Spot Light를 약하게 사용한다.
이 정도만 해도 회색 테스트 공간이 "게임 장면"처럼 보이기 시작합니다. 중요한 것은 사실적인 그래픽을 만드는 것이 아니라, 플레이어가 공간을 잘 읽게 만드는 것입니다.
색과 빛은 길 안내 역할도 합니다. 밝은 곳은 안전해 보이고, 어두운 곳은 조심해야 할 것처럼 느껴집니다. 금색으로 빛나는 물체는 보상처럼 보입니다. 붉은 조명은 위험 신호처럼 느껴집니다. 이런 기본 감각을 이용하면 복잡한 설명 없이도 플레이어를 자연스럽게 움직이게 할 수 있습니다.
저장하고 비교하는 습관
머티리얼과 조명은 조금만 바꿔도 결과가 크게 달라집니다. 그래서 실수해도 되돌릴 수 있는 습관이 중요합니다.
작업 중에는 다음 순서를 자주 반복하세요.
Material을 수정한 뒤 Apply와 Save를 누릅니다.
레벨로 돌아와 결과를 확인합니다.
조명을 조금 바꾼 뒤 Play로 직접 걸어 봅니다.
마음에 들지 않으면
Ctrl+Z로 되돌립니다.괜찮은 상태가 되면 Save All을 누릅니다.
Material Editor에서 Apply는 현재 변경한 머티리얼을 장면에 반영하는 과정이고, Save는 그 에셋을 파일로 저장하는 과정이라고 생각하면 됩니다. 둘 다 습관처럼 눌러 두면 "분명 바꿨는데 왜 적용이 안 됐지?" 같은 실수를 줄일 수 있습니다.
에디터 화면에서 보기 좋은 장면이 실제 플레이 화면에서도 항상 보기 좋은 것은 아닙니다. 캐릭터 시점으로 걸어 다니며 확인해야 합니다. 아이템이 잘 보이는지, 벽과 바닥이 구분되는지, 그림자가 너무 어둡지 않은지 직접 확인하세요.
이번 장에서 우리는 오브젝트에 색과 표면 느낌을 입히고, 기본 조명으로 장면의 분위기를 잡았습니다. 다음 장부터는 이 공간에 게임 규칙을 넣기 시작합니다. 블루프린트를 사용해 아이템이 반응하고, 플레이어의 행동에 따라 변화하는 장면을 만들어 갈 것입니다.
참고
1Unreal Engine 5: Explaining Light Types and Their Parameters
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.