영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

67
영영영 영영영 영영영영 영영 Mobile MMORPG

Upload: ndoors

Post on 23-Jun-2015

5.242 views

Category:

Software


4 download

DESCRIPTION

영웅의 군단의 테크니컬 아트, 유나이트 코리아 2014 - 엔도어즈 황재철 Technical Artist

TRANSCRIPT

Page 1: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

영웅의 군단의 테크니컬 아트

Mobile MMORPG

Page 2: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

황재철

Ndoors TS 팀Tachnical Artist9 년차 개발자2012 KGC 강연

직군 변화Modeler -> Animator -> Technical Artist

개발 게임군주 / 아틀란티카 / 삼국지를 품다 / 영웅의 군단

블로그http://hwanggoon.tistory.com/

Page 3: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

오늘 할 이야기 ?

“ 영웅의 군단”어떤 기준으로 만들어 졌는지 알아보자게임 프로그래밍에 관한 내용은 아님

Page 4: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

PC Mobile

시장의 변화

Page 5: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

PC Mobile

시장의 변화

Page 6: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

PC 와 Mobile 에서 돌아가는 “삼국지를 품다”로 가능성을 보았다 .

Mobile 에서 MMORPG 를 ...

Page 7: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

PC 와 Mobile 에서 돌아가는 “삼국지를 품다”로 가능성을 보았다 .

Mobile 에서 MMORPG 를 ...

그분께서 ..

Page 8: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

최고의 그래픽을 보여줄 수 있는

Mobile MMORPG 을 만들어야 겠어 !!

게임의 목표

Page 9: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

이번에는 카메라도 자유롭게넓은 필드도 있어야겠지

다양한 캐릭터도 보여줘야 해

게임의 목표

Page 10: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

이번에는 카메라도 자유롭게

넓은 필드도 있어야겠지다양한 캐릭터도 보여줘야 해

게임의 목표

Page 11: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

이번에는 카메라도 자유롭게넓은 필드도 있어야겠지

다양한 캐릭터도 보여줘야 해

게임의 목표

Page 12: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

삼국지를 품다 와는 분명 다르다

새로운 기준이 필요해

Page 13: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

삼국지를 품다 와는 분명 다르다

새로운 기준이 필요해

Mobile 기기를 선정하는 것이 최우선

Page 14: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Mobile 기기를 정하는 것이 최우선

지금은 최신형 모델이겠지만개발이 완료될 시점에는보편화된 모델이 될 거야

Page 15: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

지금은 최신형 모델이겠지만개발이 완료될 시점에는보편화된 모델이 될 거야

Galaxys3 너로 결정했다 !!

Page 16: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Galaxys3 너로 결정했다 !!

모델이 정해졌다면

프로토타입 제작

Page 17: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

프로토타입

Page 18: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

프로토타입을 바탕으로

가이드 라인을 만들자

Page 19: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

기준을 잡기 위한 삽질들…

Page 20: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Draw Calls 의 중요성퍼포먼스에 Draw Calls 이 미치는 영향

Page 21: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

퍼포먼스 어떻게 배분해야 할까 ?

Page 22: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

믿을 수 있는 건 경험에서 나오는 감뿐 ..

Page 23: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

배경50%

캐릭터20%

이펙트15%

UI15%

Drawcall

로직40%

배경24%

캐릭터16%

이펙트8%

UI12%

CPU

각 파트별 배분

Page 24: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

카메라가장 먼저 해야 할 설정이 FOV 를 잡는 것이다

FOV 45

Page 25: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

카메라

FOV 30

가장 먼저 해야 할 설정이 FOV 를 잡는 것이다

Page 26: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

캐릭터

최대 30 마리까지 출현Texture : 512 X 512 1 장Face : 1000 ~ 1500 개Bone 20 ~ 30 개

Page 27: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Bone

Bone : 20 ~ 30 개Animation : 9 ~ 20 개

Bone 21 개Biped 26 개제외 된 BoneNeck 1 개 / Clavicle 2 개 / Toe 2 개

재구성

Page 28: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Animation 최적화

Sample Rate 를 30 으로 하자

- 60Frame 은 이미 포기한지 오래다 ! - 용량최적화

Animation Clip 용량을 줄이자

Reduction - Rotation Error : 1 ( 기본값 0.5) - Position Error : 2 ( 기본값 0.5) - Scale Error : 2 ( 기본값 0.5) - 30% 정도의 줄임

Compression 미사용 - Prop Animation 에 문제가 있어 사용하지 않음

Page 29: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

배경

Draw Calls

Verts

Static Batching

Dynamic Batch-ing

Light Map

실시간 Light

Light Probes

실시간 Light : 배경은 움직이는 Object 가 없어 , 실시간 Light 를 사용하지 않음Light Probes : 필드 형태의 지형이 많아 Light Probes 작업 효율에 비해 효과가 낮음

100 이하

75K

X

X

Page 30: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Terrain

Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등

Page 31: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

그런데 Unity Terrain 을 번들로 불러오면 Terrain 인식에 문제가 생겼다( 메모리도 좀 ..)

Terrain

Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등

Page 32: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Mesh 방식으로 가자- 유니티 터레인의 이점을 활용 할 수 있는 방법을 모색하자

Terrain

그런데 Unity Terrain 을 번들로 불러오면 Terrain 인식에 문제가 생겼다( 메모리도 좀 ..)

Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등

Page 33: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

유니티에서 터레인 제작 -> Mesh 로 변환 -> Max 에서 Verts 최적화

Unity Terrain 최적화 Mesh

Terrain

Page 34: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

타일링 유지 – Terrain Resolution 을 이용해 타일링 유지

