인생 언리얼 교과서 2권
언리얼 엔진으로 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?3
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)
언리얼 모션 그래픽이란?
애셋 생성하기
HP bar 표현하기
무기 교체 표현하기
미니맵 제작하기
UI_Screen 블루프린트
TPSPlayer 클래스와 UI_Screen 위젯 HP 연동하기
무기 교체 블루프린트
미니맵 블루프린트
UI_GameOver 제작하기
UI_GameOver 블루프린트
Chapter?4
언리얼 그래픽스
4.1 언리얼 그래픽스 개요
4.1-1 라이팅
디렉셔널 라이트? 추천
포인트 라이트, 스포트 라이트
스카이 라이트 ? 추천
렉트 라이트
라이트 임포턴스 볼륨 ? 추천
리플렉션? 추천
라이트 최적화
4.1-2 머티리얼 응용 1
Wet Ground 머티리얼 제작 준비하기
컬러의 믹싱(Multiply)
노멀의 혼합
4.1-3 머티리얼 응용 2
머티리얼 기본 설정하기
프레넬(Fresnel)을 활용한 표현하기
뎁스 페이드를 활용한 표현하기
좌표 값을 응용한 시각화하기
타임(Time)을 활용한 애니메이션
4.2 포스트 프로세스 이펙트
4.2-1 포스트 프로세스 이펙트 볼륨
포스트 프로세스 이펙트 볼륨 이해하기
블룸(Bloom)
앰비언트 오클루전(Ambient Occlusion)
뎁스 오브 필드(Depth Of Field)
4.2-2 포스트 프로세스 이펙트 머티리얼
포스트 프로세스 머티리얼 이해하기
포스트 프로세스 머티리얼 제작하기
포스트 프로세스 머티리얼 적용하기
4.2-3 포그 이펙트
익스포넨셜 하이트 포그(Exponential Hight Fog)
볼류메트릭 포그(Volumetric Fog)
하늘과 대기를 표현하는 법
4.3 파티클 시스템
4.3-1 파티클 시스템 개요
파티클 시스템 작동 원리 알아보기
파티클 시스템 생성하기
파티클 시스템 에디터 UI 알아보기
4.3-2 불 이펙트 제작하기
불 형태 파악하기
운동성 조절하기
색상 모듈 조절하기
생성 위치 조정하기
불꽃 입자의 크기 조정하기
4.3-3 불 이펙트 머티리얼 제작하기
불꽃 입자 머티리얼 제작하기
시퀀스 텍스처 이펙트 제작하기
4.4 시퀀스 애니메이션
4.4-1 시퀀서 시작하기
시퀀스 애셋 생성하기
연출 기획
4.4-2 시퀀서 구성 및 카메라 제어하기
씨네카메라를 이용한 화면 연출하기
스켈레탈 메시를 활용한 애니메이션 연출하기
블루프린트를 활용한 시퀀스 제어하기
시퀀스 영상 추출하기
4.5 애니메이션 리타깃팅
4.5-1 애니메이션 리타깃팅 준비하기
스켈레탈 메시 준비하기
플레이어 리타깃팅 준비 - 휴머노이드
믹사모 리타깃팅 준비 - 휴머노이드, 포즈 설정하기
애니메이션 리타깃팅
부록
부록 1 언리얼 엔진 5의 주요 기능 살펴보기
UI 개선
루멘(Lumen)
나나이트(Nanite)
월드 파티션
부록
부록 22메타버스 오버뷰
메타버스, 또 다른 나를 발견하는 새로운 세계
글로벌기업 메타와 MS의 메타버스 동향
언리얼 엔진 5와 함께하는 메타버스 동향