이미 소장하고 있다면 판매해 보세요.
|
1장. 3차원으로 들어가기
__3D의 기본 개념 ____좌표 ____로컬 공간과 월드 공간 ____벡터 ____카메라 __폴리곤, 에지, 버텍스, 메시 __셰이더, 머티리얼, 텍스처 __리지드바디 물리 ____충돌 감지 __소프트바디 물리 ____클로스 컴포넌트 __3D에서 2D 처리 ____하나의 축 무시 ____스프라이트의 이해 __유니티의 핵심 개념 ____유니티의 방식 ____에셋 ____씬 ____게임오브젝트 ____컴포넌트 ____스크립트 ____프리팹 __유니티 인터페이스 ____씬 뷰와 계층 구조 뷰 ____컨트롤 툴 ____인스펙터 ____프로젝트 창 ____게임 뷰 __요약 2장. 프로토타입과 스크립팅의 기본 __첫 번째 유니티 프로젝트 ____기본 프로토타입 환경 ____씬 설정 ____간단한 조명 추가 ____벽을 세울 벽돌 __C# 스크립팅 소개 ____스크립트와 클래스 ____새로운 C# MonoBehaviour 클래스 __Shooter 클래스 작성하기 ____공용 변수 선언 ____스크립트를 오브젝트에 할당 ____카메라 움직이기 ____로컬, 전용, 공용 변수 ____오브젝트 이동 ____이동 구현하기 ____탄알 만들기 __프리팹 저장 ____탄알 발사하기 __요약 3장. 게임 에셋 만들고 설정하기 __씬 설정과 게임 에셋 준비 ____게임에 프리팹 배치하기 __패럴랙스 스크롤 구현 ____고려할 수 있는 옵션 ____수집 아이템 스폰 __2D 애니메이션의 기본 ____애니메이션 스프라이트 임포트하기 ____애니메이터 컴포넌트 ____애니메이터 상태 머신 에디터 ____마무리 __요약 4장. 플레이어 컨트롤러와 추가 스크립팅 __인스펙터 이용 ____태그 ____레이어 ____프리팹과 인스펙터 __유니티 스크립팅 ____문 ____변수 __전체 코드 예제 ____함수 ____맞춤형 함수 작성하기 ____맞춤형 함수 선언 ____if else문 ____다중 조건 __스크립트 간 통신과 점 표기법 ____다른 오브젝트 접근 ____Find()와 FindWithTag() ____SendMessage ____GetComponent ____null 참조 예외 ____코루틴 ____주석 __2D 캐릭터 분석 ____Platformer2DUserControl 클래스 확장 ____수집 아이템 스폰 ____타이머 추가 ____체력과 장애물을 추가해 난이도 높이기 ____더 멋있게 만들기 ____추가 게임 논리 작성 ____숙제 __요약 5장. 유니티를 이용한 캐릭터 애니메이션 201 __유니티 레거시 애니메이션 시스템 ____캐릭터 모델과 애니메이션 임포트 ____여러 모델 파일을 이용한 애니메이션 임포트 ____애니메이션 설정 __애니메이터를 이용한 플레이어 만들기 ____유니티에서 아바타란 무엇인가? ____아바타 구성하기 ____애니메이터로 애니메이션 클립 임포트 ____모델의 스케일 조정 __애니메이터의 이해 ____애니메이터 컴포넌트 ____애니메이터 컨트롤러 ____애니메이터 상태 머신 ____애니메이션 상태 ____코드로 파라미터를 이용해 애니메이터 제어 __루트 모션 애니메이션 ____개선된 방법: 루트 모션 애니메이션 ____애니메이션 트랜지션 ____블렌드 트리 ____최종 마무리 __요약 6장. 환경 만들기 __게임 디자인 __지형 툴의 이해 및 사용 ____지형의 특징 설정 ____지형 툴 __섬 만들기 ____1단계: 지형 설정 ____2단계: 섬의 외각선 만들기 ____3단계: 작은 호수 만들기 ____4단계: 텍스처 추가 ____5단계: 나무 심기 ____6단계: 풀밭에 풀 추가 ____7단계: 광원 추가 ____8단계: 섬 주변에 바다 추가 ____9단계: 사운드 추가 ____10단계: 캐릭터 플레이어 추가 ____11단계: 마무리 __요약 7장. 상호작용, 충돌, 경로 탐색 __디지털 콘텐츠 제작 애플리케이션 ____일반적인 모델 임포트 설정 ____Animation 섹션 __오두막 모델 설정 ____모델 추가 ____모델의 위치 조정 ____수동으로 콜라이더 추가 ____물리 머티리얼 ____오디오 추가 __충돌과 트리거의 개요 ____레이 캐스팅 __오두막의 문 열기 ____첫 번째 기법: 충돌 감지 ____두 번째 기법: 레이 캐스팅 ____세 번째 기법: 트리거 충돌 감지 ____추가 모델 배치 __유니티 내비게이션 시스템 ____Bake 탭 ____Agents 탭 ____Object 탭 ____Areas 탭 __요약 8장. AI, NPC, 그리고 추가 스크립팅 __NPC 만들기 ____초기 코드와 애니메이터 컨트롤러 ____애니메이션 전환 ____내비게이션 설정 ____간단한 AI 클래스 작성 ____NPC 상호작용 ____DialogueManager 클래스 작성 ____대화를 표시하는 기본 UI 만들기 __적 인공지능 만들기 ____용도에 맞게 유니티 표준 에셋 활용 ____인공지능을 더 영리하게 만들기 ____프로퍼티 드로어로 인스펙터에서 맞춤형 컴포넌트 개선 ____부가적인 고려 사항과 아이디어 __요약 9장. 아이템 수집, 플레이어 인벤토리, HUD __고대 유물 조각 프리팹 만들기 ____다운로드, 임포트, 배치 ____유물 조각에 태그 할당 ____콜라이더 스케일 조정과 회전 ____아티팩트 조각 수집 스크립트 만들기 ____트리거 충돌 감지 추가 ____프리팹으로 저장 __유물 조각 배치하기 __플레이어 인벤토리 ____수집한 유물 조각의 수 저장 ____PiecePickup() 메소드 ____마지막 유물 조각에 대한 접근 제한 __게임 진행 상태 HUD 표시하기 ____UI 이미지의 임포트 설정 ____HUD 패널과 배경 UI 이미지 만들기 ____UI 이미지 활성화를 위한 스크립팅 ____QuestIndicator 이미지 추가 ____요소의 그리기 순서 ____게임 시작을 위해 HUD 비활성화 ____HUD 활성화 __플레이어를 위한 힌트 ____화면에 UI 텍스트 표시 ____스크립팅을 통한 UI 텍스트 제어 ____진행 상황을 보여주는 힌트 조정 __요약 10장. 인스턴스 생성과 리지드바디 __인스턴스 생성 ____물리 __게임플레이 디자인 ____돌 프리팹 만들기 __경비병에게 돌 던지기 ____StoneLauncher 스크립트 ____플레이어 입력 확인 ____Fight 메소드 작성 ____돌의 인스턴스 생성 ____인스턴스 명명 ____가속도 할당 ____개발의 안전 장치 ____마무리 손질 ____인스턴스 제한과 오브젝트 정돈 ____돌 던지기 애니메이션 구현 ____돌을 영리하게 제거 __최종 마무리 ____래그돌 물리 시뮬레이션 __경비병 회복하기 ____코루틴을 이용해 게임 요소의 시간 지정 ____충돌 감지 ____주먹으로 경비병 공격 __요약 11장. 유니티 파티클 시스템 __파티클 시스템이란? __벽난로 만들기 __횃불 만들기 ____Fire Light 컴포넌트 수정 __환경 효과 추가 ____마을 바닥에 모래 안개 추가 __바닷바람 파티클 시스템 만들기 ____그레디언트 에디터 __폭포 만들기 __요약 12장. 유니티 UI를 이용한 메뉴 디자인 __유니티 UI ____캔버스 렌더 모드 ____UI 사용을 위한 텍스처 준비 __메인 메뉴 씬 만들기 ____게임 제목 추가 ____메인 메뉴 패널 만들기 ____오디오 옵션 메뉴 만들기 ____비디오 옵션 메뉴 생성 __최종 손질 ____조명과 섀도우 ____포스트 프로세싱 이미지 효과 ____두 카메라로 렌더링 분할 __결론 ____화면 크기 테스트 ____참고 자료 __요약 13장. 최적화와 마지막 손질 __지형 세부 조정 ____스피드트리 사용하기 ____언덕, 골, 바위, 텍스처 블렌딩 ____씬 설정 ____씬 베이킹하기 ____씬 베이킹하기 ____Global maps 탭 ____Object maps 탭 __성능 최적화 ____카메라 클립 평면 ____오클루전 컬링 __마무리하기 ____렌더링 경로 ____물리 기반 렌더링: 유니티 표준 셰이더 ____이미지 효과 ____하드웨어 기반 안티앨리어싱(MSAA)과 셰이더 기반 안티앨리어싱(FSAA) ____포스트 프로세싱 스택 __고급 렌더링 기능 ____LOD ____HDR ____비동기 텍스처 업로드 ____그래픽스 커맨드 버퍼 __유니티 엔진의 자동화된 최적화 ____정적 및 동적 배칭 ____최대한으로 컬링하기 __추가 최적화 ____물리 최적화 ____인공지능의 CPU 사용량 최적화 __요약 14장. 빌드와 공유 __지원되는 플랫폼 ____PC 윈도우, 리눅스, 맥 독립형 ____안드로이드 플랫폼 ____iOS ____WebGL ____가상현실, 증강 현실, 혼합 현실 __플레이어 설정 ____크로스 플랫폼 일반 설정 ____플랫폼별 플레이어 설정 ____맥-PC-리눅스: 독립형 빌드 ____안드로이드 ____iOS ____WebGL __플레이어 입력 설정 __그래픽 설정 ____티어 설정 __품질 설정 ____품질 설정: 렌더링 ____품질 설정: 섀도우 ____품질 설정: 기타 __게임 빌드하기 ____빌드 설정 ____첫 번째 빌드 __웹 배포를 위한 준비 ____웹 배포를 위한 빌드 __모바일 플랫폼을 위한 준비와 빌드 ____안드로이드를 위한 준비 ____안드로이드용 빌드 ____iOS용 빌드 __테스트와 디버깅 ____비주얼 스튜디오 2017을 이용한 디버깅 ____유니티 에디터를 이용한 테스트와 프로파일링 __작업 공유하기 ____WebGL 빌드 공유하기 ____모바일 스토어에 퍼블리싱 ____데스크톱 퍼블리싱 ____디지털 콘텐츠 제작 툴 ____유니티와 MonoBehaviour의 미래 ____테스트와 추가 연구 ____실전을 통해 배우기 __테스트와 마무리 ____공개 알파 테스트와 오픈 베타 ____프레임 속도 피드백 ____추가 최적화 __학습을 위한 방법 ____바퀴를 재발명할 필요는 없다 ____에디터 확장 ____예제 프로젝트 ____모르는 것이 있으면 물어보자! __요약 |
Tommaso Lintrami
최민석의 다른 상품
|
이 책에서 다루는 내용
- C#을 이용한 게임 스크립팅 - 첫 2D 및 3D 게임 제작 - 애니메이션, 물리, 스크립팅과 같은 게임 개발의 핵심 개념 - 게임 성능 향상을 위한 테스트 및 최적화 - 모든 기능을 갖춘 메뉴, HUD, UI 제작 - 인공지능과 NPC를 활용하는 플레이어 캐릭터 상호작용 구현 이 책의 대상 독자 초급 및 중급 수준의 일반 사용자와 게임 개발자를 대상으로 한다. 유니티에 대한 사전 경험은 필요 없지만 C#을 이해하기 위해서는 프로그래밍에 대한 기본적인 지식이 필요하다. 이 책의 구성 1장. '3차원으로 들어가기'에서는 이 책에서 다루는 내용을 학습하기 위해 반드시 알아야 할 여러가지 핵심 개념을 소개한다. 3D 그래픽은 유니티뿐만 아니라 다른 영역과 관련해서도 다룰 내용이 많은 포괄적인 주제이므로, 유니티의 인터페이스와 개념을 본격적으로 다루기 전에 중요한 3D 개념을 먼저 알아본다. 좌표와 벡터, 물리 시뮬레이션, 그리고 유니티 에디터의 기본 사용자 인터페이스에 대해 배운다. 2장. '프로토타입과 스크립팅의 기본'에서는 유니티 인터페이스와 게임오브젝트(GameObject), 컴포넌트, 그리고 기본 스크립팅에 대해 다룬다. 또한 유니티에서 새로운 프로젝트 제작 방법을 알아보며 변수, 함수, 명령을 소개한다. 3장. '게임 에셋 만들고 설정하기'에서는 유니티 3D에서 2D 프로젝트와 직교 카메라, 조명을 관리하는 방법을 배우고, 패럴랙스(parallax) 스크롤 배경 구현 방법과 스프라이트 시트에서 애니메이션을 임포트하는 방법을 알아본다. FreeParallax 컴포넌트를 수정하거나 맞춤 구성하는 방법을 알아보고 애니메이터 컨트롤러를 처음으로 살펴본다. 4장. '플레이어 컨트롤러와 추가 스크립팅'에서는 기존 클래스를 수정하고 새로운 클래스를 만들면서 스크립팅에 대한 내용을 한 단계 더 진행한다. 또한 여러 종류의 콜라이더 2D와 리지드바디 2D를 지원하는 새로운 물리 2D 프레임워크를 이용하는 방법을 알아보며, C# 클래스를 필요에 맞게 수정하는 방법과 2D 환경에서 충돌 및 트리거 감지가 작동하는 방법을 알아보고 유니티 UI 개념을 처음 소개한다. 이어서 인스펙터의 주 기능과 점 표기법을 간단히 소개하고 간단한 스크립팅 과정을 진행한다. 5장. '유니티를 이용한 캐릭터 애니메이션'에서는 유니티의 애니메이션 시스템과 메카님(Mecanim)을 살펴본다. 아바타 애니메이션을 위한 루트 모션 방식과 비루트 모션 방식의 차이점을 살펴보고, 기본적인 상태 머신과 복잡한 상태 머신을 구성해 캐릭터 애니메이션 동작을 제어하는 방법과 레이어에서 IK 패스를 이용해 스켈레톤의 일부를 스크립팅을 통해 제어하는 방법을 알아본다. 또한 플레이어 컨트롤러에 맞게 Standard Assets의 ThirdPersonCharacter 구성을 수정하는 방법을 소개한다. 6장. '환경 만들기'에서는 첫 번째 환경을 만들기 위해 알아야 할 기본적인 내용을 다루며, 납작한 평면 하나로 시작해서 캐릭터가 돌아다닐 수 있는 섬을 만든다. 또한 모든 종류의 게임 프로젝트에 필요한 두 가지 주요 요소에 해당하는 조명과 오디오에 대해 살펴본다. 특히 오디오 컴포넌트를 이용해 환경 주변 음향을 구현하는 방법을 다룬다. 7장. '상호작용, 충돌, 경로 탐색'에서는 충돌 감지와 레이캐스트를 이용해 3D 게임에서 객체 간의 상호작용을 감지하는 방법을 중점적으로 다룬다. 또한 경로 탐색의 기본 개념과 이용 방법을 배우며, 유니티의 기본 제공 내비게이션 시스템으로 내비메시(NavMesh)를 최적화하고 레벨을 구성하는 과정을 알아본다. 8장. 'AI, NPC, 그리고 추가 스크립팅'에서는 NPC의 시각적 프리팹과 애니메이션 컨트롤러 및 컴포넌트, 그리고 간단한 경비병 NPC용 AI 클래스를 만들고, 이어서 고급 AI 클래스를 만들어 본다. 플레이어와 NPC의 상호작용과 간단한 대화를 구현하기 위해 유니티 UI, 트리거, 스크립팅을 활용한다. 또한 내비메시 베이킹을 위해 내비게이션 시스템을 구성하고 캐릭터 움직임을 포함한 내비게이션을 테스트한다. 9장. '아이템 수집, 플레이어 인벤토리, HUD'에서는 게임 시나리오 제작을 간략히 다룬다. 구체적으로 말해, UI 텍스트 컴포넌트를 이용해 온스크린 텍스트를 표시하는 방법과 UI 이미지 컴포넌트를 이용해 HUD를 만드는 방법, 그리고 변수를 이용해 게임 상태를 조작하는 방법을 배운다. 또한 아이템 수집 퍼즐을 만든다. 10장. '인스턴스 생성과 리지드바디'에서는 애니메이트되는 동적 요소와 발사체 인스턴스를 위한 리지드바디 오브젝트의 구현을 살펴본다. 코루틴을 활용해 스크립팅에 구조와 추가 기능을 제공하는 방법을 알아보며, 주먹 공격과 돌 던지기 동작을 관리하는 간단한 전투 시스템을 만들면서 래그돌 시뮬레이션의 구성을 소개하고 기절한 적을 되살리는 래그돌 매니저의 스크립팅을 살펴본다. 11장. '유니티 파티클 시스템'에서는 여러 멋진 파티클 효과를 만드는 방법과 필요에 맞게 파티클 시스템을 맞춤 구성하는 방법을 알아본다. 또한 여러 파티클 시스템을 함께 재생하는 방법, 다른 상황에서 동일한 효과를 결합하는 방법, 그리고 불 효과를 위한 점광원의 색상/강도를 변경하고 주변 이동을 위해 파이어라이트 컴포넌트를 수정 및 조정하는 방법을 살펴본다. 12장. '유니티 UI를 이용한 메뉴 디자인'에서는 유니티 UI를 이용해 사용자가 게임을 시작하거나 윈도우로 종료하는 메인 메뉴 신을 제작한다. 또한 UI 패널에서 애니메이션을 이용하고, 마우스 이벤트를 포착하며, 이벤트에 따라 코드를 실행하는 방법을 알아본다. 이어서 월드 공간 캔버스를 이용해 게임 내 일시 정지 메뉴 기능을 만들고 텍스처 이미지를 새로운 유니티 UI와 함께 사용하기 위해 준비하는 방법을 알아본다. 13장. '최적화와 마지막 손질'에서는 최적화 기법을 적용하는 방법과 프로파일링으로 병목 현상을 발견하는 방법을 다룬다. 또한 표준 이미지 효과를 살펴보고 새로운 포스트 프로세싱 스택을 소개한다. 몇 가지 멋진 기능을 추가하고 최종 빌드를 위해 마지막으로 준비한다. 14장. '빌드와 공유'에서는 유니티를 지원하는 플랫폼에 대해 알아보고 데스크톱, 웹, 모바일 빌드에 맞게 게임을 조정하는 방법을 알아본다. 유니티 플레이어 설정과 빌드 설정을 살펴보고, 다양한 플랫폼 간의 주요 차이점을 확인하며, 만든 게임을 다른 사람들과 공유하는 방법을 소개한다. 지은이의 말 게임 엔진은 우리가 이해하고 사랑하는 게임을 뒷받침하는 든든한 바탕이다. 유니티는 가장 널리 사용되면서 동시에 가장 많은 인기를 누리고 있는 게임 개발용 엔진이며, 순수한 취미 수준의 개발자뿐 아니라 전 세계의 수많은 대규모 스튜디오에서 웹, 데스크톱, 모바일, 콘솔용 게임과 대화식 환경을 개발하는 데 활발히 활용되고 있다. 유니티의 직관적이고 배우기 쉬운 툴셋과 이 책을 준비하면 그 어느 때보다 쉽게 게임 개발자가 될 수 있다. 이 책은 유니티를 이용한 개발에 본격적으로 들어가기에 앞서, 2D 및 3D 게임 개발의 기본 개념을 소개하고, 간단한 2D 시나리오로 프로토타입을 제작하며, 대규모의 3D 게임을 개발하는 실용적인 접근법을 따른다. 이 책을 통해 3D 세계의 제작부터 스크립팅과 게임 메카닉까지 게임 개발을 시작하기 위해 알아야 할 모든 내용을 배울 수 있다. 이 책은 쉬운 예제를 따라 하며 궁극적으로 상호작용이 가능한 섬의 환경과 대화, 퍼즐, AI 기반의 적이 등장하는 3인칭 3D 게임을 제작할 수 있도록 설계됐다. 이 책에서 다루는 개념은 다른 종류의 게임에도 모두 적용할 수 있다. 게임과 3D 애플리케이션의 공통 개념을 바탕으로 유니티를 활용해 게임 환경, NPC, 적과 상호작용하는 캐릭터를 만들고, 플레이어가 게임 레벨을 완료하기 위해 해결해야 하는 퍼즐을 어떻게 제작하는지 배울 수 있다. 이 책을 모두 읽고 나면 완전하게 작동하는 3D 게임과 이 게임을 확장하는 데 필요한 모든 기술을 익힐 수 있다. 또한 일련의 최적화와 성능 향상 솔루션을 적용해 플레이어에게 최상의 경험을 제공하는 3D 게임과 대화식 환경을 손쉽게 제작할 수 있게 된다! 옮긴이의 말 유니티는 이제 거의 모든 게임 플랫폼에서 게임을 개발할 때 가장 먼저 고려되는 게임 엔진이 됐다. 초기에는 개인 개발자나 소규모 인디 개발 팀이 유니티를 도입하는 데 적극적이었지만, 현재는 국내외 대규모 업체에서도 유니티로 개발한 중량급 게임을 꾸준히 선보이고 있다. 유니티가 대규모 게임 프로젝트에 활발히 채택되고 있는 데는 유니티에 대한 업계 전반의 인식이 변화한 이유도 있지만, 유니티가 제공하는 기능이나 성능이 최근 몇 년간 크게 향상된 것도 주요 요인이라 할 수 있다. 특히, 버전 체계를 바꾼 2017 버전부터는 분기별로 큼지막한 주요 업데이트를 쏟아내고 있다. 유니티의 기존 장점인 사용 편의성과 완만한 학습곡선, 가격 정책에 더해, 이제 경쟁 제품과 비교해 우위에 설 만큼 강력하고 광범위한 기능과 최적화된 성능을 자랑할 수 있게 됐다. 이 책은 C#을 이용하는 스크립팅의 기본 개념을 소개하는 것으로 시작하며, 유니티의 개발 환경을 간단히 살펴보고, 첫 번째 프로젝트를 설정하는 과정을 설명한다. 이어서 2D 패럴랙스 횡스크롤 게임을 제작하기 위해 에셋을 준비하고 캐릭터 애니메이션을 구현하는 방법을 알아본다. 그런 다음, 3D 게임 제작을 위한 환경 설정, 파티클 시스템을 활용한 다양한 효과 구현, 애니메이터를 활용한 캐릭터 애니메이션 등 수준 높은 3D 어드벤처 게임을 개발한다. 이 책을 다 읽고 나면 멋진 2D 횡스크롤 게임과 3인칭 어드벤처 게임을 완성하고, 하드웨어 사양에 맞게 게임을 최적화하고, 다양한 플랫폼으로 게임을 퍼블리싱하는 방법을 배우게 된다. |