4 Channel Mask

Terrain

Page 35: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Terrain

Mobile 에 타일링 적용

Page 36: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

리소스 제작은순조롭게 진행 되었다

Page 37: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

그때까지는 ..

Page 38: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

리소스가 어느 정도 나왔으니

이제부터 본격적으로 프로파일링을 시작해

볼까 ~

Page 39: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Profiling

Page 40: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

FPS 6가장 무거운 Scene

Draw Call 413

Page 41: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

프로젝트가 진행되다 보면초기 설정한 기준과 많은 부분 달라진다

Page 42: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

프로젝트가 진행되다 보면초기 설정한 기준과 많은 부분 달라진다

이건 자연스러운 현상이니받아드려라

Page 43: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

이건 자연스러운 현상이니받아드려라

최적화 진행

Page 44: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

최적화 진행( 시간관계 상 자세한 내용은 생략한다 )

Quality 를 유지 하면서최적화 하기엔 한계가 있었다

Page 45: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Quality 를 유지 하면서최적화 하기엔 한계가 있었다

대안은

Mobile Quality Manager

Page 46: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Camera Culling Mask Draw Calls 을 줄이기 위해 Object 의 크기 별 Layer 설정 - SMALL_OBJECT - MEDIUM_OBJECT - LARGE_OBJECT

Quality Setting

Quality 는 3 단계

Post Effects - Bloom

Shader LOD 사용 - Water, Characters

Page 47: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Quality HIGH

Draw Calls : 124Verts : 97.8kUsed Textures : 34 – 5.2MB

Draw Calls : 59Verts : 53.7kUsed Textures : 31 – 4.9MB

Page 48: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Quality MEDIUM

Draw Calls : 109Verts : 68.8kUsed Textures : 30 – 3.9MB

Draw Calls : 43Verts : 26.5kUsed Textures : 29 – 3.6MB

Page 49: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Quality LOW

Draw Calls : 94Verts : 48.3kUsed Textures : 28 – 2.8MB

Draw Calls : 41Verts : 20.6kUsed Textures : 28 – 1.9MB

Page 50: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Post Effects

Mobile BloomQuality HIGH

Page 51: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

여기서 한가지 더

Page 52: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

여기서 한가지 더

Mobile Game 을 개발한다면고려해야 하는 것이 한가지 더 있다

Page 53: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Mobile Game 을 개발한다면고려해야 하는 것이 한가지 더 있다

BATTERY

Page 54: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

BATTERY

Battery 소모 속도가 빠르다

Page 55: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Battery 소모 속도가 빠르다

Quality 를 LOW 로 해도Battery 소모 속도에 큰 변화는 없다 ..

Page 56: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Game 외적인 요소는 없을까 ?

Quality 를 LOW 로 해도Battery 소모 속도에 큰 변화는 없다 ..

Page 57: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Game 외적인 요소는 없을까 ?

바로 너다

Display 밝기

Page 58: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

절전모드

절전 0 단- 절전기능 없음

절전 1 단- FPS 제한 최대 20- Display 밝기 최대 60 (60 보다 낮은 밝기로 플레이하는 유저는 무시 )

절전 2 단- FPS 제한 최대 15- Display 밝기 최대 30 (30 보다 낮은 밝기로 플레이하는 유저는 무시 )

30 보다 내리면 너무 어두워 사용자가 수동으로 올리는 행동을 할 요지가 있음

안드로이드는 CPU Clock 을 조절 할 수 있어이를 내리면 Battery 소모 속도에서 이득을 볼 수 있지 않을까 ?하지만 다른 여러 문제가 발생 할 요지가 커 사용하지 않았음

Page 59: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화작업 공정의 문제 인식

Animation 1 개를 만드는 과정

Page 60: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화

5Animation 5 개를 만든다면 ?

작업 공정의 문제 인식

Animation 5 개를 만들기 위해

15 개의 File 을 관리해야 한다

Page 61: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화

5Animation 5 개를 만든다면 ?

작업 공정의 문제 인식

Animation 5 개를 만들기 위해

15 개의 File 을 관리해야 한다

관리 포인트의 증가

Page 62: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화

5Animation 5 개를 만든다면 ?

동작 별 MAX File 을 가질 때 불편한 점

- Node 가 변경되면 대응하기 힘들다 - Animation Pose 복사 등을 손쉽게 할 수 없다 - Export 를 여러 번 해야 한다

작업 공정의 문제 인식

Page 63: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화어디까지 줄일 수 있을까

줄일 수 없다줄일 수 있다

Page 64: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Export

자동화MAX

Max File 하나에 모든 동작을 잡는다

Max 안에서 동작 별 이동과 설정을 할 수 있는 Max Script 제공

동작 정보를 FBX 안에 넣어서 Export 해준다(Export Option 설정도 통일 )

Custom Attributes - Animation Name - Frame Range - Loop

Page 65: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

Im-port

자동화Unity

FBX 안에 들어있는 정보- Animation Name- Frame Range- Loop

Import 가 될 때 Unity 에 FBX 안에 있는 Properties 값을 알아 낼 수 있다(OnPostprocessGameObjectWith-

UserProperties)

이 동작 정보대로 An-imation 을 분할하면 된다

Page 66: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014

자동화

Import 와 동시에 Animation 정보를 바로 설정할 수 없다그래서 GUID 값을 이용해 데이터를 따로 저장해두자다시 한번 Import 이벤트가 발생하면 GUID 값을 기준으로 Animation 정보를설정하면 된다

GUID : Unity 가 어셋들을 관리하기 위해 부여하는 고유번호

Tip

Page 67: 영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014