Devtree에서 진행했던 Lightmapping workshop 1일차 자료.
Full version은 다음 링크에서 받으실수 있습니다 : http://illu.tistory.com/1178
비엘북스에서 출간된 유니티, 언리얼 그리고 VR편을 보시면 좀 더 이해가 쉽습니다. 본 슬라이드 셰어 내용은 기본적인 내용만 설명되어있습니다.
Devtree에서 진행했던 Lightmapping workshop 1일차 자료.
Full version은 다음 링크에서 받으실수 있습니다 : http://illu.tistory.com/1178
비엘북스에서 출간된 유니티, 언리얼 그리고 VR편을 보시면 좀 더 이해가 쉽습니다. 본 슬라이드 셰어 내용은 기본적인 내용만 설명되어있습니다.
스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
VR 게임을 만든다면 어떻게 만들어야 할까? - <toy> 포스트모템으로 보는 VR 게임 프로덕션과 VR 시장 지침서
발표자 소개
박문형 - 5민랩
2009-2012 넥슨 모바일 프로그래머
2013- 5민랩 창업자 및 대표이사
5민랩은 2013년 모바일 게임 회사로 창업하여, 2015년 부터 VR 게임을 제작하기 시작하였습니다.
Snake VR, Welder VR 등 다양한 VR 게임을 개발하여 출시 하였고, 이후 제작한 Space Sushi가 넥슨 컴퓨터 박물관이 주최한 VR Open Call에서 수상하여, 현재 넥슨 컴퓨터 박물관에서 전시 중입니다.
2017년 초 출시 예정인 Toy Clash의 포스트 모템을 통해 저희가 경험했던 VR 게임 개발과 시장에 대해 공유 드리고자 합니다.
세션소개
VR 게임을 만든다면 어떤 게임을 어떻게 만들어 어디로 내야 할까요?
5민랩은 2015년부터 VR게임을 제작하면서 다양한 경험을 쌓아왔습니다. 이를 통해 VR 게임 제작에 대해 조그만 조언을 드리고자 합니다.
특히 본 세션에서는 2017년 1월에 출시된 Toy Clash의 지난 1년간의 프로덕션 과정을 다시 살펴보면서, VR 게임 프로덕션에 대해 저희가 겪었던 문제와 교훈을 살피고 현재 VR 시장 및 트렌드에 대한 저희의 고촬을 주로 공유 드리게 됩니다.
4. 4
- 레고형식의 조립화된 레벨작업
- 에셋의 모듈화
- 3dmax에서 통으로 만들어서 익스포트 하는것보다,
블럭단위로 만들어서 유니티에서 조립하는 것이 처리하는 버텍수수가 현저하게
줄어든다(경우의 따라 2배 이상)
-> static batch가 켜져있는 상태에서 카메라에 들어오냐 안 오냐를 판단할때
통으로 되 있으면, 무조건 그려야 하기 때문
(바운딩 박스 기준으로 처리하게 됨 : 바운딩 박스는 물리박스가 아님)
1. 레벨 제작하기 위한 초석
5. 5
- 모바일에서 쿼터뷰 게임이 많은 이유
-> 랜더링 해야 하는 영역을 줄여줘서 최적화에 도움이 됨
-> 모바일에 제한적인 입력수단에서 ui를 눌러야 하는데, 회전이 된다던지 하면
유저의 흥미만 떨어트림
타겟 특성 때문에 시야를 움직이는 것보다는 고정되 있는 뷰가 오히려 안정감을
주게됨
오브젝트 배치시 유용한 기능
W : 이동
E : 회전
R : 스케일
V : 스냅핑(그리드 단위로 배치하기 좋은 핵심 기능)
3. 모바일용 레벨제작
6. 6
- 작업 시작시는 맵을 (0,0,0) 에 위치시킨후 시작한다
(프로그래밍에 용의함)
- 스타트 포인트 작업하기
-> 게임이 시작되려면 시작지점이 있어야 한다. 모델로 표현하고,
향후 프로그래머와 상의하여,프로그램 처리를 논의한다.
- 프리팹 작업시 중요한 것은 Apply버턴을 꼭 눌러주는 것이다.
- Apply를 누른 다음에는 Save도 해주자.
(NGUI의 경우는 Apply만으로 저장 안되는 경우도 있음)
4.쿼터뷰로 만들어 보는 던전
7. 7
1. 창문과 기둥배치하기
2. 바닥작업하기
3. 라이트의 배치
4. 디테일한 조정과 배치
5. 던전의 볼륨 잡아가기
던전은 길목과 사냥터가 구분되도록 상징적인 장식물을 만들어 주는 것이 좋다.
사냥터 앞에는 개동상?등
6. 바닥 데코레이션의 강조
- 카페트등을 깔아 동선을 알려주고, 단순한 느낌을 극복하자.
- 타일이 만나 이상한 부분은, 연결되는 바닥등을 깔아서 자연스럽게 만들다
7. 라이팅 에셋 배치하기
배경 작업 순서 #1
8. 8
8. 프리팹 정리 및 마무리 충돌 작업
- 프리팹 정리
- 충돌 처리
- 충돌처리 방식은 BOX/CAPSULE/SPHERE/WHEEL/TERRAIN Collidor가 있는데,
부하문제로 보통은 BOX, 중요하거나 계단인 경우등은 MESH, 플레어이 컨트롤은
CAPSULE을 사용한다.
- 충돌은 플레이어가 가지 못하는 곳을 정의하는 작업이다.
- 각 애셋마다 설정하는 방법이 있고, 벽등은 충돌체를 따로 추가하는 방법이 있다.
- 꼼꼼하게 작업하기 위해, 따로 추가하는 방법을 추천한다.
- 계단은 층을 만들어서, 플레이어가 걸리게 하지 말고, 텍스쳐로 그리고, MESH Collidor
로 다각형 형태로 처리해서 부드럽게 올라갈 수 있도록 한다.
배경 작업 순서 #2
9. 9
- 유니티 라이트의 종류
Directional Light(맵에 1개만 쓰자)
Spot Light(빛이 퍼지는 분위기 내기는 좋지만 제일 무거운 라이트 = 아웃!)
Point Light(분위기 내기 좋은 라이트, 라이트맵에 애용하자)
Area Light(Bake only - 라이트맵을 구운후 작동되는 라이트, 사실상 거의 사용 안함)
- 라이트 설치방법
- 유니티 라이트맵 굽기
- 라이트맵을 제작하려는 오브젝트는 반드시 STATIC가 체크되 있어야 함
- 라이트는 라이트맵 굽기용과 아닌것을 구분하고, light그룹으로 묶어서 관리하는 것이 좋다.
- 비스트시스템을 이용해서 굽는데, 이름을 몰라도 상관없음
- 글로벌 일루미네이션(GI) : 물체간의 간접광을 계산해주는 방법
5. 유니티의 라이트
10. 10
- 라이트맵 준비하기
- 어두운 맵에서 라이트맵이 잘 나온다.
- 불빛이 나오는 조명의 주변에는 항상 간접광이 생기기 때문에, 그 간접광을 자연
스럽게 표현해주면
실제 우리 주변의 사물과 좀 더 비슷하게 보일 수 있다.
- 라이트맵 굽기
- 맵 오브젝트를 그룹화 해두고, 최상단 오브젝트에서 STATIC를 체크한후
CHILDREN에 적용하면 된다.
- FBX를 임포트 하거나, 세팅할때, 반드시 Generate Light map UV 옵션이 켜져
있어야 해당 오브젝트가 적용된다.
6. 모바일에서 라이트 맵을 잘 세팅해보자
11. 11
Single lightmaps : 기본적인 라이트맵, 음영과 컬러정도를 적용함
Dual lightmaps : 가까운 거리는 간접광, 카메라가 멀어지면, single 라이트맵과
같아 진다.
기본 디퍼드렌더링에서 동작, 포워드도 가능하다고 하나 옵션 조정해
야 한다고 함.
퍼퍼먼스 이슈가 있어서, 모바일에서는 사용안하는게 좋음
- 라이트맵을 구운후에는, 라이트를 모두 비활성화 해주고, 각 오브젝트의 Cast
Shadow와 Receive Shadow를 꺼준다
13. 13
유니티에서 모바일게임 제작시 라이트 세팅 프로세스
1. 오브젝트 배치
2. 레벨데이터 구성 -> 스태틱 옵션 체크
3. 라이트 세팅 -> 일단 실시간 라이트로 세팅
4. 라이트맵 베이킹 -> 라이트맵은 1장으로 추천
5. 실시간 라이팅 세팅 제거
6. 각 오브젝트의 쉐도우 옵션 Off
14. 14
- 1인칭(FPS)과 3인칭(쿼터뷰)에 주로 사용
Asset -> Import Package -> Character Controller선택
- 3인칭 설정
3rd person controller에서
Distance 10
Height 7
Lock Camara Tim 100
으로 바꾸고 해보자
7. 캐릭터 컨트롤러
15. 15
- 안드로이드 SDK 다운로드 / 설치
- 사용자 시스템에 장치 인식시키기
- 유니티에 안드로이드 SDK 경로 추가하기
디폴트로 유니티는 ETC1/RGBA16 포맷을 권장
-> 사용자의 앱이 해당 핸드폰이 지원하지 않는 텍스쳐 압축을 사용하면
rgba32로 무압축되고, 압축된 것과 함께 복사본이 생성된다.
-> 텍스쳐 압축 해제하는데 시간을 쓰고, 메모리를 중복 사용하게 된다.
8. 빌드 하기