품목정보
발행일 | 2022년 07월 07일 |
---|---|
쪽수, 무게, 크기 | 1240쪽 | 2156g | 188*245*55mm |
ISBN13 | 9788931558814 |
ISBN10 | 8931558813 |
발행일 | 2022년 07월 07일 |
---|---|
쪽수, 무게, 크기 | 1240쪽 | 2156g | 188*245*55mm |
ISBN13 | 9788931558814 |
ISBN10 | 8931558813 |
[1권] 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의 버튼 기능 구현하기 포인터 변수를 사용할 때 주의할 점 인생 언리얼 교과서 도판 목록 [2권] 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와 함께하는 메타버스 동향 |
요즘같이 영상컨텐츠가 잘 되어있는 시대에 책이란게 오히려 더 비효율적인 수단이 아닐까 항상 많은 의문을 가지고 있습니다. 이번에도 마찬가지 의문이 있는 와중에 해당 기술에 대해 간절한 마음으로 책을 보게 되었고, 영상은 영상이고 책은 책이다라는 생각을 하게 되었습니다. 그 전에 관련 컨텐츠로 많은 영상을 보면서 도움을 얻은 것은 분명하지만 책을 보면서 여태 배웠던 것들이 한줄로 명확하게 줄서기를 하여 질서정연해진 느낌을 받았습니다. 또한 중간중간 비어있던 중요한 정보들이 속속 채워져서 완벽해져가는 느낌을 받고 있습니다. 이 책이 두꺼워야 할 이유를 그 안의 내용들이 충실하게 설명하고 있는 책인것 같습니다. 정말 감사합니다.
언리얼 4 version의 최신버전은 없는것으로 알고 있습니다. 하지만 이책은 Unreal 4.27.2을 기반으로 설명을 하고 있습니다. 많은 책을 사서 보았지만 이렇게 최신 서적은 처음봅니다.
그리고 다른 책들은 C++이면 C++에 대해 치중적이고 Blueprint(비주얼스크립트) 면 거기에 치중되는 모습을 보았습니다. 저는 그게 불만이었습니다. Blueprint는 Blueprint의 장점이 분명 있고, C++은 C++대로 장점이 있기 때문입니다. 장점과 단점을 간단히 나열해 드리자면(필자의 생각이다.)
Blueprint : 흔히들 비주얼스크립팅이라고 부르는 노드.
장점 : 전공자가 아니라도 조금만 공부하면 알수 있다. 보통 디자이너들이 많이 쓴다.
애니메이션 상태(Blueprint노드)는 C++로 코딩하는것은 한계가 있기에, bp가 편하다.
단점: 비주얼스크립팅은 코딩을 한뒤 프로그래밍을 할때 언어로 한번더 컴파일과정을 하는 과정이 있기 때문에 C++보다 느릴수밖에 없다.
상대적으로 버벅이거나 4.27.2 version에서 버그가 발생하였다. 노드 검색이 안되는 버그라던가..그런 버그들이 난무한다.
bp 노드를 검색하기가 불편하다. 예를 들어 get actor owner 가 있다고 치자. get actor를 치게 된다면 그에 대한 결과가 필터링없이 '전부' 뜨기때문에 아무래도 제작이 느려지는 경향이 있다.
C++ : 흔히들 코드로 사용하는 프로그래밍.
장점 )
1.unreal에서는 smart pointer를 제공하고 있으므로 상대적으로 좀 다루기가 쉬운 쪽에 속한다.
2.상대적으로 C에서 파생된 하드웨어 친화적인 언어(하지만 객체지향의 특성을 갖고있기도하다.)이기 때문에 속도가 blueprint보다 빠를수밖에 없다.(이 이유에서는 언리얼엔진이 C++로 만들어졌기 때문에 훨씬 근본적인 시스템에 가까워서 더 그럴수밖에 없다.)
단점)
1. 기본적으로 프로그래밍의 지식이 얕은사람은 접근하기가 힘들다. 포인터의 문제라던지, 여러가지 알고리즘에 있어서 많은 에러사항을 일으키게 된다.
actor의 클래스만 보더라도 MyActor라고 쳤을때 MyActor.cpp와 MyActor.h의 2개의 파일로 나뉘게 된다.
MyActor.h라는 헤더 파일에서 설정해줘야 하는 Default값이 존재한다.
따라서 힘들다. 헤더파일에서 뭘 선언해줘야 되는지 모를뿐더러 beginplay()함수에서 어떻게 나가야 될지 모르기 때문이다.
2. 디자이너의 어려운 접근성
디자이너는 프로그래밍을 기본적으로 모른다. 그나마 게임을 개발하는 디자이너라면, 그래도 이름을 통해서 아 이게 어떤 역할을 하는 변수이구나를 예측할수 있다. 비주얼스크립팅으로 어떻게 프로그램이 돌아가는지도 유추가 가능할것이다. 하지만 C++에서는 지원하지 않는다.
그러기 때문에, 상대적으로 프로그래머만 접근하기 용이하지 디자이너 입장으로써는 접근하기 어렵다고 생각이 든다. 기획하는 사람들한테도 공통적으로 적용이된다. 그냥 디자이너라고 예시를 든것일뿐..
3. 너무나도 적은 예제와 접근성
기본적으로 언리얼 페이지에서 제공은 하고는 있기는 하다. 하지만 번역이 수월하지 않아서 어떻게 해야되는지 좀 해석이 필요한데다가, 기본적으로 어떻게 다뤄야 하는지 완전 세세히는 다루고 있지 않다. 예시로 엔진의 사용법이라든가 말이다. 그런면에서는 접근성이 떨어진다고 생각한다.
더 많은 장점, 더 많은 단점이 존재할것이라고 생각한다. 물론 프로그래머로써 코드로 세세히 조정할수 있다는 점은 마음에 들기는 하다. 하지만 예제가 너무 적고, BP와 C++를 병행해야 되는 일이 일어난다는 점에서, 시중에 있는 책들은 너무 한쪽에만 치우쳐져 있다고 생각한다.
그뿐만이 아니라 unreal 4.27.2버전은 여태까지 없었고, 이렇게 친절한 책은 다시는 없을것이라고 생각한다. 색깔이 컬러풀해서 읽기 좋을 뿐만 아니라 bp입문자 ~ C++개발 입문자~ 고급자까지 다양하게 읽을수 있는 책이라고 생각한다. 이 책은 기본적으로 1권과 2권으로 나뉘어져 있다. 그래픽관련 부분까지 세세히 설명하고 있어 좋은 책이라고 생각한다.
특히, SOO아카데미나 다른 아카데미에서도 배우지 않는 기법들을 설명하고 있다.
프로그래머라면 기본적으로 적용되는 공식이 있다.
"프로그래밍" 만 잘해야 된다는것. 내가 VR메타버스 개발(언리얼)을 하며 느낀 점은 절대 그렇지 않다는 점이다. 만져야 되는것들이 엄청 무지막지하게 많다. 그 기법들을 전부 배울수 있다는 점이 메리트이다. 믹사모나 애니메이션 리타깃팅, 등 필수적으로 해야하는 것들을 전부 담았다는게 메리트이다.
이책을 사둔다면 고급자까지 두고두고 활용할수 있을것이라고 생각한다.
책을 사고 후회한적이 많았는데, 이 책은 절대 후회한다고 생각이 들지 않는다.
리뷰도 별로 안쓰는 성격인데 책을 읽고 나서 이건 써야겠다는 생각이 들었다.
(주관적인 후기입니다.)
제가 봤던 언리얼 서적중에서 최고의 언리얼 서적이라고 생각합니다.
언리얼 엔진에 익숙하기 위한 기초 내용과 언리얼 블루프린트, 언리얼 C++에 대한 기초 및 응용에 대한 내용이 풍부해서 좋았습니다. 특히 언리얼 C++의 변수 및 함수의 역할에 대한 설명이 잘되어 있어서 좋았습니다.
기존 언리얼 서적들의 경우, 이 코드가 어떤 역할을 하는지에 대한 설명이 허술하게 되어 있어 그냥 따라가는 방향이였다면.. 이 서적은 그렇지 않는다는 겁니다.
기존 언리얼 서적들의 경우 번역이 엉망이거나, 내용 불친절 및 허술한 부분이 많이 있어서
책을 통한 언리얼 엔진 입문이 유니티 엔진보다 어려웠습니다. 그나마 인생 언리얼 교과서가 나오기 이전에는 괜찮은 언리얼 서적이 한권밖에 없었고요.
인생 언리얼 교과서는 기존 언리얼 서적들과 달리 친절한 설명과 자세한 설명이 잘 구성되어 있어서 언리얼 엔진을 입문하기 좋은 접근성의 서적이라고 생각합니다.
언리얼 엔진을 입문하는 입장으로써..
좋은 언리얼 서적을 출판해주신 저자분들에게 깊은 감사를 표합니다.