Top

[실전 RPG 게임 제작을 완성하며 배우는]
유니티 2D 모바일 게임 개발

  • 지은이김정열, 문기영
  • ISBN : 9788960776227
  • 35,000원
  • 2014년 10월 23일 펴냄
  • 페이퍼백 | 332쪽 | 188*235mm
  • 시리즈 : 게임 개발 프로그래밍

책 소개

요약

이 책은 <헬로히어로>, <세븐나이츠> 같은 실전 모바일 RPG 게임을 저자의 설명과 함께 하나씩 따라해보면서 게임을 제작하는 책이다. 유니티를 처음 사용하더라도 어떻게 다운로드하고 설치하는지 배울 수 있으며 2D 게임에 특화된 내용에 주력하지만 유니티로 게임을 제작하는 전반적인 과정을 모두 다룬다. 게임 제작에 필요한 데이터들은 장별로 나뉘어 있어 따라하기 쉬우며 누구나 따라하기만 하면 모바일 RPG 게임을 쉽게 제작할 수 있을 것이다. 게임을 제작해보고 싶은 분, 유니티를 이용해 2D 게임을 개발하고 싶은 분, 완성된 프로젝트를 제작하고 싶은 분들에게 큰 도움이 될 것이다.

이 책에서 다루는 내용

게임오브젝트, 컴포넌트 등의 유니티 핵심 개념

유니티 2D 모드와 레이어의 사용 방법

유니티 애니메이션을 활용한 배경 스크롤링을 구현하는 방법

애니메이터를 이용해 캐릭터 상태 설계하기

충돌과 물리시스템을 다루는 방법

GUI의 구성방법과 터치이벤트 작성 방법

파티클을 이용한 이펙트 제작 방법과 사운드를 적용하는 방법

프로젝트를 플랫폼에 배포하는 방법

이 책의 대상 독자

유니티를 배우고 싶거나 게임 프로젝트를 경험해보고 싶어하는 모든 독자에게 적합한 입문서입니다. 또한, 모바일 2D 게임을 배우고자 하는 이에게도 충분한 내용을 담고 있습니다. 다음과 같은 독자들에게 이 책을 추천합니다.

  • 모바일 게임 제작을 배우고자 하는 누구나
  • 게임에 대한 기초 이론이 없는 프로그래머
  • 프로그래밍 지식이 없지만 유니티를 배우고 싶은 기획자나 디자이너
  • 유니티의 특성과 프로젝트를 다루는 방법을 빠르게 경험해보고 싶은 누구나
이 책의 구성

1장. ‘유니티 소개’에서는 유니티에 대한 기본 정보와 유니티 설치부터 실행까지를 소개하고 유니티 에디터의 인터페이스 구성을 살펴봅니다. 이미 유니티를 써본 적이 있는 사용자는 넘어가도 되는 부분입니다.

2장. ‘2D 게임 프로젝트 시작’은 유니티에서 2D 게임 프로젝트를 시작하기 위한 방법과 2D 게임에서 중요한 스프라이트 개념에 대해 설명합니다.

3장. ‘순환 배경 제작’은 2D 게임에서 자주 사용되는 순환 배경을 유니티 기능을 활용해서 만들어 봅니다. 스크립트를 사용하지 않고 유니티 애니메이션을 통해 구현하고 핵심기능인 유니티 애니메이터에 대해 다룹니다.

4장. ‘2D 아처 캐릭터 제작’은 게임 캐릭터 리소스를 어떤 방식으로 유니티에서 다루고 어떻게 캐릭터를 생성할 수 있는지에 대해 다룹니다. 유니티 2D의 핵심 기능인 스프라이트 에디터를 통해 아처의 애니메이션을 만들어 보고 스크립트를 작성하여 아처의 상태를 컨트롤해봅니다.

5장. ‘2D 몬스터 제작’은 적 캐릭터를 생성하고 피격 시스템을 위한 충돌과 물리 시스템에 대해 다룹니다. 유니티에서 텍스처를 사용하여 직접 애니메이션 클립을 작성하는 방법을 설명합니다. 마지막으로 핵심 기능인 프리팹 시스템에 대해 다룹니다.

6장. ‘아처 vs 몬스터’는 본격적으로 두 캐릭터의 전투를 다룬다. 이 과정을 통해 유니티 핵심 함수들을 다룹니다. 거의 모든 프로젝트에 사용될 만큼 중요하고 핵심적인 함수들로 구성되어 있습니다.

