유니티를 활용한 RPG 게임 개발

유니티를 활용한 RPG 게임 개발

$52.97
Description
이 책은 유니티로 RPG 게임을 제작하려는 개발 지망생과 개발자를 위한 내용을 담고 있다. 캐릭터 이동, 전투 시스템, 몬스터 AI, 인벤토리, 퀘스트 등 RPG 게임의 핵심 요소를 체계적으로 다루며, 유니티 컴포넌트를 기반으로 유한 상태 기계를 구현하는 방법을 소개한다. Scriptable Object를 활용해 플레이어, 몬스터, 퀘스트, NPC 데이터 등 게임 데이터를 효율적으로 관리하는 방법도 다룬다. 기초부터 고급 기능까지 단계별로 설명하며, 실무에서 마주할 문제와 해결 방법을 제시한다.
저자

장세윤

저자:장세윤
상용게임엔진회사에서기술지원,엔진기술홍보,기술문서번역등의업무를진행했다.프리랜서로전향한이후,엔씨소프트,넥슨,네오플,골프존,현대자동차등다양한기업및대학교,게임교육학원에서유니티엔진과언리얼엔진을활용한강의를진행했다.현재는프리랜서강사,개발자,기술서적번역가,저자로활동하며게임개발과엔진활용의지식을널리알리고있다.

목차

1장.개발환경설정
1.1개요
1.2기본프로그램설치
1.2.1유니티설치
1.2.2비주얼스튜디오설치
1.3유니티프로젝트생성
1.3.1프로젝트생성
1.3.2유니티에디터구성
1.3.2유니티프로젝트폴더구조
1.4주요용어정리
1.4.1씬
1.4.2애셋
1.4.3게임오브젝트
1.4.4컴포넌트
1.5씬카메라와게임오브젝트조작
1.5.1씬카메라제어하기
1.5.2씬기즈모
1.5.4툴오버레이
1.6유니티의회전및방향
1.6.1오일러각
1.6.2쿼터니언(4원수)
1.7프로젝트준비
1.7.1애셋임포트하기
1.7.2씬생성하기
1.8정리

2장.플레이어이동
2.1개요
2.2플레이어캐릭터게임오브젝트구성
2.2.1바닥만들기
2.2.2플레이어게임오브젝트구성하기
2.2.3WASD/방향키키를활용한이동기능추가하기
2.2.4이동하는방향으로캐릭터회전시키기
2.3유니티애니메이션시스템과유한상태기계
2.3.1애니메이션워크플로
2.3.2플레이어캐릭터애니메이션
2.4플레이어유한상태기계구성
2.4.1캐릭터컨트롤러
2.4.2애니메이션루트모션
2.4.3PlayerStateBase스크립트추가하기
2.4.4PlayerIdleState/PlayerMoveState스크립트추가하기
2.4.5PlayerStateManager스크립트추가하기
2.4.6입력관리자스크립트추가
2.4.7플레이어의유한상태기계구성을위한컴포넌트구성하기
2.4.8PlayerAnimationController추가
2.5캐릭터를따라다니는카메라
2.5.1CameraRig제작
2.6정리

3장.플레이어점프및공격
3.1개요
3.2플레이어점프애니메이션구성
3.2.1애니메이션스테이트머신구성
3.2.2애니메이션컨트롤러업데이트
3.3플레이어점프스테이트추가
3.3.1입력관리자업데이트
3.3.2플레이어스테이트관리자업데이트
3.3.3플레이어점프스테이트추가
3.3.4점프를위한플레이어의유한상태기계구성
3.4플레이어공격스테이트를위한애니메이션설정
3.4.1애니메이션스테이트머신구성
3.5플레이어공격스테이트추가
3.5.1입력관리자업데이트
3.5.2애니메이션컨트롤러업데이트
3.5.3플레이어공격스테이트추가
3.5.4플레이어스테이트관리자업데이트
3.5.5공격을위한플레이어의유한상태기계구성
3.6정리

4장.무기아이템및공격스테이트업데이트
4.1개요
4.2사운드효과
4.2.1오디오소스와오디오클립
4.2.2사운드효과재생기능추가
4.3스크립터블오브젝트
4.4아이템
4.4.1아이템클래스
4.4.2무기아이템데이터
4.4.3획득가능한아이템
4.5플레이어무기아이템
4.5.1Weapon추가
4.5.2무기관리자추가
4.5.3무기아이템제작
4.5.4무기아이템완성
4.6공격스테이트완성
4.6.1무기장착여부에따른공격스테이트전환처리
4.6.2공격콤보애니메이션효과적용
4.7정리

5장.게임데이터
5.1개요
5.2플레이어데이터
5.2.1플레이어데이터준비(CSV)
5.2.2플레이어데이터생성(스크립터블오브젝트)
5.2.3플레이어데이터적용
5.3몬스터데이터
5.3.1몬스터데이터준비(CSV)
5.3.2몬스터데이터생성(스크립터블오브젝트)
5.4데이터관리자
5.4.1데이터관리자구축
5.5정리

