2. 황재철
Ndoors TS팀
Tachnical Artist
9년차 개발자
2012 KGC 강연
직군 변화
Modeler -> Animator -> Technical Artist
개발 게임
군주 / 아틀란티카 / 삼국지를 품다 / 영웅의 군단
블로그
http://hwanggoon.tistory.com/
3. 오늘 할 이야기?
“영웅의 군단”어떤 기준으로 만들어 졌는지 알아보자
게임 프로그래밍에 관한 내용은 아님
27. Bone
Bone : 20 ~ 30 개
Animation : 9 ~ 20개
Bone 21개Biped 26개
제외 된 Bone
Neck 1개 / Clavicle 2개 / Toe 2개
재구성
28. 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에 문제가 있어 사용하지 않음
29. 배경
Draw Calls
Verts
Static Batching
Dynamic Batching
Light Map
실시간 Light
Light Probes
실시간 Light : 배경은 움직이는 Object가 없어, 실시간 Light를 사용하지 않음
Light Probes : 필드 형태의 지형이 많아 Light Probes 작업 효율에 비해 효과가 낮음
100 이하
75K
○
○
○
X
X
31. 그런데 Unity Terrain을 번들로 불러오면 Terrain 인식에 문제가 생겼다
(메모리도 좀..)
Terrain
Unity Terrain
- 타일 텍스쳐, 풀 & 나무 배치, 지형 LOD 등
32. Mesh방식으로 가자
- 유니티 터레인의 이점을 활용 할 수 있는 방법을 모색하자
Terrain
그런데 Unity Terrain을 번들로 불러오면 Terrain 인식에 문제가 생겼다
(메모리도 좀..)
Unity Terrain
- 타일 텍스쳐, 풀 & 나무 배치, 지형 LOD 등
33. 유니티에서 터레인 제작 -> Mesh로 변환 -> Max에서 Verts 최적화
Unity Terrain 최적화 Mesh
Terrain
34. 타일링 유지 – Terrain Resolution을 이용해 타일링 유지
4 Channel Mask
Terrain
46. Camera Culling Mask
Draw Calls을 줄이기 위해
Object의 크기 별 Layer 설정
- SMALL_OBJECT
- MEDIUM_OBJECT
- LARGE_OBJECT
Quality Setting
Quality는 3단계
Post Effects
- Bloom
Shader LOD 사용
- Water, Characters
47. Quality HIGH
Draw Calls : 124
Verts : 97.8k
Used Textures : 34 – 5.2MB
Draw Calls : 59
Verts : 53.7k
Used Textures : 31 – 4.9MB
48. Quality MEDIUM
Draw Calls : 109
Verts : 68.8k
Used Textures : 30 – 3.9MB
Draw Calls : 43
Verts : 26.5k
Used Textures : 29 – 3.6MB
58. 절전모드
절전 0단
- 절전기능 없음
절전 1단
- FPS 제한 최대 20
- Display 밝기 최대 60 (60보다 낮은 밝기로 플레이하는 유저는 무시)
절전 2단
- FPS 제한 최대 15
- Display 밝기 최대 30 (30보다 낮은 밝기로 플레이하는 유저는 무시)
30보다 내리면 너무 어두워 사용자가 수동으로 올리는 행동을 할 요지가 있음
안드로이드는 CPU Clock을 조절 할 수 있어
이를 내리면 Battery 소모 속도에서 이득을 볼 수 있지 않을까?
하지만 다른 여러 문제가 발생 할 요지가 커 사용하지 않았음
64. Export
자동화
MAX
Max File 하나에 모든
동작을 잡는다
Max 안에서 동작 별 이
동과 설정을 할 수 있는
Max Script 제공
동작 정보를 FBX 안에
넣어서 Export 해준다
(Export Option 설정도
통일)
Custom Attributes
- Animation Name
- Frame Range
- Loop
65. Import
자동화
Unity
FBX 안에 들어있는 정
보
- Animation Name
- Frame Range
- Loop
Import 가 될 때 Unity에
FBX 안에 있는
Properties 값을 알아
낼 수 있다
(OnPostprocessGameObjectWith
UserProperties)
이 동작 정보대로
Animation을 분할하면
된다
66. 자동화
Import 와 동시에 Animation 정보를 바로 설정할 수 없다
그래서 GUID 값을 이용해 데이터를 따로 저장해두자
다시 한번 Import 이벤트가 발생하면 GUID값을 기준으로 Animation 정보를
설정하면 된다
GUID : Unity가 어셋들을 관리하기 위해 부여하는 고유번호
Tip