미리보기
인생 언리얼 5 프로젝트 교과서 (개정증보 1판 1쇄)
언리얼 엔진으로 3D 이머시브 콘텐츠 개발
ISBN 978-89-315-7127-1
eBook ISBN 978-89-315-9454-6
저자 이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진
발행일 2024-06-12
eBook 발행일 2024-06-12
판형 188x245
쪽수 1,280쪽(1권 632쪽, 2권 648쪽)
제본 무선제본(투톱 합본)
색도 4도(올 컬러)
정가 59,000원↓
판매가 53,100
(10% off)
적립금 2,950원(5%)
  소득공제
도서소개

fd4ab40c38c529d06298099cd12bc69f.jpg
 

책 소개

몰입형 실감 콘텐츠(Immersive Contents) 개발자를 위한

언리얼 엔진의 모든 것

 

언리얼 엔진으로 3D 이머시브 콘텐츠 개발

인생 언리얼 5 프로젝트 교과서 

언리얼 교재로 많은 사랑을 받았던 UE4 기반의 [인생 언리얼 교과서]가 가장 최신 버전인 언리얼 엔진 버전 5에 맞춰 전면 개정된 [인생 언리얼 5 프로젝트 교과서]로 개정증보판으로 선보였다.

 

미국 에픽게임즈 사가 개발한 리얼타임 3D 제작 플랫폼으로 몰입형 실감 콘텐츠를 제작하는 언리얼 언진(Unreal Engine)은 개발자라면 메타버스 시대에 누구나 한번 배워야 하는 실감 콘텐츠 개발환경으로 꼽힌다. 유니티가 C#을 채택한 반면 언리얼 엔진은 개발자에게 익숙한 C++을 사용한다는 점도 매력으로 꼽힌다. 유니티가 모바일 게임에 강점이 있다면 언리얼 엔진은 비디오 게임을 비롯한 3D 실사 콘텐츠로 존재를 느끼게 해주는 몰입형 콘텐츠의 최강자인 동시에 메타휴먼 크리에이터를 비롯한 다양한 기능으로 일반 사용자는 물론 개발자들을 사로잡고 있다.

 

특히 이 책은 [인생 유니티 교과서], [인생 유니티 VR/AR 교과서]를 집필했던 전문 강의 그룹 ARA의 이영호 대표를 필두로 한 저자 전원이 언리얼 공인 강사(Unreal Authorized Instructor) 자격증을 취득하여 공식적으로 검증된 탄탄한 강의 실력을 기반으로 언리얼 엔진의 비주얼 스크립팅인 언리얼 블루프린트와 더불어 언리얼 C++을 기반으로 언리얼 에디터를 활용해 실전 게임을 제작해 본다.

 

책은 통권으로 출간되지만 휴대하기 쉽게 분권이 가능한 투톱 제본 방식으로 출간되었다. 1권을 1~2장 초중급편(언리얼 엔진과 슈팅 게임 제작), 2권을 3~4장 고급편(TPS 게임 제작과 언리얼 그래픽스)으로 구분할 수 있다.

 

저자 카페(cafe.naver.com/unrealunity)를 통해 코드 및 문의사항 업데이트가 진행됨은 물론 예제 코드는 저자 깃허브(github.com/araxrlab/lifeunreal5)와 성안당 자료실을 통해 제공된다.

 

 

 

목차

목차

[1]

Chapter1 언리얼 엔진 알아보기

 

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 조명 배치하기

라이트 액터의 종류

라이트 소품 배치하기

라이트 배치하기

 

 

 

 

 

 

Chapter2 슈팅 게임 제작하기

 

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를 스크롤하기

그림자 표시 설정(Cast Shadow)

 

2.3 알파타입 버전 제작하기

2.3-1 외부 모델링으로 교체하기

외부 모델링 파일 가져오기

머티리얼 설정하기

스태틱 메시 교체하기

에너미에게 회전 기능 추가하기

 

2.3-2 점수 UI 제작하기

점수 누적 함수 만들기

점수 누적 함수 호출하기

현재 점수 UI 제작하기

위젯을 화면에 출력하기

 

2.3-3 게임 오버 UI 제작하기

게임 오버 위젯 만들기

게임 오버 UI를 화면에 출력하기

일시 정지 및 마우스 커서 보이기

버튼 기능 구현하기

 

2.4 베타타입 버전 제작하기2.4

2.4-1 최고 점수 표시 및 데이터 저장하기

최고 점수UI 제작하기

최고 점수 갱신하기

점수를 파일로 저장하고 불러오기

 

2.4-2 실행 파일로 패키징하기

패키징 전 프로젝트 설정하기

프로젝트 패키징하기

 

2.5 언리얼 C++ 기초2.4

2.5-1 C++를 이용한 언리얼 엔진 개발하기

비주얼 스튜디오 2022 설치 확인하기