6장.몬스터제작
6.1개요
6.2몬스터캐릭터제작
6.2.1몬스터게임오브젝트구성
6.3몬스터유한상태기계구성
6.3.1MonsterStateBase스크립트추가
6.3.2몬스터스테이트관리자추가
6.3.3유틸리티클래스추가
6.3.4몬스터기본스테이트및정찰스테이트추가
6.3.5유한상태기계구성을위한컴포넌트추가
6.4몬스터애니메이션구성
6.4.1애니메이터컨트롤러추가
6.4.2몬스터애니메이션컨트롤러추가
6.5내비게이션시스템설정
6.5.1내비게이션패키지설치
6.6정리

7장.몬스터의추격및공격스테이트
7.1개요
7.2시야시스템
7.2.1시야계산을위한벡터이론
7.2.2Util클래스
7.3몬스터정찰기능업데이트및추격스테이트추가
7.3.1애니메이터컨트롤러업데이트
7.3.2추격스테이트추가
7.4공격스테이트
7.4.1애니메이터컨트롤러업데이트
7.4.2공격스테이트(MonsterAttackState)추가
7.5정리

8장.전투및대미지시스템
8.1개요
8.2플레이어공격판정
8.2.1충돌판정기능추가
8.2.2충돌판정을위한레이어설정
8.3대미지처리시스템구축
8.3.1Damageable스크립트추가
8.4체력관리시스템구축
8.4.1HPController스크립트추가
8.4.2HPController컴포넌트구성및이벤트연동
8.5몬스터죽음스테이트추가
8.5.1애니메이터컨트롤러업데이트
8.5.2죽음스테이트(MonsterDeadState)추가
8.6몬스터죽음효과
8.6.1죽음사운드효과추가
8.6.2죽음효과추가
8.7몬스터피격효과
8.7.1몬스터피격애니메이션설정
8.7.2몬스터피격사운드효과추가
8.8몬스터공격판정
8.8.1MonsterAttackController추가
8.9플레이어대미지처리기능추가
8.9.1Damageable컴포넌트설정
8.9.2HPController추가
8.10플레이어죽음스테이트추가
8.10.1애니메이터스테이트머신업데이트
8.10.2죽음스테이트(PlayerDeadState)추가
8.10.3플레이어의죽음에따른몬스터스테이트업데이트
8.11플레이어피격효과추가
8.11.1피격사운드효과추가
8.11.2피격머티리얼효과추가
8.11.3카메라흔들기효과추가
8.12정리

9장.사용자인터페이스
9.1개요.501
9.2사용자인터페이스개요
9.2.1주요컴포넌트-캔버스
9.2.2오버레이UI
9.2.3화면공간카메라UI
9.2.4월드공간UI
9.2.5주요컴포넌트-CanvasScaler
9.3플레이어스탯UI배치
9.3.1플레이어스탯UI배치-플레이어아이콘이미지
9.3.2플레이어스탯UI배치-레벨텍스트
9.3.3플레이어스탯UI배치-체력바
9.3.4플레이어스탯UI배치-경험치바
9.4플레이어체력바UI기능구현
9.4.1플레이어체력바기능추가
9.5플레이어대미지효과텍스트UI
9.5.1플레이어대미지텍스트UI배치
9.5.2플레이어대미지텍스트기능구현
9.6몬스터체력바UI
9.6.1몬스터체력바UI
9.6.2빌보드구현
9.7몬스터대미지텍스트UI
9.7.1몬스터대미지텍스트UI배치
9.8다이얼로그시스템
9.8.1다이얼로그UI배치
9.8.2다이얼로그기능구현
9.9정리

10장.인벤토리시스템
10.1개요
10.2인벤토리시스템구축
10.2.1인벤토리관리자
10.3아이템추가
10.3.1CollectableItem스크립트업데이트
10.3.2Item스크립트업데이트
10.3.3체력아이템데이터추가
10.3.4체력아이템오브젝트생성
10.3.5방어력아이템데이터추가
10.3.6방어력아이템오브젝트생성
10.4인벤토리UI
10.4.1인벤토리버튼UI배치
10.4.2인벤토리창UI배치
10.4.3인벤토리목록UI배치
10.4.4인벤토리목록UI기능구현
10.4.5인벤토리창UI기능구현
10.4.6클릭입력예외처리
10.4.7아이템프리팹만들기
10.5정리

