책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/unreal-ai)
요약
정식으로 프로그래밍 교육을 받지 않은 아티스트나 디자이너 등 게임 업계 종사자 및 학생들을 위한 책이다. 언리얼 엔진 4의 블루프린트 기능을 비주얼 스크립팅 언어로 활용해 다양한 AI 행동 양식을 만들어 내는 기본론을 알기 쉽게 설명한다. 언리얼 엔진 4의 4.7.0 버전을 기준으로 저작됐으며, 언리얼 엔진을 기존에 사용해 본 경험이 있는 독자라면 쉽게 따라할 수 있는 다양한 예제를 중심으로 AI 만드는 법을 쉽게 풀어냈다.
이 책에서 다루는 내용
■ 언리얼 엔진 4 게임 AI와 관련된 기초 컴포넌트 이해
■ 언리얼 엔진 4 게임 AI 소개
■ 폰(pawn)의 내비게이션 설정, 커스터마이즈, 배정과 AI 컴포넌트
■ 게임 AI 행동 양식 생성, 디버그, 분석
■ 비헤이비어 트리(Behavior Tree) 방법론을 이용한 반응성 좋은 게임 AI 설계
■ AI와 상호작용하도록 설계된 스마트한 오브젝트 생성
■ 프로젝트에서 고급 AI 기능을 활용한 사용자 경험 극대화
이 책의 대상 독자
이 책은 언리얼 엔진 4의 게임 AI에 대해 더 알아보고자 하는 프로그래머와 아티스트를 대상으로 한다. 언리얼 엔진 4에 대한 개요는 생략하고 바로 게임 AI를 살펴볼 것이므로, 이전에 언리얼 엔진을 사용해봤기를 바란다.
이 책의 구성
1장. ‘게임 AI 소개’에서는 AI의 기본 개념과 함께, AI가 어떻게 게임 경험에 직접적인 영향을 미치며 또 향상시키는지 소개한다. 특히 전통적인 AI와 게임에 특화된 AI의 목적이 어떻게 다른지 알아본다.
2장. ‘기본 AI 생성’에서는 당신의 첫 번째 AI를 직접 차근차근 만들어보면서, 여기에 사용되는 기술에 대해 설명한다. 언리얼 엔진 4에 바로 뛰어들어 기본 컴포넌트를 사용해 무작위로 움직이는 AI의 단일 상태를 만들어본다.
3장. ‘무작위성과 확률 추가’에서는 무작위성과 확률 기술을 어떻게 사용하는지 알려주며, 게임을 예측하기 어렵고 더욱 흥미롭게 만들어본다. 언리얼 엔진 4에서는 이 기술을 어떻게 사용해야 하는지 살펴본다.
4장. ‘이동 도입’에서는 언리얼 엔진 4에서 AI 캐릭터에 이동을 도입하는 법을 소개한다. 캐릭터가 레벨 안에서 지능적으로 내비게이션하게 할 때는 길 찾기(path finding)가 쓰인다.
5장. ‘AI에게 선택권 부여’에서는 비헤이비어 트리(Behavior Tree)를 이용해 캐릭터에 자동적인 비헤이비어를 넣는 방법을 설명한다. 비헤이비어 트리는 나무 형태의 구조로 AI의 로직을 시각적으로 구성하며, 다양한 캐릭터에 재사용할 수 있는 기법이다.
6장. ‘AI의 감각은 어떻게 이뤄지는가?’에서는 언리얼 엔진 4에서 우리의 AI가 월드 안에 배치해둔 다른 AI와 폰(pawn)을 감지할 수 있게 해주는 다양한 컴포넌트의 사용법을 설명한다.
7장. ‘고급 이동’에서는 군집(flocking)과 같은 고급 길 따라가기(path-following) 행동을 집중해서 살펴본다. 군집은 여러 AI 캐릭터에 대한 그룹 행동 양식을 만들 수 있게 해준다.
8장. ‘순찰, 추적, 공격하는 AI’에서는 이전 장들에서 사용해 우리의 AI 캐릭터가 내비게이션하게 해줬던 AI 감각과 이동을 포함해 여러 컴포넌트를 조합해본다. 그런 다음, AI 캐릭터가 감지한 캐릭터를 추격하는 데 보내는 시간을 무작위로 적용해볼 것이다.
9장. ‘지금까지 배운 내용’에서는 이전 장에서 다룬 내용들을 간략히 복습한다. 또한 이 책에서 배운 것을 서로 결합해 어떤 것들을 얻을 수 있는지 논의해본다.
상세이미지
목차
목차
- 1장. 게임 AI 소개
- 2장. 기본 AI 생성
- 3장. 무작위성과 확률 추가
- 4장. 이동 도입
- 5장. AI에게 선택권 부여
- 7장. 고급 이동
- 8장. 순찰, 추적, 공격하는 AI
- 9장. 지금까지 배운 내용
도서 오류 신고
정오표
정오표
2016. 11. 15 수정사항
[p.53: 아래에서 2행]
3. Actor Class 핀을 Hero로 설정한다.
->
3. Actor Class 핀을 My Character로 설정한다.