절대강좌! 유니티

유니티 전문 개발자가 알려주는 효과적인 게임 제작 기법

유니티 2021 버전과 더불어 한층 더 충실하게 보강된 내용으로 돌아왔습니다!

유니티는 현재 가장 각광받고 있는 게임 개발 엔진이다. 국내외를 막론하고 출시되는 많은 모바일 게임은 물론 게임 분야가 아닌 VR/AR, 영화, 산업 전반에서 유니티를 도입하는 추세다. 이 책은 최신 버전 유니티 2021를 이용해 게임 개발에 필요한 기능을 먼저 학습한 후 진행하는 방식이 아닌, 게임을 만들어 나가면서 필요한 기능을 알아보고 직접 구현하는 방식으로 진행한다.

유니티 2021에서 변경된 내용에 맞춰 책의 소스 코드를 다시 작성했으며 유니티 기초부터 포톤 엔진(Photon Engine)을 활용한 네트워크 게임까지 다루고 있다. 유니티의 또다른 렌더링 방식인 유니버설 렌더 파이프라인(Universal Render Pipeline)과 포스트 프로세싱(Post Processing)을 활용해 시각적인 퀄리티를 높이는 기법과 다양한 입력 방식에 대응할 수 있는 새로운 Input System의 실전 예제를 제시한다.

이 책을 끝까지 읽고 따라 하다 보면 어느새 게임 개발에 필요한 각종 지식을 습득하게 될 것이다.

★ 이 책에서 다루는 내용 ★

  • 유니티 설치 및 인터페이스 소개
  • 게임 스테이지 제작
  • 레거시 애니메이션 및 메카님 애니메이션
  • 적 캐릭터(NPC)의 유한상태머신(FSM; Finite State Machine) 구현
  • 내비게이션 메쉬를 이용한 적 캐릭터 추적 기능
  • 현실적인 폭발 효과 및 Muzzle Flash 구현
  • 실시간 그림자와 모바일용 그림자 처리
  • 레이캐스트(Raycast)를 응용한 발사 처리
  • 씨네머신을 활용한 카메라 워킹 기법 소개
  • 유니티 UI 소개 및 게임 인터페이스 구현
  • 게임매니저 및 오브젝트 풀 구현
  • 내비게이션 고급기법(동적 장애물, Off Mesh Link) 소개
  • 라이트맵핑 및 라이트 프로브 소개
  • 오클루전 컬링을 활용한 렌더링 성능 향상 기법 소개
  • 새로운 입력 방식인 Input System의 활용 예제 소개
  • Progressive 라이트매퍼를 이용한 라이트맵 및 라이트 프로브 소개

 

도서 소개 영상

 

도서 상세 이미지

