카테고리 없음

절대강좌! 유니티

sballo 2023. 4. 18. 19:00

유니티 초보자도 하나씩 따라하면 간단한 FPS 게임 하나를 만들 수 있는 전체 과정을 알차게 담고 있습니다.완전 유니티 초보이면 좀 따라하기 힘들 수도 있겠지만 꼼꼼하게 내용을 설명하고 있어서 좀 힘들수도 있겠지만 충분히 게임을 바로 만들 수 있습니다.유니티의 UI 구조에서 부터 3D 모델링 애니메이션 데이타, C# 스크립트 소스에 대한 설명, FPS 게임에 필요한 요소들을 최대한 750페이지에 걸쳐 필요한 내용만 담아  책 만들때 신경을 꼼꼼하게 잘 쓰신 것 같습니다.저도 초보라 코딩을 모두 이해하면서 책을 보기에는 좀 힘들지만 두세번 정독할 생각으로 보고 있습니다.나중에 유니티 C#에 대한 책과 2D 게임 제작 관련 책을 더 보면 좋을 듯 합니다.

유니티 2018 버전과 더불어 한층 더 충실하게 보강된 내용으로 돌아온 절대강좌! 유니티 유니티는 현재 가장 각광받고 있는 게임 개발 엔진으로, 국내외를 막론하고 출시되는 많은 모바일 게임은 물론 비게임 분야인 VR/AR, 영화, 산업 전반에서 유니티를 도입하는 추세다. 이 책에서는 유니티의 최신 버전인 유니티 2018을 이용해 게임 개발에 필요한 기능을 먼저 학습한 후 진행하는 방식이 아닌, 게임을 만들어 나가면서 필요한 기능을 알아보고 직접 구현하는 방식으로 진행한다.유니티 2018에서 변경된 내용에 맞춰 책의 소스코드를 개정했으며 적 캐릭터의 AI에 시야각 기능을 추가해 개선하고 인벤토리 UI의 구현 및 데이터 저장 기법까지 다루고 있어 더욱 완성도 높은 게임을 구현하는 데 크게 도움될 것이다. 독자는 이 책을 끝까지 읽고 따라 하다 보면 어느새 게임 개발에 필요한 각종 지식을 습득하게 될 것이다.이 책에서 다루는 내용 · 유니티 설치 및 인터페이스 소개· 게임 스테이지 제작· 레거시 애니메이션 및?메카님 애니메이션· 적 캐릭터(NPC)의 유한상태머신(FSM; Finite State Machine) 구현· 내비게이션 메쉬를 이용한 적 캐릭터 추적 기능· 현실적인 폭발 효과 및 Muzzle Flash 구현?· 실시간 그림자와 모바일용 그림자 처리· 레이캐스트(Raycast)를 응용한 발사 처리· 능동적인 카메라 워킹 기법 소개· 새로운 GUI 시스템인 유니티 UI 소개 및 게임 인터페이스 구현· 게임매니저 및 오브젝트 풀 구현· 내비게이션 고급 기법(동적 장애물, Off Mesh Link) 소개· 라이트매핑 및 라이트 프로브 소개· 인벤토리 UI 구현 및 아이템의 드래그, 드롭 기능 구현· PlayerPrefs, 파일, ScriptableObject를 활용한 데이터 저장 기법 소개· Progressive 라이트매퍼를 이용한 라이트맵 및 라이트 프로브 소개

01장: 유니티 게임 엔진의 소개
통합 멀티미디어 엔진으로의 진화
유니티의 장점
___멀티 플랫폼 지원
___통합 개발 환경(IDE)
___유니티 라이선스 정책
___정보 공유를 위한 커뮤니티 활성화
___애셋 스토어
유니티로 만들어진 게임
유니티 설치
___유니티 설치과정
___유니티 계정 생성 및 로그인
유니티 에디터 소개
___유니티 에디터 구조
___뷰
___툴 바 및 타이틀 바
___단축키 설정
정리

02장: 게임 개발 준비
개발할 게임 소개 및 개발 순서
새 프로젝트 생성
유니티 에디터의 환경설정
프로젝트 뷰의 체계적인 관리
캐릭터모델 임포트하기
애셋 스토어
애셋 스토어에서 리소스 내려받기
정리

03장: 게임 스테이지 제작
바닥 생성 및 배치
텍스처
___텍스처 임포트
___텍스처의 해상도 조절
머티리얼
___머티리얼 적용 방법
___타일링 속성
셰이더 및 물리 기반 셰이딩
___렌더링 모드
___알베도
___메탈릭 속성
___노멀 맵
___하이트 맵
___오클루전
___이미션
___디테일 마스크
프리팹
___벽 만들기
___프리팹 생성
___프리팹의 복제
___스내핑 기능
조명
___Directional Light
___Point Light
___Spot Light
___Area Light
하늘 표현 방식
___6방면 스카이박스
___프로시저럴 스카이박스
___큐브맵 스카이박스
정리

04장: 주인공 캐릭터 제작
3D 모델 불러오기
컴포넌트
스크립트 생성
키보드 입력값 받아들이기
___InputManager
___스크립트 적용 방식
캐릭터 이동 - Translate
___컴포넌트 캐시 처리
___Private 변수의 Inspector 노출
___게임오브젝트의 이동 및 회전
___Translate 함수
___정규화 벡터
___벡터의 덧셈연산
캐릭터 회전 - Rotate
카메라 추적 - SmoothFollow
레거시 애니메이션
___애니메이션 클립
___애니메이션 적용
___애니메이션 컨트롤
___애니메이션 블렌딩
무기 장착
그림자
___실시간 그림자
___Mesh를 이용한 그림자
Level Of Detail 설정
정리