7장. ‘UI 제작’은 유니티에서 폰트를 다루는 방식과 게임에 자주 사용되는 UI를 다루는 방식, 버튼의 사용 등 유니티로 2D UI를 구성하는 방법을 다룹니다. 또한, 사용자 정보를 로컬에 저장하는 방법에 대해서도 다룹니다.

8장. ‘다양한 연출: 이펙트와 사운드’는 게임을 더 풍부하고 다이내믹하게 만들어주는 이펙트와 사운드를 제작하는 방식에 대해 다룹니다. 유니티의 강력한 파티클 시스템인 슈리켄을 통해 이펙트를 직접 만들어 보고 유니티에서 사운드를 임포트하여 직접 사용하는 방식까지 다룹니다.

9장. ‘배포’는 유니티 프로젝트를 여러 가지 플랫폼에 빌드할 수 있는 방식에 대해 다룹니다. 특히 가장 많이 사용하는 안드로이드 플랫폼 빌드에 대해서 비중 있게 다뤄봅니다.

부록, ‘유니티 개발자가 꼭 알아야 할 게임 제작 이론과 중요 컴포넌트’는 게임 개발을 처음 접해 보는 독자들을 위해 게임을 제작하기 위한 기본 지식들과 유니티에서 중요하게 다루는 사항에 대해 더 자세히 알아봅니다.

  • 좌표계(Coordinate System)의 이해
  • 로컬 좌표계
  • 월드 좌표계
  • 유니티에서 부모 좌표계와 자식 좌표계의 표현
  • 벡터(Vector), Vector3
  • 게임오브젝트(GameObject)와 컴포넌트
  • 재질(Material)
  • 셰이더(Shader)
  • 애니메이터 뷰(Animator View), 메카님 애니메이션
  • 스프라이트 시트(Sprite Sheet)
  • 스프라이트 팩커(Sprite Packer)
  • 메카님에서 레이어 사용
  • Start 함수, Update 함수
  • 코루틴(Coroutine)
부록 DVD 수록

이 책에서 설명하는 모든 예제 프로젝트의 소스 파일과 애셋 파일 다운로드

상세페이지

저자/역자 소개

저자 서문

제가 처음 유니티를 사용하기로 결심했을 때는 많은 정보가 없었습니다. 국내에는 외국어 번역서 한 권만 있었던 시절이었습니다. 유니티 사이트와 포럼을 통해 정보를 얻고 유니티 개발자들에게 메일을 써가며 유니티에 대해 공부해 나갔습니다. 시행착오가 있었지만 몇 가지 게임을 성공적으로 런칭하고 서비스하면서 유니티를 더 신뢰하게 되었고 지금은 모든 개발에 있어서 유니티는 저에게 없어서는 안 될 엔진이 되었습니다. 이후로 저는 직원들과 학생들을 교육하면서 어떻게 하면 쉽고 빠르게 유니티에 적응할 수 있을까에 대해 고민하고, 그 고민에 대한 해결책에 대해 계속해서 연구하고 정리해 나가고 있습니다. 이제 그 고민에 대한 일부의 결과들을 이 책을 통해 보여줄 수 있게 되었습니다. 책을 집필하는 기간은 노하우를 정리할 수 있는 소중한 시간이었으며 이 노하우를 독자들과 공유할 있다고 생각하니 책을 쓰는 동안의 고뇌의 시간들은 잊혀졌습니다. 아무쪼록 독자들이 이 책에서 소중한 경험과 배움을 얻으실 수 있기를 바랍니다. –김정열–

보통 유니티를 처음 다루게 되면 3D 게임만 제작 가능하다고 생각이 들지 모르겠지만, 유니티를 이용해 2D 게임을 개발하는 경우가 상당히 많기 때문에 유니티 2D와 관련한 제대로 된 서적이 없다는 사실이 매우 안타까웠습니다. "유니티를 이용한 2D 게임 개발에 관련된 서적을 써보면 어떨까?"라고 생각하던 차에 마침 유니티로 2D 게임을 출시한 경험이 있는 김정열 대표님이 생각났고 이 책을 함께 집필하게 되었습니다. 게임 프로그래밍을 처음 접하는 분들을 위해 따라하면서 게임을 처음부터 끝까지 직접 만들 수 있는 내용으로 책을 구성했고 마지막 '부록, 유니티 개발자가 꼭 알아야 할 게임 제작 이론과 중요 컴포넌트'에서는 조금 더 깊은 내용까지 알고 싶은 독자 분들을 위해 지면을 할애해 설명을 더했습니다. 게임 개발의 실전과 이론을 함께 맛보고 싶은 독자 여러분께 좋은 길잡이가 되길 바랍니다. –문기영–