새 프로젝트 생성하기

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의 버튼 기능 구현하기

포인터 변수를 사용할 때 주의할 점

 

인생 언리얼 교과서 도판 목록

 

 

 

[2]

Chapter3 TPS 게임 제작하기

 

3.1 프로토타입 버전 제작하기

3.1-1 TPS 프로젝트 생성하기

프로젝트 생성하기

소스 코드 관리하기

레벨 생성하기

유틸리티 매크로 작성하기

 

3.1-2 플레이어 생성하기

Character를 상속받는 플레이어 생성하기

플레이어 블루프린트 제작하기

게임 모드 클래스 정보 수정하기

 

3.1-3 플레이어 3인칭 카메라 및 외관 붙이기

플레이어의 외관 붙이기

3인칭 카메라 붙이기

 

3.1-4 플레이어 이동 처리하기

사용자 입력 맵핑하기

플레이어 회전 처리하기

플레이어 이동

 

3.1-5 총알 제작하기

Bullet 클래스 생성하기

필요한 컴포넌트 추가하기

블루프린트 Bullet 만들고 테스트하기

 

3.1-6 총알 발사하기

발사 입력 추가하기

총 메시 애셋 추가하기

플레이어에 총 추가하기

발사 기능 구현하기

총알 인스턴스 제거하기

 

3.1-7 스나이퍼 모드 구현하기

스나이퍼 애셋 가져오기

총 교체하기

스나이퍼 UMG 제작하기

스나이퍼 조준 모드 전환하기

LineTrace를 이용한 총알 발사하기

일반 조준 모드 구현하기

 

3.1-8 (Enemy) 생성하기

적 액터 만들기

외관 데이터 할당하기

 

3.1-9 AI 제어를 위한 FSM 제작하기

FSM 개요

FSM의 뼈대 설계하기

대기 상태 구현하기

이동 상태 구현하기

공격 상태 구현하기

피격 상태 구현하기

죽음 상태 구현하기

 

3.2 알파타입 버전 제작하기

3.2-1 플레이어 알파타입 버전 업그레이드하기

애니메이션 애셋 가져오기

애니메이션 개요

애니메이션 시퀀스 적용하기

애니메이션 블루프린트 적용하기

애니메이션 상태 머신

대기 상태 애니메이션

이동 상태 애니메이션

점프 상태 애니메이션

블렌드 스페이스를 이용한 애니메이션 합성하기

애니메이션 몽타주를 이용한 공격 처리하기

애니메이션과 총 위치 동기화하기

총 발사 진동 카메라 모션 처리하기

총 발사 사운드 재생하기

 

3.2-2 적 알파타입 버전 업그레이드하기

애셋 가져오기

외관 업그레이드하기

애니메이션 블루프린트 적용하기

애니메이션 상태 머신 추가하기

대기 상태 추가하기

이동 상태 추가하기

공격 상태 추가하기

C++ FSM과 애니메이션 FSM 동기화하기

피격 상태를 위한 애니메이션 몽타주

피격 애니메이션 시퀀스 등록하기

섹션 추가하기

슬롯 추가하기

애니메이션 블루프린트에서 몽타주 사용하기

피격 애니메이션 종료 노티파이 이벤트

죽음 상태를 위한 애니메이션 몽타주

내비게이션 시스템을 이용한 길 찾기

내비게이션 인보커를 이용한 길 찾기

패트롤 기능 추가하기

 

3.2-3 다중 적 생성하기

EnemyManager 클래스 생성하기

타이머 활용하기

적 생성하기

스폰할 위치 생성하기

 

3.3 베타타입 버전 제작하기

3.3-1 플레이어 베이스 컴포넌트 제작하기

클래스 생성하기

멤버 추가 및 초기화하기

 

3.3-2 플레이어 이동 컴포넌트 제작하기

이동 컴포넌트 생성하기

컴포넌트 등록하기

카메라 회전 처리 기능 옮기기

이동 기능 옮기기

 

3.3-3 플레이어 공격 컴포넌트 제작하기

공격 컴포넌트 생성하기

컴포넌트 등록하기

공격 관련 멤버 이동시키기

공격 관련 구현부 옮기기

 

3.3-4 동적 컴포넌트 추가하기

종속성 문제 분석과 해결 방안

델리게이트 동작 구조

델리게이트 매크로 함수

델리게이트 만들기

델리게이트 활용하기

델리게이트 실행하기

델리게이트를 이용한 컴포넌트 제어하기

블루프린트에서 컴포넌트 추가하기 테스트

 

3.3-5 게임 오버 처리하기

플레이어 체력 관리하기

플레이어 피격 이벤트 처리

게임 오버 처리하기

 

3.3-6 총 바꾸기 이벤트 처리하기

문제 제기

해결 방안

총 바꾸기 알림 이벤트 제작하기

 

3.3-7 위젯 블루프린트로 표현하는 언리얼 모션 그래픽

