따라하며 배우는 언리얼 엔진5 입문 - 쇼다 츠야노
2022년 봄, 언리얼 엔진이 버전 5로 업그레이드 되었다. 무려 10년 만의 주요 버전 업그레이드.
저자는 이 책에서 모든 기능을 다루지는 못했지만 게임 제작에 필요한 최소한의 지식이라고 생각하는 내용에 초점을 맞춰 사용법과 실습 과정을 자세하게 설명했기 때문에 '지금 바로 게임을 만들고 싶다!'라는 꿈을 반드시 이룰 수 있을 것이라고 서문에 적어두었다.
Chapter1 언리얼 엔진 소개
언리얼 엔진 = 3D 게임 엔진.
3D 데이터를 계산한 후 렌더링 해 화면에 표시하는 기능은 물론 키보드나 마우스, 조이패드 등의 입력을 처리하는 기능과 애니메이션을 위한 기능 등을 갖추고 있다. 유니티보다 정교하다.
처음부터 모든 것을 다 이해하고 나서 사용하려면 십 년 후에나 게임 개발을 시작하게 될지 모르니 초보자라면 버릴 것을 우선 생각하자. 복잡한 기능을 배울 때는 상세 설명 문서를 여러번 읽는 것보다 직접 경험하는 것이 더 효과적이다.
에디터 화면의 기본 구성 설명. 여기에 이런게 있다는 정도만 알아두자.
- 툴바
- 아웃라이너
- 디테일
- 뷰포트 (뷰포트 옵션-레이아웃 패널 설정) (트랜스폼 툴-Q선택 W이동 E회전 R스케일) (스냅 기능!) (카메라 속도!)
- 콘텐츠 드로어
뷰포트 조작을 확실하게 익히고 다음 챕터로 넘어가자.
Chapter2 레벨과 액터
2.1액터 만들기
액터: 레벨에 배치되는 오브젝트. 3D 모델도 액터이고 라이트나 카메라 같은 것들도 액터이다.
액터의 종류
- 셰이프(스태틱 메시)
Mesh=입체적인 도형의 형태를 나타내는 데이터. Static=변화하지 않는 - 라이트
기본 레벨에 테이블과 의자가 제대로 보인 이유는 바로 라이트가 배치되어 있었기 때문 - 카메라
뷰포트의 표시는 카메라의 시점으로 표시된다. - 그 밖의 요소
플레이어 스타트, 스카이, 포그 등 플레이어의 시작 지점이나 배경이 되는 부분의 표시와 관련된 것들. 화면의 '물체'는 아니지만 역할에 대해서 알아두자.
큐브를 배치해서 다뤄보자.
기즈모: Gizmo=트랜스폼 툴에서 이동, 회전, 스케일을 선택하면 생기는 놈. 액터의 조작을 돕기 위해 표시되는 가이드.
디테일 패널에서는 선택한 액터에 관한 상세 정보가 표시됨. 액터의 기본적인 성질 등을 설정할 수 있다. 몇가지 중요한 항목만 설명
- Cube(인스턴스) - 선택한 액터에 어떤 컴퓨넌트가 포함되어 있는지 보여준다.
- 표시 전환 - 처음엔 일반 설정만 사용하다가 나중에 피직스, 렌더링 등을 사용하게 될 것이다.
일반 | 액터의 기본적인 설정(크기, 방향 등) |
액터 | 액터의 움직임 관련설정 |
LOD | 레벨 디테일 관련 설정 |
피직스 | 물리 엔진 관련 설정 |
렌더링 | 렌더링 관련 설정 |
스트리밍 | 스트리밍 관련 설정 |
기타 | 위에 포함되지 않는 것 |
전체 | 모든 설정을 모아서 표시 |
액터 안에 액터 추가하기: Cube(인스턴스)가 선택된 상태에서 디테일 패널의 Cube +추가 버튼을 누르면 겹친 도형을 만들 수 있다
Cube를 스태틱 메시로 변환, 저장, 사용하기
스태틱 메시: 생성한 액터를 부품으로 저장하여 언제든지 사용할 수 있도록 함
에셋: 프로젝트에서 사용하는 부품을 파일로 저장한 것
그 밖의 셰이프 액터를 배치해보자 - 평면 Plane : 두께가 없는 액터
머티리얼 설정하기: 콘텐츠 드로어Ctrl+Space 에서 머티리얼을 드래그해서 뷰포트에 있는 액터에 드롭
그 밖의 셰이프 액터를 배치해보자 - 스피어(구) Sphere / 실린더(원통) Cylinder / 원뿔 Cone /
2.2 레벨을 구성하는 부품
셰이프 액터처럼 눈에 보이는 부품이 아닌, 보이지 않는 부품을 살펴보겠다.
라이트
디렉셔널 라이트: 방향만 중요. 강도Intensity로 밝기 설정
스카이 라이트: 환경광, 빛과 그림자가 뚜렷하게 구분되지 않음
포인트 라이트: 어테뉴에이션 반경Attenuation Radius 항목에서 빛의 도달 범위 설정
스포트 라이트: 내부 원뿔 각도, 외부 원뿔 각도 조정
카메라
액터 배치 패널 - 모든 클래스 아이콘 - 카메라 액터 드래그 앤 드랍
필드 오브 뷰: 화각
디테일 - 자동 플레이어 활성화 - 플레이어 자동 활성화 : 플레이어를 특정 카메라에 설정하는 항목
플레이어 스타트
플레이 버튼 오른쪽 끝에 설정 버튼을 누르면 풀다운 메뉴에서 플레이 시작 위치를 카메라 위치로 변경할 수 있다.
스카이 (BP_Sky_Sphere)
BP_Sky_Sphere: 하늘을 그릴 때 사용하는 부품 (레벨에 통합된 것)
디테일 중 - Sun Brightness 태양의 밝기. 75가 기본값
디테일 중 - Cloud Speed 구름이 흘러가는 속도. 2.0이 기본값
디테일 중 - Cloud Opacity 구름의 투명도(=구름의 양) 1.0이 기본값
포그 (Atmospheric Fog)
Atmospheric Fog: 포그와 관련된 부품. 화면에 직접 표시되는 것이 아니라 포그에 대한 설정을 하면 렌더링 시에 그려준다.
애트머스피어 높이: 대기의 두께
다중 스캐터링: 난반사
아트 디렉션 - 대기 원근 뷰 디스턴스 스케일: 대기에 의한 원근감의 영향 (시골 공기와 도시 공기의 차이)
애트머스피어 - 레일리 - 레일리 스캐터링Rayleigh Scattering: 레일리 산란 계수. 하늘의 색을 바꿀 수 있다.
애트머스피어 - 미에Mie - 미에 스캐터링: 태양빛의 색상과 대기에 미치는 영향을 조절
2.3 퀵셀 브리지와 마켓플레이스
기성 모델을 자신의 프로젝트에 임포트해서 사용해보자.
퀵셀 브리지 사용하기
퀵셀 브리지는 퀵셀(에픽게임즈의 자회사)이 제공하는 라이브러리에 접근하기 위한 전용 기능. 'Megascans'라는 고품질 모델 데이터 라이브러리를 제공한다. 퀵셀 브리지 플러그인이 보이지 않을 때
제공되는 데이터의 종류
3D Assets | 3D 모델 등의 라이브러리 |
3D Plants | 3D 식물 라이브러리 |
Surfaces | 머티리얼 등의 라이브러리 |
Decals | 데칼(메시에 투영되는 머티리얼) 라이브러리 |
Imperfections | 머티리얼 등에서 사용되는 텍스처맵 라이브러리 |
(여기서부터 책과 실제 화면이 달라서 알아보니 2025년부터 메가스캔의 에셋이 유료가 되고 작년 10월에 통합 마켓플레이스 팹이 출시됨)
마켓플레이스 이용하기
추가 아이콘에서 언리얼 마켓플레이스를 클릭하면 Fab 인터넷 페이지로 연결된다 (책내용과 다름)
언리얼 5.0.3 버전에서는 Fab 플러그인이 호환이 안돼서 최신버전을 설치했다
Fab에서 Stack O Bot (샘플 게임 콘텐츠)를 라이브러리에 추가하고 프로젝트 열어서 게임 패키징 해보기
각 플랫폼에 맞는 게임을 제작하기 위해 소프트웨어 개발 키트(SDK)가 필요하다. 어떤 소프트웨어가 필요할까?
- Windows 애플리케이션: Windows 10/11 + Visual Studio 2019('C++를 사용한 데스크톱 개발', 'C++를 사용한 게임 개발'을 설치)
- macOS / iOS 애플리케이션: MacOS Monterey + Xcode (ver.13 이상)
- Android 애플리케이션: Android Studio + Android SDK 최신 버전
툴바 - 플랫폼 - (각 플랫폼) - 바이너리 구성
- 프로젝트 세팅 사용: 프로젝트에서 플레이할 때
- DebugGame
- 개발 (Development): 개발 버전으로 패키지 생성할 때
- Shipping: 개발이 완료되어 정식 릴리스할 때
Chapter3 머티리얼
3.1 머티리얼의 기본