저자 소개

김정열

현재 모프인터랙티브의 대표이사로, 다수의 모바일 게임과 스마트 콘텐츠를 개발했다. 디지텍 고등학교와 경민대학교에서 유니티 관련 강의와 멘토를 했으며 KT, 중기청, 서울시 등에서 진행하는 각종 대회에서 모바일 앱 관련 심사와 멘토 역할을 했다. 현재는 유니티 엔진을 사용한 2D 게임을 제작 중이다.

문기영

EA 캐나다에서 인공지능 프로그래머로서 엑스박스(Xbox)360과 PS3용 <피파>부터 <피파>까지 개발에 참여했고, Practice Mode, CPU AI, Referee rule system을 만들었으며, 애니메이션 프로그래머로서 User celebration을 개발했다. EA 캐나다를 그만둔 후에는 한국으로 돌아와 해머 게임 스튜디오를 창업해 iOS용 게임 'Attack of the Pig'를 개발했고, PC, iOS, 안드로이드 3대 플랫폼을 모두 지원하는 자체 엔진 'DeadEngine'을 제작했다. 저서로는 『비주얼 베이직 6 게임 만들기』, 『게임 개발 테크닉』, 『게임 프로그래밍으로 배우는 C# 』, 번역서로 에이콘출판사에서 출간한 『언리얼 게임 엔진 UDK 3』, 『언리얼 UDK 게임 개발』이 있으며 시간이 나면 NDC 및 고등학교에서 강연을 하기도 한다

목차