11장.퀘스트시스템과NPC
11.1개요
11.2몬스터생성시스템
11.2.1몬스터프리팹생성
11.2.3몬스터스테이트관리자업데이트
11.2.4몬스터생성시스템추가
11.3카메라회전기능
11.3.1카메라회전을위한입력관리자업데이트
11.3.2카메라회전기능구현
11.3.3플레이어이동기능업데이트
11.4퀘스트시스템
11.4.1퀘스트데이터
11.4.2퀘스트관리자
11.4.3퀘스트아이템
11.5NPC
11.5.1NPC데이터
11.5.2NPC게임오브젝트구성
11.5.3NPCStateBase스크립트추가
11.5.4NPC스테이트관리자추가
11.5.5대기스테이트및대화스테이트구현
11.5.6NPC스테이트컴포넌트구성
11.5.7NPC애니메이션구성
11.5.8NPC애니메이션컨트롤러추가
11.5.9NPC캐릭터추가
11.6퀘스트아이템조정
11.6.1무기획득퀘스트동작을위한조정
11.6.2먹개비몬스터처치퀘스트아이템추가
11.7퀘스트UI
11.7.1퀘스트버튼UI배치
11.7.2퀘스트창UI배치
11.7.3퀘스트목록UI
11.7.4퀘스트목록UI기능구현
11.7.5퀘스트창UI기능구현
11.8정리

12장.레벨시스템
12.1개요
12.2레벨시스템구축
12.2.1플레이어레벨관리자구축및UI업데이트
12.2.2퀘스트완료및몬스터처치시경험치획득기능추가
12.3정리

13장.보스몬스터제작
13.1개요
13.2보스몬스터제작
13.2.1보스몬스터데이터
13.2.2보스몬스터게임오브젝트구성
13.3.1보스몬스터애니메이션스테이트머신구성
13.3보스몬스터애니메이션구성
13.4보스몬스터유한상태기계구성1
13.4.1GrenadierStateBase스크립트추가
13.4.2GrenadierStateManager스크립트구현
13.4.3GrenadierIdleState스크립트추가
13.5보스몬스터애니메이션컨트롤러구현
13.5.1보스몬스터애니메이션컨트롤러추가
13.6보스몬스터유한상태

출판사 서평

◈이책에서다루는내용◈

◆플레이어이동,점프,공격등기본캐릭터기능구현과정을유한상태기계를활용해단계적으로설명
◆몬스터제작및추격,공격기능을통해적AI동작구현
◆전투및대미지시스템구현을통해RPG게임의핵심시스템구축
◆ScriptableObject를활용한플레이어,몬스터,퀘스트,NPC데이터등게임데이터의효율적관리
◆사용자인터페이스UI와인벤토리시스템구축
◆퀘스트시스템과NPC설정으로스토리와상호작용요소추가
◆캐릭터레벨시스템을통한보상시스템구축
◆보스몬스터제작
◆게임시작씬과빌드과정을통해최종게임배포준비

◈이책의대상독자◈

◆Unity를처음접하거나RPG게임개발에입문하려는학생
◆RPG게임의구조와구현과정을체계적으로배우고싶은개발자
◆게임개발실무경험을쌓고자하는개발자
◆Unity를활용한캐릭터시스템,전투시스템,UI등다양한기능구현을익히려는독자
◆ScriptableObject를활용해게임데이터를효율적으로관리하는방법을배우려는개발자

◈지은이의말◈

지난10여년간게임개발지망생들에게유니티활용법을강의해오며많은학생들과소통해왔다.수업을통해학생들이성장하고발전하는모습을보며큰보람을느꼈다.그럼에도책을쓰려는마음을갖지못했는데,최근진행한게임개발수업에서학생들로부터여러차례좋은피드백을받은것이책을집필하는계기가되었다.
이책은게임을개발하고자하는학생및유니티를접하지못한개발자들에게실질적인도움을주고자하는마음에서시작되었다.게임개발은복잡한구조와다양한시스템을필요로한다.따라서초보자들에게는도전적인과제가될수있다.이책은그러한과정에서발생할수있는여러어려움을하나씩해결하는과정을보여주며게임개발의즐거움을독자분에게전달하고자노력하였다.
이제는게임회사들만게임을제작하는것이아니라개인및소규모팀들도재미있는게임을제작하는시대가되었다.높았던게임개발의진입장법을낮추는데유니티가크게기여했다고생각한다.이런시기와맞물려게임을개발하고자하는모든분들에게이책이조금이나마도움이되었으면좋겠다.
유니티는다양한분야에서콘텐츠개발의핵심도구로자리잡았다.게임뿐만아니라다양한프로젝트에유니티가활용되고있지만,여전히게임개발을할때빛을발한다.이책을통해유니티의강력한기능과이를활용하는방법을습득할수있기를바란다.
이책은유니티엔진을활용해RPG게임을제작하는과정을다룬다.기초적인시스템설계와기본적인게임메커니즘을구축하는방법을시작으로,캐릭터및몬스터제작,전투시스템,아이템관리,다이얼로그및퀘스트등고급주제도다룬다.각단계마다게임을개발하는과정에서자주직면하는문제와그해결방법을함께제시한다.독자들은이책을통해실무적인경험과노하우를자연스럽게습득할수있을것이다.