• 절대강좌 유니티 4
  • Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

  • 이재현 지음

  • 게임 개발 시리즈 _ 010
  • ISBN: 9788998139421
  • 38,000원 | 2014년 02월 25일 발행 | 464쪽



이 책은 유니티 4.3 최신 버전을 바탕으로 독자와 함께 3인칭 슈팅게임(TPS)을 제작하는 과정을 통해 게임 개발에 필수적인 기술과 기법을 자연스럽게 습득할 수 있게 구성돼 있다. 유니티 개발 경험이 없는 독자에게는 친절하고 자세한 설명으로 유니티 게임 개발의 큰 그림을 그릴 수 있게 안내하며, 이제 막 초급 개발자를 벗어난 독자에게는 실무 활용도가 높은 각종 이펙트와 게임 개발 기법을 제시함으로써 실전에서도 충분히 활용할 만한 내용을 다룬다.

예제 스크립트는 C#으로 진행하며, 주인공 3D 모델의 임포트, 이동 로직, 총 발사 로직 및 충돌 판별과 같은 기초적인 내용부터 적 캐릭터(NPC)의 인공지능을 유한상태머신(FSM)으로 구현하는 고급 개발 기법까지 소개한다. 또 게임 개발에 반드시 필요한 추적 알고리즘은 내비게이션 메쉬를 사용해 구현하며, 실제 게임 개발에 자주 사용되는 기법이지만 좀처럼 자료를 찾기 힘든 총구 화염(Muzzle Flash), 혈흔 효과(Blood Effect), 래그돌(Ragdoll), 레이캐스트(Raycast), 터치 이동 로직 등과 같은 기법도 직접 게임을 만들면서 구현해본다.

마지막으로 3인칭 슈팅 게임 제작 과정이 끝난 후에는 네트워크 게임을 개발하는 데 필요한 기법도 자세하게 소개한다. 차근차근 유니티 게임 개발의 기초를 다지고자 하는 초보 개발자뿐 아니라 향후 네트워크 게임 개발까지 염두에 둔 독자라면 이 책이 크게 도움될 것이다.

■ [동영상 강의 / 저자 Q & A] : www.Unity3dStudy.com

유니티는 현재 가장 각광받고 있는 게임 개발엔진으로, 국내외를 막론하고 출시되는 많은 모바일 게임이 유니티로 개발되는 추세다. 이러한 유니티의 인기와 더불어 여러 관련 서적이 출간되고 인터넷 블로그를 통해 유니티를 다루는 글도 날로 풍부해지고 있다. 하지만 관련 서적을 많이 읽고 블로그 글을 열심히 읽었더라도 유니티 입문자가 막상 게임 개발을 어떻게 시작해야 할지 힘들어 하는 경우가 많다.

하지만 유니티가 제공하는 수많은 기능을 미리 알고 있어야만 자신이 원하는 게임을 만들 수 있을 거라는 환상은 버려야 한다. 대신 이 책에서는 게임 개발에 필요한 기능을 먼저 학습한 후 진행하는 것이 아니라 게임을 만들어 나가면서 필요한 기능을 알아보고 직접 구현하는 방식으로 진행한다.

이 책을 끝까지 읽고 나면 어느새 독자는 게임 개발에 필요한 각종 지식을 습득하게 될 것이다. 또한 이 책에서는 유니티에 내장된 네트워크 API를 이용해 네트워크 대전게임을 직접 만들어 보고, 단순히 맛보기용 게임이 아니라 네트워크 게임을 개발하기 위한 기법을 충실히 소개하고 있어 네트워크 게임 개발을 염두에 둔 독자라면 이 책이 크게 도움될 것이다.

★ 이 책에서 다루는 내용 ★

  • 유니티 설치 및 인터페이스 소개
  • 게임 스테이지 제작
  • 레거시 애니메이션 및 메카님 애니메이션
  • 적 캐릭터(NPC)의 유한상태머신(FSM; Finite State Machine) 구현
  • 내비게이션 메쉬를 이용한 적 캐릭터 추적기능
  • 현실적인 폭발 효과 및 Muzzle Flash 구현
  • 실시간 그림자와 모바일용 그림자 처리
  • 레이캐스트(Raycast)을 응용한 발사 처리
  • 게임매니저 구현
  • 라이트맵핑 및 라이트 프로브 소개
  • Scene 에셋번들의 스트리밍 다운로드
  • 유니티에 내장된 네트워크 API를 활용한 대전게임 제작
  • 래그돌(Ragdoll) 제작 및 활용
  • 모바일 스크린 터치 후 이동 로직 구현

