영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
DESCRIPTION
영웅의 군단의 테크니컬 아트, 유나이트 코리아 2014 - 엔도어즈 황재철 Technical ArtistTRANSCRIPT
영웅의 군단의 테크니컬 아트
Mobile MMORPG
황재철
Ndoors TS 팀Tachnical Artist9 년차 개발자2012 KGC 강연
직군 변화Modeler -> Animator -> Technical Artist
개발 게임군주 / 아틀란티카 / 삼국지를 품다 / 영웅의 군단
블로그http://hwanggoon.tistory.com/
오늘 할 이야기 ?
“ 영웅의 군단”어떤 기준으로 만들어 졌는지 알아보자게임 프로그래밍에 관한 내용은 아님
PC Mobile
시장의 변화
PC Mobile
시장의 변화
PC 와 Mobile 에서 돌아가는 “삼국지를 품다”로 가능성을 보았다 .
Mobile 에서 MMORPG 를 ...
PC 와 Mobile 에서 돌아가는 “삼국지를 품다”로 가능성을 보았다 .
Mobile 에서 MMORPG 를 ...
그분께서 ..
최고의 그래픽을 보여줄 수 있는
Mobile MMORPG 을 만들어야 겠어 !!
게임의 목표
이번에는 카메라도 자유롭게넓은 필드도 있어야겠지
다양한 캐릭터도 보여줘야 해
게임의 목표
이번에는 카메라도 자유롭게
넓은 필드도 있어야겠지다양한 캐릭터도 보여줘야 해
게임의 목표
이번에는 카메라도 자유롭게넓은 필드도 있어야겠지
다양한 캐릭터도 보여줘야 해
게임의 목표
삼국지를 품다 와는 분명 다르다
새로운 기준이 필요해
삼국지를 품다 와는 분명 다르다
새로운 기준이 필요해
Mobile 기기를 선정하는 것이 최우선
Mobile 기기를 정하는 것이 최우선
지금은 최신형 모델이겠지만개발이 완료될 시점에는보편화된 모델이 될 거야
지금은 최신형 모델이겠지만개발이 완료될 시점에는보편화된 모델이 될 거야
Galaxys3 너로 결정했다 !!
Galaxys3 너로 결정했다 !!
모델이 정해졌다면
프로토타입 제작
프로토타입
프로토타입을 바탕으로
가이드 라인을 만들자
기준을 잡기 위한 삽질들…
Draw Calls 의 중요성퍼포먼스에 Draw Calls 이 미치는 영향
퍼포먼스 어떻게 배분해야 할까 ?
믿을 수 있는 건 경험에서 나오는 감뿐 ..
배경50%
캐릭터20%
이펙트15%
UI15%
Drawcall
로직40%
배경24%
캐릭터16%
이펙트8%
UI12%
CPU
각 파트별 배분
카메라가장 먼저 해야 할 설정이 FOV 를 잡는 것이다
FOV 45
카메라
FOV 30
가장 먼저 해야 할 설정이 FOV 를 잡는 것이다
캐릭터
최대 30 마리까지 출현Texture : 512 X 512 1 장Face : 1000 ~ 1500 개Bone 20 ~ 30 개
Bone
Bone : 20 ~ 30 개Animation : 9 ~ 20 개
Bone 21 개Biped 26 개제외 된 BoneNeck 1 개 / Clavicle 2 개 / Toe 2 개
재구성
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 에 문제가 있어 사용하지 않음
배경
Draw Calls
Verts
Static Batching
Dynamic Batch-ing
Light Map
실시간 Light
Light Probes
실시간 Light : 배경은 움직이는 Object 가 없어 , 실시간 Light 를 사용하지 않음Light Probes : 필드 형태의 지형이 많아 Light Probes 작업 효율에 비해 효과가 낮음
100 이하
75K
○
○
○
X
X
Terrain
Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등
그런데 Unity Terrain 을 번들로 불러오면 Terrain 인식에 문제가 생겼다( 메모리도 좀 ..)
Terrain
Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등
Mesh 방식으로 가자- 유니티 터레인의 이점을 활용 할 수 있는 방법을 모색하자
Terrain
그런데 Unity Terrain 을 번들로 불러오면 Terrain 인식에 문제가 생겼다( 메모리도 좀 ..)
Unity Terrain- 타일 텍스쳐 , 풀 & 나무 배치 , 지형 LOD 등
유니티에서 터레인 제작 -> Mesh 로 변환 -> Max 에서 Verts 최적화
Unity Terrain 최적화 Mesh
Terrain
타일링 유지 – Terrain Resolution 을 이용해 타일링 유지
4 Channel Mask
Terrain
Terrain
Mobile 에 타일링 적용
리소스 제작은순조롭게 진행 되었다
그때까지는 ..
리소스가 어느 정도 나왔으니
이제부터 본격적으로 프로파일링을 시작해
볼까 ~
Profiling
FPS 6가장 무거운 Scene
Draw Call 413
프로젝트가 진행되다 보면초기 설정한 기준과 많은 부분 달라진다
프로젝트가 진행되다 보면초기 설정한 기준과 많은 부분 달라진다
이건 자연스러운 현상이니받아드려라
이건 자연스러운 현상이니받아드려라
최적화 진행
최적화 진행( 시간관계 상 자세한 내용은 생략한다 )
Quality 를 유지 하면서최적화 하기엔 한계가 있었다
Quality 를 유지 하면서최적화 하기엔 한계가 있었다
대안은
Mobile Quality Manager
Camera Culling Mask Draw Calls 을 줄이기 위해 Object 의 크기 별 Layer 설정 - SMALL_OBJECT - MEDIUM_OBJECT - LARGE_OBJECT
Quality Setting
Quality 는 3 단계
Post Effects - Bloom
Shader LOD 사용 - Water, Characters
Quality HIGH
Draw Calls : 124Verts : 97.8kUsed Textures : 34 – 5.2MB
Draw Calls : 59Verts : 53.7kUsed Textures : 31 – 4.9MB
Quality MEDIUM
Draw Calls : 109Verts : 68.8kUsed Textures : 30 – 3.9MB
Draw Calls : 43Verts : 26.5kUsed Textures : 29 – 3.6MB
Quality LOW
Draw Calls : 94Verts : 48.3kUsed Textures : 28 – 2.8MB
Draw Calls : 41Verts : 20.6kUsed Textures : 28 – 1.9MB
Post Effects
Mobile BloomQuality HIGH
여기서 한가지 더
여기서 한가지 더
Mobile Game 을 개발한다면고려해야 하는 것이 한가지 더 있다
Mobile Game 을 개발한다면고려해야 하는 것이 한가지 더 있다
BATTERY
BATTERY
Battery 소모 속도가 빠르다
Battery 소모 속도가 빠르다
Quality 를 LOW 로 해도Battery 소모 속도에 큰 변화는 없다 ..
Game 외적인 요소는 없을까 ?
Quality 를 LOW 로 해도Battery 소모 속도에 큰 변화는 없다 ..
Game 외적인 요소는 없을까 ?
바로 너다
Display 밝기
절전모드
절전 0 단- 절전기능 없음
절전 1 단- FPS 제한 최대 20- Display 밝기 최대 60 (60 보다 낮은 밝기로 플레이하는 유저는 무시 )
절전 2 단- FPS 제한 최대 15- Display 밝기 최대 30 (30 보다 낮은 밝기로 플레이하는 유저는 무시 )
30 보다 내리면 너무 어두워 사용자가 수동으로 올리는 행동을 할 요지가 있음
안드로이드는 CPU Clock 을 조절 할 수 있어이를 내리면 Battery 소모 속도에서 이득을 볼 수 있지 않을까 ?하지만 다른 여러 문제가 발생 할 요지가 커 사용하지 않았음
자동화작업 공정의 문제 인식
Animation 1 개를 만드는 과정
자동화
5Animation 5 개를 만든다면 ?
작업 공정의 문제 인식
Animation 5 개를 만들기 위해
15 개의 File 을 관리해야 한다
자동화
5Animation 5 개를 만든다면 ?
작업 공정의 문제 인식
Animation 5 개를 만들기 위해
15 개의 File 을 관리해야 한다
관리 포인트의 증가
자동화
5Animation 5 개를 만든다면 ?
동작 별 MAX File 을 가질 때 불편한 점
- Node 가 변경되면 대응하기 힘들다 - Animation Pose 복사 등을 손쉽게 할 수 없다 - Export 를 여러 번 해야 한다
작업 공정의 문제 인식
자동화어디까지 줄일 수 있을까
줄일 수 없다줄일 수 있다
Export
자동화MAX
Max File 하나에 모든 동작을 잡는다
Max 안에서 동작 별 이동과 설정을 할 수 있는 Max Script 제공
동작 정보를 FBX 안에 넣어서 Export 해준다(Export Option 설정도 통일 )
Custom Attributes - Animation Name - Frame Range - Loop
Im-port
자동화Unity
FBX 안에 들어있는 정보- Animation Name- Frame Range- Loop
Import 가 될 때 Unity 에 FBX 안에 있는 Properties 값을 알아 낼 수 있다(OnPostprocessGameObjectWith-
UserProperties)
이 동작 정보대로 An-imation 을 분할하면 된다
자동화
Import 와 동시에 Animation 정보를 바로 설정할 수 없다그래서 GUID 값을 이용해 데이터를 따로 저장해두자다시 한번 Import 이벤트가 발생하면 GUID 값을 기준으로 Animation 정보를설정하면 된다
GUID : Unity 가 어셋들을 관리하기 위해 부여하는 고유번호
Tip