책소개
언리얼 엔진으로 3D 이머시브 콘텐츠 개발
몰입형 실감 콘텐츠(Immersive Contents) 개발자를 위한
언리얼 엔진의 모든 것
미국 에픽게임즈 사가 개발한 리얼타임 3D 제작 플랫폼으로 몰입형 실감 콘텐츠를 제작하는 언리얼 언진(Unreal Engine)은 개발자라면 메타버스 시대에 누구나 한번 배워야 하는 개발환경으로 꼽힌다. 유니티가 C#을 채택한 반면 언리얼엔진은 개발자에게 익숙한 C++을 사용한다는 점도 매력으로 꼽힌다. 유니티가 모바일 게임에 강점이 있다면 언리얼은 비디오 게임을 비롯한 3D 실사 콘텐츠로 ‘존재’를 느끼게 해주는 몰입형 콘텐츠의 최강자이며 메타버스 시대에 걸맞는 메타휴먼 크리에이터를 비롯한 다양한 기능으로 일반 사용자는 물론 개발자들을 사로잡고 있다.
언리얼 엔진은 원래 에픽게임즈의 첫 게임 [언리얼]에 사용될 목적으로 개발된 엔진이라 ‘언리얼’ 하면 에픽게임즈의 간판 스타이자 누구나 언리얼 엔진을 떠올릴 정도로 게임 엔진의 동의어로도 사용된다. 언리얼 엔진 5가 지난 3월 발표되면서 기대감이 한껏 고조된 지금, 언리얼 엔진 4를 기반으로 5를 준비하는 개발자와 학생을 위한 본격 언리얼 교재이다. 이 책의 예제 진행 구성은 프로토타입, 알파타입, 베타타입 버전로 구성되어 실제 실무 제작 프로세스를 경험할 수 있게 구성되었다.
특히 이 책은 [인생 유니티 교과서], [인생 유니티 VR/AR 교과서]를 집필했던 전문 강의 그룹 ARA의 이영호 대표를 필두로 한 저자들이 이미 검증된 강의력과 필력을 자랑하며, 언리얼 엔진의 비주얼 스크립팅인 언리얼 블루프린트, 언리얼 에디터를 활용해 실전 게임을 제작해 본다.
책은 통권으로 출간되지만 휴대하기 쉽게 분권으로 출간되었다.
특히 저자 카페(https://m.cafe.naver.com/unrealunity.cafe)를 통해 코드 및 문의사항 업데이트가 진행됨은 물론 예제 코드는 성안당 자료실에서, 강의 파워포인트는 성안당 강의자료실에서 제공하며, 유료 강의 영상은 성안당 이러닝(bm.cyber.co.kr)에서 수강 가능하여 강의자와 학습자 모두를 만족시키는 독보적인 언리얼 교재가 될 것으로 보인다.
목차
Chapter?1
언리얼 엔진 알아보기
1.1 언리얼 엔진 개요
1.1-1 리얼타임 엔진의 현재와 미래
리얼타임 엔진이란?
메타버스와 리얼타임 엔진
1.1-2 언리얼 엔진 소개
언리얼 엔진의 시작
언리얼 엔진의 현재와 활용 분야
1.2 콘텐츠 개발 방법론
1.2-1 프로젝트 제작의 이해
콘텐츠 제작 프로세스의 이해
1.2-2 언리얼 엔진의 제작 방법
레고와 언리얼 엔진 제작 방법 비교
1.3 언리얼 엔진 설치하기
1.3-1 언리얼 회원 가입과 설치하기
에픽게임즈 가입하기
에픽게임즈 런처 다운로드 후 설치하기
에픽게임즈 런처로 언리얼 엔진 설치하기
1.4 언리얼 엔진의 화면 구성
1.4-1 새로운 프로젝트 생성하기
프로젝트 생성하기
프로젝트 생성 옵션 설정하기
1.4-2 언리얼 엔진의 화면 구성 살펴보기
언리얼 엔진 에디터의 언어 변경하기
언리얼 엔진 에디터의 화면 구성
1.5 액터 다루기
1.5-1 언리얼 엔진 에디터의 기본 조작 방법 알아보기
뷰포트 카메라 조작하기
액터의 이동, 회전, 크기 조작하기
1.5-2 지오메트리 브러시 액터를 이용한 공간 디자인
레벨 저장하기
새 레벨 만들기
지오메트리 브러시 액터
아파트 평면도 준비하기
벽 만들기
주방 및 식당 만들기
문 구멍 뚫기
1.5-3 재질 표현하기
3D 모델링 데이터의 구성
언리얼 엔진 머티리얼의 이해
머티리얼 제작 및 적용
1.5-4 문과 창문 추가하기
문 액터 배치하기
1.5-5 조명 배치하기
라이트 액터의 종류
라이트 소품 배치하기
라이트 배치하기
Chapter?2
게임 제작하기
2.1 블루프린트 사용하기
2.1-1 코딩과 비주얼 스크립팅
언리얼 프로젝트 준비하기
액터 블루프린트 제작하기
Hello World! 출력하기
2.1-2 블루프린트 스크립팅의 기초
블루프린트 노드의 구조와 제어 흐름
데이터의 그릇, 변수(Variable)
원하는 동작을 하는 노드, 함수(Function)
Flow Control 1 ? 조건문
Flow Control 2 ? 반복문
2.1-3 클래스와 라이프 사이클
클래스란 무엇인가?
객체지향 프로그래밍
언리얼 엔진의 라이프 사이클 함수
2.2 프로토타입 버전 제작하기
2.2-1 프로토타이핑 환경 구성하기
슈팅 프로젝트 생성하기
Game Mode Base 제작하기
카메라와 조명 설치하기
2.2-2 플레이어 이동하기
플레이어 블루프린트 생성하기
사용자의 입력 바인딩하기
플레이어 이동 처리하기
2.2-3 총알 발사하기
총알 블루프린트 생성하기
총알 발사 입력 키 바인딩하기
총알 생성 기능 구현하기
총알 발사음 넣기
2.2-4 적(Enemy) 제작하기
Enemy 블루프린트 생성하기
Enemy 공장 액터 제작하기
Enemy의 이동 방향 추첨하기
2.2-5 충돌(Collision) 처리하기
콜리전 생성하기
콜리전 설정하기
충돌 이벤트 구현하기
킬 존(Kill Zone) 제작하기
2.2-6 배경 스크롤하기
이미지 가져오기(Image Import)
이미지를 3D 월드 공간에 배치하기
이미지의 UV를 스크롤하기
Light Map Bake와 Cast Shadow 설정하기
2.3 알파타입 버전 제작하기
2.3-1 외부 모델링으로 교체하기
외부 모델링 파일 가져오기
머티리얼 설정하기
스태틱 메시 교체하기
에너미에게 회전 기능 추가하기
2.3-2 점수 UI 제작하기
점수 누적 함수 만들기
점수 누적 함수 호출하기
현재 점수 UI 제작하기
위젯을 화면에 출력하기
2.3-3 게임 오버 UI 제작하기
게임 오버 위젯 만들기
게임 오버 UI를 화면에 출력하기
일시 정지 및 마우스 커서 보이기
버튼 기능 구현하기
2.4 베타타입 버전 제작하기
2.4-1 최고 점수 표시 및 데이터 저장하기
최고 점수UI 제작하기
최고 점수 갱신하기
점수를 파일로 저장하고 불러오기
2.4-2 실행 파일로 패키징하기
패키징 전 프로젝트 설정하기
프로젝트 패키징하기
2.5 언리얼 C++ 기초
2.5-1 C++를 이용한 언리얼 엔진 개발하기
비주얼 스튜디오 2019 설치 확인하기
새 프로젝트 생성하기
Hello World 출력하기
2.5-2 C++에서의 변수와 함수
기본 자료형 변수 제작하기
UPROPERTY 시스템
C++ 함수 만들기
전역 변수와 지역 변수
UFUNCTION 시스템
2.5-3 C++에서의 조건문과 반복문
조건문
반복문
2.5-4 접근 한정자와 생성자, 그리고 포인터
접근 한정자
생성자(Constructor)
포인터(Pointer)
값에 의한 호출(Call by value)과 참조에 의한 호출?
(Call by reference)
2.6 C++ 슈팅 프로젝트 제작하기
2.6-1 슈팅 프로젝트 환경 구성하기
레벨 생성 및 기본 맵 지정하기
GameModeBase 클래스 만들기
카메라와 라이트 배치하기
2.6-2 플레이어 제작하기
플레이어 클래스 생성하기
사용자의 입력 키 바인딩하기
이동 공식 적용하기
2.6-3 총알 제작하기
Bullet 클래스 생성하기
총알을 전방으로 이동시키기
마우스 버튼 입력 액션
총알 생성 기능 구현하기
총알 발사 효과음 구현하기
2.6-4 적(Enemy) 제작하기
Enemy 클래스 및 블루프린트 생성하기
추첨에 의한 이동 방향 결정 기능
저장된 방향으로 이동하는 기능 구현하기
에너미 생성 액터 제작하기
2.6-5 충돌(Collision) 처리하기
Collision 채널 설정하기
개별 Collision Response 설정하기
충돌 이벤트와 델리게이트
킬 존(Kill Zone) 제작하기
2.6-6 점수 UI 제작하기
점수 누적 함수 만들기
UserWidget 클래스 생성하기
현재 점수를 위젯에 반영하기
2.6-7 게임 오버 UI 제작하기
게임 오버 위젯 제작하기
게임 오버 시 위젯 띄우기
게임 오버 UI의 버튼 기능 구현하기
포인터 변수를 사용할 때 주의할 점
인생 언리얼 교과서 도판 목록