이재현

SI업계에서 13년간 프리랜서 개발자로 주로 반도체 분야와 금융권에서 일하다가, 2008년 아이폰 게임 개발에 첫발을 내디뎠다. 이후 유니티3D로 전향해 1인 개발자로서 다수의 게임을 앱스토어에 출시했다. 유니티 관련 자료가 거의 없던 2011년에 국내 최초로 유니티 동영상 강좌 사이트(www.Unity3dStudy.com)를 개설해 많은 유니티 입문자에게 무료 강좌를 제공해 왔다. 현재 오프라인에서도 유니티 실전 강좌를 진행하며, 1인 개발자로서 끊임없이 좋은 게임을 개발하려고 노력하고 있다.

  • ▣ 1장: 유니티 3D 소개
    • 유니티 3D 게임 엔진의 탄생
    • 유니티의 장점
    • 멀티 플랫폼 지원
    • 통합개발환경 (IDE, IntegratedDevelopment Environment)
    • 합리적인 가격정책
    • 빌트인 미들웨어(Built in Middleware)
      • 지형 엔진(Terrain Engine)
      • 라이트맵핑(Lightmapping - Beast)
      • 오클루젼 컬링(Occlusions Culling - Umbra)
      • 3D 사운드 엔진(FMOD - Firelight Technologies)
    • 오픈 커뮤니티
    • 에셋스토어(Asset Store)
    • 유니티로 만든 게임
    • 유니티 내려받기
      • 유니티 설치
      • 유니티 라이선스 옵션 선택
      • 유니티 계정 생성 및 로그인
    • 유니티 인터페이스
      • 뷰 (View)
      • 툴 바(Tool bar)
      • 단축키 설정
    • 정리
  •  
  • ▣ 2장: 게임 개발 준비
    • 개발할 게임 소개 및 개발 순서
    • 새 프로젝트 생성
    • 개발환경(IDE) 조정
    • Project 뷰의 체계적인 관리
    • 캐릭터모델 임포트하기
    • 에셋스토어(AssetStore) 계정 생성
    • Project 뷰에서 에셋스토어 접속
    • 에셋스토어에서 리소스 내려받기
  •  
  • ▣ 3장: 게임 스테이지 제작
    • 3D 모델
    • 텍스처(Texture)
    • 머티리얼(Material)
    • 텍스처 적용하기
    • 쉐이더(Shader)
    • 프리팹(Prefab)
    • 프리팹을 이용한 벽 만들기
    • 조명(Light)
    • 하늘표현방식(Skybox& SkyDome)
  •  
  • ▣ 4장: 주인공 캐릭터 제작
    • 빈 게임오브젝트(Empty GameObject)
    • 3D 모델 임포트 및 옵션설정
    • 컴포넌트(Component)
    • 스크립트 생성
    • 키보드 입력 값 받아들이기(Input Class)
    • 캐릭터 이동 - Translate
      • Update 함수
      • Translate 함수
    • 정규화 벡터(Normalized Vector)
    • 캐릭터 회전 - Rotate
    • 카메라 추적 - Follow Cam
    • 레거시 애니메이션(Legacy Animation)
    • 애니메이션 클립(Animation Clip)
    • 애니메이션 컨트롤
    • 애니메이션 블랜딩
    • 실시간 그림자(Real Time Shadow)
    • Projector를 이용한 그림자
    • Plane Mesh를 이용한 그림자
  •  
  • ▣ 5장: 발사체 제작 및 사운드 효과
    • 총알 모델 준비
    • Rigidbody 컴포넌트
    • Collider 컴포넌트
    • 충돌 감지 조건
    • 충돌이벤트(Collision Event)
    • Tag활용
    • 총알 발사 로직
    • 총알 발사궤적 효과 만들기
    • 파티클(Particle) 활용하기
    • 총알의 입사각 응용
    • 폭발효과 및 폭발력 생성
    • 랜덤하게 텍스처 적용하기
    • 사운드 - AudioSource, AudioListener
    • 총구 화염 효과 - Muzzle Flash
  •  
  • ▣ 6장: 적 캐릭터 제작
    • 메카님(Mecanim)
    • 몬스터3D 모델 임포트
    • 메카님 애니메이션으로 전환
    • 애니메이터 컨트롤러(Animator Controller)
      • 애니메이션 스테이트 전이(Transition)
    • 몬스터 추적 루틴(Navigation Mesh)
      • Navigation 설정 및 베이크(Bake)
      • Nav Mesh Agent
      • 인공지능(AI) 구현
    • 몬스터 공격 루틴
    • 몬스터 피격 리액션(Reaction)
    • 혈흔 효과(Blood Effect)
    • 데칼(Decal) - 바닥에 흩뿌려지는 혈흔 효과
    • 몬스터 공격 능력 부여
    • 몬스터 공격 중지 - Tag
    • 몬스터 공격 중지 - Delegate, Event
    • 몬스터 사망 처리
  •  
  • ▣ 7장: 게임 매니저 구현
    • 몬스터 출현 로직(Spawn Point)
    • 게임 매니저 접근 방법
    • 공용 함수 - 사운드 처리
  •  
  • ▣ 8장: 레이캐스트(Raycast) 활용
    • 몬스터 공격
    • 드럼통 폭발
    • 레이저 빔 구현
  •  
  • ▣ 9장: 라이트맵핑과 라이트 프로브
    • Lightmaping
    • Light Probe
  •  
  • ▣ 10장: Scene 분리 및 병합
    • Scene 분리
    • Scene 병합
    • Scene AssetBundle 제작
    • Scene Streaming Download 구현
  •  
  • ▣ 11장: 네트워크 게임
    • 네트워크 게임 정의
    • 네트워크 게임의 물리적 구조
    • 네트워크 통신 프로토콜
    • 유니티 Built in Network
      • Network View
      • 상태 동기화(State Serialize)
      • 원격프로시저 호출(RPCs, Remote Procedure Calls)
    • 유니티 네트워크 게임의 절차
      • 게임 서버 초기화
      • Peer의 게임 접속
      • Peer 간의 통신
    • 네트워크 버전 게임 개발
      • 프로젝트 생성 및 초기화
      • 스테이지 제작
      • 플레이어 제작
      • Character Controller 이동 로직
      • 네트워크 매니저 생성
      • 실행파일 빌드
      • 접속 네트워크 유저수 확인
      • 네트워크 플레이어 제작
      • 카메라 추적 로직
      • 부드러운 동기화 처리(OnSerializeNetworkView)
      • 발사 루틴(RPC 호출)
      • 애니메이션 동기화
      • 총알의 충돌체크
      • 사망 및 다시 리스폰(Respawn) 처리
      • 접속 종료 처리
    • 정리
  •  
  • ▣ 12장: 실감나는 게임 구현을 위한 유용한 기능
    • 래그돌(랙돌, Ragdoll)
      • 프로젝트 생성 및 리소스 내려받기
      • 스테이지 제작
      • 3D 모델의 래그돌 생성
    • 스크린 터치(Screen Touch)
      • ScreenPointToRay 함수
      • Touch 클래스
      • 유니티 리모트(Unity Remote 3)
    • 터치로 이동하기
    • 정리
  • 141p, [그림 4-38]의 빨간 화살표 주석에서 아래 화살표의 주석

    Near Clip Plane  ---> Far Clip Plane

  • 252p, 코드 9번째 줄

    animator,SetBool("IsHit", true); ---> _animator,SetBool("IsHit", true);

  • 414p, 코드 위에서 10번째 줄

    _animation = GetComponentInChildren<Transform>(); ---> _animation = GetComponentInChildren<Animation>();

  • 418p, 코드 2번째 줄

    _animation = GetComponentInChildren<Transform>(); ---> _animation = GetComponentInChildren<Animation>();

아래 저자 홈페이지에 가시면 리소스 파일을 내려받으실 수 있습니다.

■ [책에서 사용되는 리소스 패키지 파일] : http://www.unity3dstudy.com/?p=4313

■ [동영상 강의 / 저자 Q & A] : www.Unity3dStudy.com


엮인 글

엮인 글 주소: http://wikibook.co.kr/unity-4-lecture/trackback/