05장: 총알 발사 로직
총알 모델 준비
Rigidbody 컴포넌트
물리엔진 속성 설정 - Physics Manager
Collider 컴포넌트
___Box Collider
___Sphere Collider
___Capsule Collider
___Mesh Collider
___Wheel Collider
___Terrain Collider
충돌 감지 조건
충돌 이벤트
Tag 활용
총알 발사 로직
___총알의 발사 위치
___런 모드에서 수정한 속성
___기즈모의 활용
총알 발사궤적 효과 만들기 - Trail Renderer
파티클 활용하기
___탄피 효과내기
___총구 화염 효과 - Muzzle Flash
___스파크와 탄흔 효과
드럼통의 폭발 효과
___Scale Factor
___Mesh Collider 활용
___드럼통의 외형 변형 - Mesh Filter
___텍스처의 변경하기 - Mesh Renderer
___폭발력 적용하기 - AddExplosionForce
사운드
___AudioListener, AudioSource 컴포넌트
___오디오 파일 임포트 및 설정
___오디오 임포트 옵션 - Load Type
___오디오 임포트 옵션 - Compression Format
___총소리 구현
___드럼통 폭발음 구현
정리

06장: 적 캐릭터 제작
유한상태머신의 정의
메카님
___적 캐릭터 3D 모델 임포트
___메카님 애니메이션으로 전환
___애니메이션 리타깃팅
___본 구조의 최적화 - 총 장착
애니메이터 컨트롤러
___메카님 애니메이션 클립 설정
___스테이트 전이와 파라미터
___루트 모션
___Root Transform Position (Y) 속성
___Root Transform Position (XZ) 속성
___Root Transform Rotation 속성
내비게이션 - 적 캐릭터의 순찰 및 추적
___내비게이션 설정 및 베이크
___NavMeshAgent 컴포넌트
적 캐릭터의 순찰 기능
___순찰 지점 생성
___스크립트 컴파일과 어셈블리 정의 파일
___순찰 로직 구현
유한상태머신 구현
___코루틴 함수
___적 캐릭터의 상태 체크
___적 캐릭터의 행동 처리
___애니메이션 동기화 - Blend Tree
___NavMeshAgent의 회전 속도
적 캐릭터의 공격 기능
___Any State 와 Transition Duration
___자동 발사 기능 구현
___재장전 기능 구현 - 레이어 분리
___적 캐릭터의 총알 제작
___메쉬로 만드는 총구 화염 - Muzzle Flash
적 캐릭터의 피격 및 혈흔 효과
___Resources 폴더
___Sub-State Machine
정리

07장: 주인공 캐릭터 피격 및 타격감 구현
타격감 구현
___주인공을 따라가는 기능 - FollowCam
___셰이크 효과
주인공 피격 및 피격 효과
___레이어 간의 충돌 감지
___Is Trigger 속성
애니메이션 속도 조절 및 오프셋 설정
불규칙적인 순찰
메시지 전달 - SendMessage
사용자 정의 이벤트 - Delegate

08장: 유니티 UI 시스템
Canvas 객체
___EventSystem 객체
___Canvas 컴포넌트
Rect Transform 컴포넌트
___앵커 프리셋
___anchoredPosition 속성
___앵커 속성
Image 컴포넌트
___Simple
___Sliced
___Tiled
___Filed
RawImage 컴포넌트
Button 컴포넌트
___Transition 속성
___Navigation
___Button Event
Text 컴포넌트
___Text Effects
Bloody Screen 효과
생명 게이지 구현
탄창 정보 UI 및 재장전 로직 구현
___탄창 UI 디자인
정리

09장: 게임 매니저
적 캐릭터의 출현 로직
___하이러키 뷰를 간결하게 유지하기
___SpawnPointGroup 생성
___사용자 정의 기즈모
___GameManager 객체 생성
싱글턴 디자인 패턴
___오브젝트 풀
___이벤트 함수의 실행 순서
정리

10장: UI 고급
적 캐릭터의 생명 게이지 구현
___Screen Space - Camera 모드
무기 교체 UI
___UI 터치 이벤트 감지
일시 정지 기능
___Canvas Group
인벤토리 UI
___인벤토리 UI 제작
___Grid Layout Group 컴포넌트
___드래그 처리
___드롭 처리
정리

11장: 데이터 저장 및 불러오기
PlayerPrefs를 활용한 데이터 저장
바이너리 파일 저장
___객체 직렬화(Object Serialization)
___OnApplicationQuit
___아이템 추가 및 삭제
___인벤토리에 아이템 로드
ScriptableObject
정리

12장: 레이캐스트 활용
레이캐스트
총알 자동 발사 로직
장애물 검출에 레이캐스트 응용
___장애물 설정
___주인공 캐릭터에 물리 엔진 적용
적 캐릭터의 지능화된 AI
___원주의 점 좌표 계산
___유니티 Editor 클래스
___적 캐릭터의 시야각 구현
카메라의 장애물 감지
___벽에 가려진 카메라의 높이 변경
___장애물에 가려진 카메라의 높이 변경
정리

13장: 내비게이션 고급 기법
동적 장애물
Off Mesh Link Generation
사용자 정의 Off Mesh Link
정리

14장: 라이트매핑 및 라이트 프로브
전역 조명
조명 모드
___Realtime 모드
___Mixed 모드
___Baked 모드
라이트매핑
___Generate Lightmap UVs 옵션
___Lightmap Static 플래그
___라이팅 뷰
___Progressive 라이트매퍼
___라이팅 뷰의 Environment
___Baked 라이트매핑
___Auto Generate 옵션
___라이트맵 베이크
___Area Light
라이트 프로브
___Light Probe Group
___Anchor Override
정리

15장: 씬 관리
Scene 분리
Scene 병합
씬 전환 시 Fade In 로직
정리
책을 마치며