(UMG)

UMG 개요

애셋 생성하기

HP bar 표현하기

무기 교체 표현하기

미니맵 제작하기

UI_Screen 블루프린트

TPSPlayer 클래스와 UI_Screen 위젯 HP 연동하기

무기 교체 블루프린트

미니맵 블루프린트

UI_GameOver 제작하기

UI_GameOver 블루프린트

 

 

 

Chapter4 언리얼 그래픽스

 

4.1 프로토타입 버전 제작하기

4.1-1 대기 환경

지형 만들기

환경 라이팅

하늘 제작하기

포그 이펙트(Fog)

라이트 최적화

 

4.1-2 포스트 프로세스 이펙트

포스트 프로세스 이펙트 볼륨 이해하기

블룸(Bloom)

이미지 이펙트(Image Effects)

뎁스 오브 필드(Depth Of Field)

 

4.2 언리얼 머티리얼

4.2-1 머티리얼 응용 1

Wet Ground 머티리얼 제작 준비

컬러의 믹싱(Multiply)

노멀의 혼합

 

4.2-2 머티리얼 응용 2

머티리얼 기본 설정

프레넬(Fresnel)을 활용한 표현

뎁스 페이드(Depth Fade)을 활용한 표현

좌푯값을 응용한 시각화

타임(Time)을 활용한 애니메이션

 

4.2-3 포스트 프로세스 이펙트 머티리얼

포스트 프로세스 머티리얼 이해하기

포스트 프로세스 머티리얼 제작하기

모자이크 픽셀 비율 고정하기

포스트 프로세스 머티리얼 적용하기

 

4.3 나이아가라(Niagara)

4.3-1 나아이가라 개요

나이아가라의 작동 원리 알아보기

나이아가라 생성하기

나이아가라 에디터 UI 알아보기

 

4.3-2 불 이펙트 제작하기

불 형태 파악하기

불꽃 입자 생성하기

운동성 만들기

색상 적용하기

불꽃 입자의 생성 위치 조정하기

불꽃 입자의 크기 조정하기

 

4.3-3 불 이펙트 머티리얼 제작하기

불꽃 입자 머티리얼 제작하기

시퀀스 텍스처 이펙트 제작하기

 

4.4 시퀀스 애니메이션

4.4-1 시퀀서 시작하기

시퀀스 애셋 생성하기

연출 기획

 

4.4-2 시퀀서 구성 및 카메라 제어하기

씨네카메라를 이용한 화면 연출하기

스켈레탈 메시를 활용한 애니메이션 연출하기

블루프린트를 활용한 시퀀스 제어하기

시퀀스 영상 추출하기

 

4.5 애니메이션 리타깃팅

4.5-1 애니메이션 리타깃팅 준비하기

스켈레탈 메시 준비하기

Auto Retargeting 설정

IK Rig 셋팅

애니메이션 리타깃팅 설정하기

애니메이션 리타깃팅

 

저자

저자 소개

 

이영호 ARA XR Lab 대표

언리얼 공인 강사(Unreal Authorized Instructor)

전 가천대 게임영상학과 겸임교수

전 유니티 코리아 에반젤리스트

17년 이상 넥슨 및 게임 개발사에서 실무 개발

전 세종대, 명지전문대 겸임교수

 

박원석 WS Develop 대표

언리얼 공인 강사(Unreal Authorized Instructor)

와이디 온라인 등 게임 개발사에서 7년 실무 개발

전남대학교 법학과 학사

 

박현상 Bricx3 대표, 테크니컬 아티스트

언리얼 공인 강사(Unreal Authorized Instructor)

한국전파진흥협회, 정보통신진흥원, 부산정보 진흥원 등 다수 기관 및 대학에서 VR/AR/MR 분야 강의

스마일게이트, 위메이드 등 게임 개발사에서 10년 실무 개발

DNA LAB, 마로마브 등 다수 기업 자문

 

탁광욱 비엔티(BnT) 대표

언리얼 공인 강사(Unreal Authorized Instructor)

게임하이, 넥슨GT, 네오싸이언 등 게임 개발사 에서 10년 실무 개발

• ㈜하우온라인게임스쿨 원화 강사

건국대학교 산업디자인 학사

 

이영훈 위드제이소프트 대표

언리얼 공인 강사(Unreal Authorized Instructor)

한국전파진흥협회, 정보통신진흥원 등 기관 및 대학에서 유니티 및 XR 분야 강의

와이디온라인, 넥슨 등의 게임 개발사에서 15년 이상 실무 개발

 

김현진 어플리케 대표

언리얼 공인 강사(Unreal Authorized Instructor)

코이엔터테인먼트 부사장

버드레터 개발실장

HotdogStudio 등 게임 개발사에서 10년 실무 개발

 

 

 

 

 

부록/예제소스
정오표
    최근 본 상품 1