목차
  • 1장 유니티 소개
  • 1.1 유니티 엔진의 역사
  • 1.2 유니티의 장점
    • 쉽고 빠른 에디터
    • 멀티 플랫폼
    • 강력한 성능
    • 합리적인 가격정책
    • 애셋스토어
    • 방대한 자료와 커뮤니티
  • 1.3 유니티 첫 실행
  • 1.3.1 유니티 설치
    • 1.3.2 유니티 간단 실습
    • 1.3.3 무료 버전과 유료 버전의 차이점
  • 1.4 유니티 인터페이스
    • 1.4.1 뷰
    • 1.4.2 씬 뷰 내비게이션
      • 화살표 이동
      • 포커싱
      • 마우스
      • 자유비행모드
    • 1.4.3 뷰의 배치
    • 1.4.4 스냅 기능
    • 1.4.5 단축키

  • 2장 2D 게임 프로젝트 시작
  • 2.1 프로젝트 생성
  • 2.2 2D 모드
  • 2.3 리소스 임포트
  • 2.4 스프라이트

  • 3장 순환 배경 제작
  • 3.1 배경에 시차 적용
    • 3.1.1 2D 카메라
    • 3.1.2 게임오브젝트와 컴포넌트
    • 3.1.3 레이어
  • 3.2 배경 순환 애니메이션 제작
    • 3.2.1 애니메이션 뷰
    • 3.2.2 애니메이터 뷰

  • 4장 2D 아처 캐릭터 제작
  • 4.1 아처 준비
    • 4.1.1 스프라이트 시트
    • 4.1.2 스프라이트 에디터
  • 4.2 아처 시퀀스 애니메이션 제작
    • 4.2.1 애니메이션 클립
  • 4.3 아처 상태 설계
  • 4.4 아처 컨트롤
    • 4.4.1 C# 스크립트 작성
    • 4.4.2 배경 컨트롤 스크립트 작성
    • 4.4.3 아처 컨트롤 스크립트 작성
  • 4.5 정리

  • 5장 2D 몬스터 제작
  • 5.1 적 몬스터 생성
  • 5.2 애니메이션 클립 제작
    • 5.2.1 탄젠트 편집
  • 5.3 몬스터 상태 설계
  • 5.4 몬스터 컨트롤 스크립트 작성
  • 5.5 충돌체 설정
  • 5.6 물리 시스템의 설정
  • 5.7 게임오브젝트 파괴
  • 5.8 프리팹 생성
  • 5.9 정리

  • 6장 아처 vs 몬스터
  • 6.1 전투 준비
    • 6.1.1 코루틴
    • 6.1.2 Resources.Load
    • 6.1.3 Instantiate
  • 6.2 아처 공격
    • 6.2.1 iTween
    • 6.2.2 OnTriggerEnter
    • 6.2.3 SendMessage
    • 6.2.4 Animation Event
  • 6.3 몬스터 공격
    • 6.3.1 Time.deltaTime
  • 6.4 정리

  • 7장 UI 제작
  • 7.1 폰트
    • 7.1.1 다이나믹 폰트
      • Importing True Type Font files(.ttf)
      • 동적 글꼴
      • 유니코드 지원
      • TextMesh
    • 7.1.2 스프라이트 배치
  • 7.2 체력바
    • 7.2.1 Invoke
  • 7.3 Hud Text 제작
  • 7.4 결과 화면 제작
    • 7.4.1 PlayerPrefs
  • 7.5 정리

  • 8장 다양한 연출: 이펙트와 사운드
  • 8.1 스모크 파티클 제작
    • 8.1.1 파티클 시스템
      • 재질 생성하고 적용
      • 파티클 이펙트 Preview Panel
    • 8.1.2 파티클 시스템 모듈: Shuriken
      • 초기 모듈
      • 방사 모듈
      • 형태 모듈
      • 수명기간 동안 속도 모듈
      • 수명기간 동안 속도 모듈의 제한
      • 수명기간 동안 힘 모듈
      • 수명기간 동안 색상 모듈
      • 속도에 의한 색상 모듈
      • 수명기간 동안 크기 모듈
      • 속도에 의한 크기 모듈
      • 수명기간 동안의 회전 모듈
      • 속도에 의한 회전 모듈
      • 외부 힘 모듈
      • 충돌 모듈
      • 하위 에미터 모듈
      • 텍스처 시트 애니메이션 모듈
      • 렌더러 모듈
  • 8.2 스모크 파티클 제어
  • 8.3 피격 이펙트 제작
  • 8.4 유니티 애셋 임포트
  • 8.5 사운드
    • 8.5.1 오디오 파일
    • 8.5.2 지원 포맷
    • 8.5.3 오디오 클립
    • 8.5.4 오디오 애셋 불러오기
    • 8.5.5 3D 오디오 사용
    • 8.5.6 플랫폼별 상세 정보
      • iOS
      • Android

  • 9장 배포
  • 9.1 퍼블리싱 빌드
    • 9.1.1 Platform Dependent Compilation
  • 9.2 데스크탑 플랫폼 빌드
  • 9.3 웹 플랫폼 빌드
  • 9.4 안드로이드 플랫폼 빌드
    • 9.4.1 안드로이드 SDK 설치
    • 9.4.2 안드로이드 빌드 설정
  • 9.5 i OS 플랫폼 빌드
    • 9.5.1 애플 개발자 계정 생성
    • 9.5.2 iOS 빌드 설정
  • 9.6 정리

  • 부록 유니티 개발자가 꼭 알아야 할 게임 제작 이론과 중요 컴포넌트
  • A.1 좌표계
  • A.2 로컬 좌표계
  • A.3 월드 좌표계
  • A.4 유니티에서 부모 좌표계와 자식 좌표계의 표현
  • A.5 벡터, Vecto r3
    • 위치의 표현
    • 방향의 표현
    • 벡터의 연산
    • 벡터의 길이
    • 벡터의 왼쪽? 오른쪽?
  • A.6 게임오브젝트와 컴포넌트
  • A.7 재질
  • A.8 셰이더
  • A.9 애니메이터 뷰, 메카님 애니메이션
  • A.10 스프라이트 시트
  • A.11 스프라이트 팩커
  • A.12 메카님에서 레이어 사용
  • A.13 START 함수, UPDATE 함수
  • A.14 코루틴
  • A.15 참고 문헌

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2015-05-11

p165

검정색으로 변경 필요

public int mOrinAttack;
[HideInInspector]
public int mAttack;

빨간색으로 변경 필요

public HpControl mHpControl;
[HideInInspector]
public bool IsCritical = false;