이재현

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

  • ▣ 01장: 유니티 엔진의 소개
    • 리얼타임 3D 플랫폼
    • 유니티의 장점
      • 멀티 플랫폼 지원
      • 통합 개발환경
      • 유니티 라이선스 정책
      • 정보 공유를 위한 커뮤니티 활성화
      • 에셋 스토어
    • 유니티로 만들어진 게임 및 콘텐츠
    • 유니티 설치
      • 유니티 허브에서 로그인 또는 계정 생성
      • 라이선스 활성화
      • 유니티 에디터 설치
    • 유니티 에디터 소개
      • 유니티 에디터 구조
      • 툴 바의 기능
      • 단축키 설정
    • 정리
    •  
  • ▣ 02장: 게임 개발 준비
    • 이 책에서 개발할 게임 소개 및 개발 순서
    • 프로젝트 생성
    • 유니티 에디터의 환경설정
      • 레이아웃
      • 프로젝트 뷰의 칼럼
    • 프로젝트 뷰의 체계적인 관리
    • 캐릭터 모델 임포트하기
      • 유니티 패키지를 통한 리소스 설치
    • 에셋 스토어
      • 무료 리소스 내려받기
    • 정리
    •  
  • ▣ 03장: 게임 스테이지 제작
    • 바닥 생성 및 배치
    • 텍스처
      • 텍스처의 해상도 조절
    • 머티리얼
      • 머티리얼의 자동 적용
      • 머티리얼 생성
      • Albedo, Normal Map 적용
      • 머티리얼 적용 방법
      • 타일링 속성
      • 프리뷰의 다양한 기능
    • 셰이더 및 물리 기반 셰이딩
      • 렌더링 모드
      • 알베도
      • 메탈릭 속성
      • 노멀 맵
      • 하이트 맵
      • 오클루전
      • 이미션
      • 디테일 마스크
    • 프리팹
      • 네스티드 프리팹
      • 벽 만들기
      • 프리팹 생성
      • 프리팹의 복제 및 네이밍
      • 스내핑 기능
    • 조명
      • Directional Light
      • Point Light
      • Spot Light
      • Area Light
    • 실시간 라이트매핑 기능
      • Lighting Settings 에셋
      • Auto Generate 옵션
    • 하늘 표현 방식
      • 6방면 스카이박스
      • 스카이박스 적용
      • 프로시저럴 스카이박스
      • 큐브맵 스카이박스
    • 정리
    •  
  • ▣ 04장: 주인공 캐릭터 제작
    • 3D 모델 불러오기
    • 유니티 엔진의 개발 방식
      • 컴포넌트 기반의 개발 방식
    • C# 스크립트
      • 스크립트 코드 에디터
      • 추천하는 코드 에디터
      • 코드 에디터 변경
      • C# 스크립트 생성
      • 유니티의 주요 이벤트 함수
      • 이벤트 함수의 호출 순서
    • 키보드 입력값 받아들이기
      • InputManager
      • GetAxis 메서드
      • 스크립트 적용 방식
      • GetAxisRaw 메서드
    • 캐릭터의 이동
      • Vector3 구조체
      • 정규화 벡터
      • 컴포넌트 캐시 처리
      • ____Translate 함수
      • Time.deltaTime
      • public, private 접근 제한자
      • 인스펙터 뷰에 노출된 변수의 우선순위
      • private 변수의 인스펙터 뷰 노출
      • 벡터의 덧셈 연산
    • 캐릭터 회전 - Rotate
      • 씬 뷰에서 가상 카메라의 이동
    • 애니메이션
      • 애니메이션 클립
      • 애니메이션 적용
      • 애니메이션 블렌딩
    • 무기 장착
    • 그림자
      • 실시간 그림자
      • 메시를 이용한 그림자
    • Level Of Detail 설정
      • LOD Group 컴포넌트
    • Follow Camera 로직
      • Vector3.Lerp, Vector3.Slerp
      • Vector3.SmoothDamp
      • Target Offset 적용
    • 정리
    •  
  • ▣ 05장: 총 발사 로직
    • 총알 모델 준비
    • Rigidbody 컴포넌트
    • 물리 엔진 속성 설정 - Physics Manager
    • Collider 컴포넌트
      • Box Collider
      • Sphere Collider
      • Capsule Collider
      • Mesh Collider
      • Wheel Collider
      • Terrain Collider
    • 충돌 감지 조건
    • 충돌 이벤트
    • Tag 활용
      • OnCollisionEnter 콜백 함수
      • CompareTag 함수
      • Bullet의 프리팹 전환
    • 총알 발사 로직
      • 총알의 발사 위치
      • 런 모드에서 수정한 속성
      • 기즈모의 활용
      • 스크립트 작성 방식
    • 총알 발사 궤적 효과 만들기 – Trail Renderer
      • Trail Renderer
      • 프리팹의 변경 내용 조회 및 저장
    • 파티클 활용하기
      • 충돌 지점과 법선 벡터
      • 쿼터니언(Quaternion)
    • 폭발 효과 및 폭발력 생성
      • Scale Factor
      • 하이러키 뷰의 간략화
    • 텍스처 변경하기 - Mesh Renderer
      • 폭발력 적용하기 - AddExplosionForce
      • OverlapSphereNonAlloc
    • 오디오
      • AudioListener, AudioSource 컴포넌트
      • 오디오 파일 임포트 및 설정
      • 오디오 임포트 옵션 - Load Type
      • 오디오 임포트 옵션 - Compression Format
      • 총소리 구현
    • 총구 화염 효과 – Muzzle Flash
      • 코루틴 함수
      • MuzzleFlash의 블링크 효과
      • MuzzleFlash의 텍스처 오프셋 변경
      • 코루틴의 응용 - 임계치
    • 정리
    •  
  • ▣ 06장: 적 캐릭터 제작
    • 유한 상태 머신의 정의
    • 메카님
      • 적 캐릭터 3D 모델 임포트
      • 메카님 애니메이션으로 전환
      • 애니메이션 클립 속성
      • 애니메이션 리타게팅
      • Animator 컴포넌트
    • 애니메이터 컨트롤러
      • 스테이트 전이와 파라미터
    • 내비게이션 - 적 캐릭터의 순찰 및 추적
      • 내비게이션 설정 - Navigation Static Flag
      • 내비메시 베이크
      • NavMeshAgent 컴포넌트
    • 유한 상태 머신 구현
      • 적 캐릭터의 상태 체크
      • 적 캐릭터의 행동 구현
      • 애니메이션 동기화
      • 몬스터 공격 루틴
      • 몬스터 피격 리액션
    • 혈흔 효과
      • Resources 폴더
    • 적 캐릭터의 공격 능력
      • OnTriggerEnter 콜백 함수
    • 특정 레이어 간의 충돌 감지
    • 본 구조의 최적화
    • 몬스터 공격 중지
      • 애니메이션의 재생 속도 조절
    • 사용자 정의 이벤트 - Delegate
      • 델리게이트
      • 주인공의 사망 이벤트 처리
    • 몬스터의 사망 처리
      • Root Transform Position
    • 정리
    •  
  • ▣ 07장: 유니티 UI 시스템
    • 유니티 UI 구현 형태
      • IMGUI
      • UI Toolkit
      • Unity UI
      • UI 리소스 준비
    • Canvas 객체
      • EventSystem 객체
      • Canvas 객체의 컴포넌트
    • Canvas 컴포넌트
      • Screen Space - Overlay
      • Screen Space - Camera
      • World Space
    • Rect Transform 컴포넌트
    • 앵커 프리셋
      • 기본 앵커 프리셋
      • Alt 키 조합의 앵커 프리셋
      • Shift 키 조합의 앵커 프리셋
      • Alt + Shift 키 조합의 앵커 프리셋
      • anchoredPosition 속성
      • Anchors 속성
    • Image 컴포넌트
      • Simple
      • Sliced
      • Tiled
      • 텍스처의 Wrap Mode
      • Filled
    • RawImage 컴포넌트
    • Button 컴포넌트
      • Transition 속성
      • Navigation
      • Button Event
    • Text 컴포넌트
    • 스크립트에서 버튼 이벤트 처리하기
      • 람다식
    • TextMesh Pro
      • TextMesh Pro의 필수 리소스 설치
      • Text - TextMesh Pro
      • TextMesh Pro의 한글 처리
      • KS X 1001 규격의 한글 2350자
    • 생명 게이지 구현
    • 정리
    •  
  • ▣ 08장: 게임 매니저
    • 적 캐릭터의 출현 로직
      • SpawnPointGroup 생성
      • GameManager 객체 생성
      • Invoke, InvokeRepeate 함수
    • 싱글턴 디자인 패턴
    • 오브젝트 풀링
    • 스코어 UI 구현
      • PlayerPrefs를 활용한 스코어 저장
    • 정리
    •  
  • ▣ 09장: 레이캐스트 활용
    • 레이캐스트
      • DrawRay
      • Raycast, RaycastHit
    • 정리
    •  
  • ▣ 10장: 내비게이션 고급 기법
    • 동적 장애물
      • NavMeshObstacle 컴포넌트
    • Off Mesh Link Generation
    • 사용자 정의 Off Mesh Link
    • 자연스러운 회전 처리
    • Area Mask의 활용
      • 경로의 가중치
    • 정리
    •  
  • ▣ 11장: 라이트매핑 및 라이트 프로브
    • 전역 조명
    • 조명 모드
      • Realtime 모드
      • Mixed 모드
      • Baked 모드
    • 라이트매핑
      • Generate Lightmap UVs 옵션
      • Lightmap Static 플래그
      • 라이팅 뷰
      • Progressive 라이트매퍼
      • 라이팅 뷰의 Environment
      • Baked 라이트매핑
      • 라이트맵 베이크
      • Area Light
    • 라이트 프로브
      • Light Probe Group
      • Anchor Override
    • 정리
    •  
  • **▣ 12장: 씬 관리 **
    • Scene 분리
    • Scene 병합
    • 멀티 씬 에디트 기능
    • 정리
    •  
  • ▣ 13장: 오클루전 컬링
    • 컬링 방식
      • 프러스텀 컬링
      • 거리 비례에 의한 컬링
      • 오클루전 컬링
    • 오클루전 컬링 실습
      • Occluder Static, Occludee Static
    • 정리
    •  
  • ▣ 14장: Input System
    • 레거시 Input 클래스
    • 새로운 Input System의 특징
      • Input System의 구조
      • Input System의 환경 설정
      • Input System 패키지 설치
      • Active Input Handling
      • 테스트 환경 제작
      • Input Action 에셋
      • Control Schemes
      • Action Map 및 Action 생성
      • 바인딩 속성 설정
      • 이동 동작의 바인딩 추가
      • 공격 동작의 액션과 바인딩 추가
    • Player Input 컴포넌트
      • Actions 속성
      • Behavior 속성
      • Behavior - Send Messages 옵션
      • Behavior - Invoke Unity Events 옵션
      • Behavior - Invoke C Sharp Events
      • Direct Binding
    • Input Debug
    • 정리
    •  
  • ▣ 15장: 포톤 클라우드를 활용한 네트워크 게임 - 포톤 리얼타임 vs. 포톤 클라우드
    • 포톤 클라우드 환경 설정
      • 계정 생성
      • 포톤 클라우드 어플리케이션 생성
      • 유니티 프로젝트 생성 및 리소스 추가
    • 유니버설 렌더 파이프라인
      • URP 프로젝트 생성 방법
      • 새 프로젝트 생성
      • Universal RP 패키지 설치 및 URP 설정
      • 포스트 프로세싱 설정
      • 포스트 프로세싱 효과
    • 스테이지 생성
      • 스테이지 설치와 라이트 매핑
      • Bloom, Tonemapping 효과
    • 주인공 캐릭터 설정
      • 주인공 캐릭터 이동 및 회전
      • 시네머신을 활용한 카메라 컨트롤
    • 포톤 프로젝트 설정
      • PUN 패키지 설치
    • 포톤 서버 접속
    • 주인공 캐릭터의 네트워크 기능 구현
      • PhotonView 컴포넌트
      • Photon Transform View, Photon Animator View
      • 네트워크 환경에서 생성하기 위한 준비
      • 동시 접속을 위한 테스트 환경
      • OnPhotonSerializeView 콜백 함수
      • RPC를 활용한 총 발사 로직
      • 피격 및 리스폰
    • 로비 제작
      • 로비 씬 제작
      • 로그인 UI 제작
      • 게임 룸 입장
      • 룸 목록 UI 구현
      • 룸 목록 받아오기
    • 베틀 필드 세부기능 구현
      • 접속 정보 및 룸 나가기 기능 구현
      • ActorNumber 활용
    • 정리
    •  
  • ▣ 책을 마치며