유니티 게임 AI 프로그래밍 2/e [유니티 5로 구현하는 게임 제작에 필요한 인공지능 기술]
- 원서명Unity AI Game Programming Second Edition (ISBN 9781785288272)
- 지은이레이 바레라(Ray Barrera), 아웅 시투 키야우(Aung Sithu Kyaw), 클리포드 피터스(Clifford Peters), 뗏 네잉 세예(Thet Naing Swe)
- 옮긴이조경빈
- ISBN : 9788960778627
- 26,000원
- 2016년 05월 27일 펴냄
- 페이퍼백 | 240쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
책 소개
요약
이 책은 유니티 개발 환경에서 인공지능을 다루는 방법을 기초부터 차근차근 설명한다. 게임에서 인공지능을 구현할 때 필수적으로 알아야 하는 유한 상태 기계의 개념이라든지 랜덤과 확률의 활용 방법, 센싱 기술의 구현 방식, 길 찾기 알고리즘의 적용, 행동 트리의 활용, 퍼지 로직 등을 어떻게 하면 유니티가 제공하는 기능을 활용해 쉽게 구현할 수 있는지를 명쾌하게 설명한다.
이 책에서 다루는 내용
■ 게임 인공지능과 관련한 기본적인 용어와 개념 이해
■ 유니티 5의 상태 기계 행동을 사용한 간단한 유한 상태 기계 구현
■ 가장 일반적으로 사용되는 기술을 활용한 센서 시스템 구현
■ 가장 일반적인 형태의 길 찾기 시스템과 유니티 5 NavMesh 기능을 사용한 내비게이션 메시 구현
■ 높은 신뢰도와 효율성을 갖는 인공지능 군집 처리 구현
■ 캐릭터의 행동을 유도하는 간단한 행동 트리 생성
■ 인공지능 의사 결정에 퍼지 로직 개념을 구현해 좀 더 매력적인 캐릭터 생성
■ 배운 내용을 종합해 실전 예제 생성
이 책의 대상 독자
이 책은 C#과 유니티 편집기의 기본적인 내용을 이해하고 있는 유니티 개발자를 대상으로 한다. 게임을 처음 만들거나 게임 프로그래머로서의 지식을 넓히려고 한다면 게임 인공지능 관련 개념과 예제 구현을 통해 다양하고 흥미로운 정보를 얻을 수 있다. 이 책은 게임 인공지능과 관련한 특별한 사전 지식은 요구하지 않는다.
이 책의 구성
1장, ‘게임에서의 인공지능 기초’에서는 매우 방대하고 어려운 주제인 인공지능의 가장 기본적인 개념을 명확하게 알아본다.
2장, ‘유한 상태 기계’에서는 인공지능에서 가장 널리 사용되는 유한 상태 기계에 대한 개념을 설명한다.
3장, ‘센서 구현’에서는 게임 인공지능 에이전트가 주변 환경을 인지하는 데 있어 가장 중요한 방법이 무엇인지 알아본다. 인공지능 에이전트의 현실성은 주변 환경에 어떻게 반응하느냐에 따라 크게 달라진다.
4장, ‘길 찾기’에서는 인공지능 에이전트가 길을 찾아갈 때 가장 널리 사용되는 패턴을 설명한다. 게임 내의 에이전트는 장애물을 피해가며 게임에서 제공하는 지형을 탐색할 수 있어야 한다.
5장, ‘군집 처리’에서는 군집 처리 시뮬레이션 알고리즘에 대해 살펴보며, 이를 통해 개별 에이전트의 로직보다는 전체 군집의 이동과 관련된 로직을 처리하는 방법을 알아본다.
6장, ‘행동 트리’에서는 복잡한 인공지능 행동을 구현할 때 가장 널리 사용되는 방식인 행동 트리를 직접 구현해본다.
7장, ‘퍼지 로직을 사용한 인공지능 개선’에서는 바이너리 방식을 사용하지 않고 다양한 요소를 고려한 인공지능 에이전트의 의사결정 방법을 알아본다. 퍼지 로직은 사람이 의사 결정을 내리는 방식을 흉내낸다.
8장, ‘통합’에서는 다양한 시스템을 사용해서 하나의 간단한 게임 템블릿을 만들어 본다. 이를 확장할 수도 있다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1. 게임에서의 인공지능 기초
- 가상의 삶 구현
- 인공지능을 사용한 게임성 강화
- 유니티에서 인공지능 사용
- 에이전트 정의
- 유한 상태 기계
- 에이전트의 눈으로 월드 바라보기
- 길 찾기와 조향
- A* 길 찾기
- 내비게이션 메시 사용
- 군집 처리
- 행동 트리
- 퍼지 로직
- 요약
- 2. 유한 상태 기계
- FSM 활용
- 상태 기계 행동 생성
- AnimationController 애셋 생성
- 레이어와 매개변수
- 애니메이션 컨트롤러 인스펙터
- 행동 적용
- 첫 상태 생성
- 상태 간 전이
- 플레이어 탱크 설정
- 탱크 생성
- 상태 전이 선택
- 기능 연결
- 조건 설정
- 코드로 매개변수 제어
- 적 탱크 이동
- 테스팅
- 요약
- 3. 센서 구현
- 기본 센서 시스템
- 콘 형태의 시야
- 구를 사용해서 듣기, 느끼기, 냄새 맡기
- 전지적 능력을 활용한 인공지능 확장
- 센싱으로 창의력 개선
- 씬 설정
- 플레이어 탱크와 특성 설정
- 플레이어 탱크 구현
- Aspect 클래스 구현
- 인공지능 캐릭터 생성
- Sense 클래스 사용
- 약간의 시각 부여
- 촉각 활용
- 결과 검사
- 요약
- 기본 센서 시스템
- 4. 길 찾기
- 경로 따라가기
- 경로 스크립트
- 경로 추종자 사용
- 장애물 회피
- 커스텀 레이어 추가
- 장애물 회피 로직 구현
- A* 길 찾기
- A* 알고리즘 재확인
- 구현
- 노드
- 우선순위 큐 구성
- 그리드 매니저 설정
- A* 구현 심화
- TestCode 클래스
- 씬 설정
- 모든 컴포넌트 테스팅
- 내비게이션 메시
- 맵 설정
- Navigation Static
- 내비게이션 메시 베이킹
- NavMesh 에이전트 사용
- 대상 설정
- Target 클래스
- 경사 테스트
- 영역 탐색
- Off Mesh Link 의미
- 생성된 Off Mesh Link 사용
- 수동 Off Mesh Link 설정
- 요약
- 경로 따라가기
- 5. 군집 처리
- 군집 처리의 기원
- 군집 처리 개념의 배경 이해
- 유니티 예제를 사용한 군집 처리
- 개별 행동 흉내내기
- 컨트롤러
- 대체 구현 사용
- FlockController 구현
- 군중 처리
- 간단한 군중 시뮬레이션 구현
- CrowdAgent 컴포넌트 사용
- 재미있는 장애물 추가
- 요약
- 6. 행동 트리
- 행동 트리의 기초
- 다양한 노드 타입의 이해
- 합성 노드 정의
- 데코레이터 노드의 이해
- 리프 노드 표현
- 다양한 노드 타입의 이해
- 기존 솔루션 평가
- 간단한 행동 트리 프레임워크 구현
- 기반 Node 클래스 구현
- 노드를 셀렉터로 확장
- 시퀀스
- 인버터 데코레이터 구현
- 일반 액션 노드 생성
- 프레임워크 테스트
- 계획 수립
- 씬 설정
- MathTree 코드
- 테스트 실행
- 요약
- 행동 트리의 기초
- 7. 퍼지 로직을 사용한 인공지능 개선
- 퍼지 로직 정의
- 바이너리 시스템 대신 퍼지 시스템 얻기
- 퍼지 로직 사용
- 간단한 퍼지 로직 시스템 구현
- 세트 확장
- 데이터 명확하게 하기
- 최종 데이터 사용
- 좀 더 간단한 접근법 사용
- 퍼지 로직의 다른 사용 사례
- 다른 개념과의 결합
- 완전히 고유한 경험 생성
- 요약
- 퍼지 로직 정의
- 8. 통합
- 규칙 설정
- 타워 생성
- 타워 발사 처리
- 탱크 설정
- 환경 설정
- 예제 테스트
- 요약
도서 오류 신고
정오표
정오표
2016. 10. 10 수정 사항
[p.173: 아래에서 3행]
시퀀스를 실패를 보고한다.
->
시퀀스는 실패를 보고한다.
[p.174: 아래에서 4행]
데코레이터(Repeater)
->
리피터(Repeater)
[p.195: 아래에서 4행]
퍼지 로직의 정미
->
퍼지 로직의 정의
[p.208: 11행]
오호지
->
오로지