SlideShare a Scribd company logo
1 of 58
Unreal4를 사용한 모바일 프로젝트 제작
Inven Game Conference
들어가기 전
발표자 소개
김영희
현 NATgames TA
- 모바일 RPG HIT Animation Part
- 모바일 RPG HIT Technical Artist
- TV 애니메이션 뽀롱뽀롱 뽀로로 스리즈 리깅,R&D 담당
- TV 애니메이션 서커스쇼 리깅,R&D 담당
- TV 애니메이션 꼬마버스 타요 3기 리깅,R&D 담당
INDEX
1
Chapter
PC플랫폼 VS 모바일 플랫폼
2
Chapter
Unreal4의 모바일 제작
3
Chapter
최적화 / 패키지 용량 이슈
4
Chapter
HIT에서는…
5
Chapter
기타 Unreal4 프로젝트 제작 팁
PC플랫폼 VS 모바일 플랫폼
Inven Game Conference
1
PC플랫폼 VS 모바일 플랫폼
PC Platform
PC Platform
• 화려한 Post processing
• 품질 좋은 Texture 압축(DXT1 / DTX5)
• GPU 제조사별 제약 없음
• DX11 이후부터는 Pipeline 구조 변화로 Tessellation등 을 쉽게 구현
• Throttling / Battery 무관
1
PC플랫폼 VS 모바일 플랫폼
Mobile Platform
Mobile Platform
•ETC1 , ETC2 , ASTC , ATC , PVRTC … 지원하는 Texture압축이 천차만별
• Post processing 의 기능 제약 있음
• GPU 제조사별 그래픽 제약이 있음
•Throttling / Battery 등의 제약이 있음
• Memory 등 하드웨어 능력의 제약이 있음
1
PC플랫폼 VS 모바일 플랫폼
모바일 플랫폼의 가능성
모바일은 개발환경이 너무 좋지 않다.
하지만…
•4.13 – Custom Post processing
•4.12 – Dynamic Planner Reflection
•4.12 – GPU Particle
•4.12 – Temporal A.A
•4.12 – Dynamic cascade Shadow
•4.12 – Depth Of Field
•4.11 – Mobile refraction
•4.9 – Dynamic Lighting
•4.9 – Mobile Decal
•4.8 – Mobile Preview
1
PC플랫폼 VS 모바일 플랫폼
모바일 플랫폼의 가능성
Unreal4의 모바일 제작
Inven Game Conference
2
Unreal4의 모바일 제작
Unreal4의 Mobile Features
Unity / Unreal과 같은 차세대 게임엔진은 모두 크로스 플랫폼을
지원함에 따라 PC Platform의 Features를 일부를 사용하는 식으로
Mobile Platform에 적용
Unreal4 Mobile에서 지원되는
Feature를 살펴보자!
2
Unreal4의 모바일 제작
Unreal4의 Mobile Features
• 이하 내용은 Unreal 4.8.3 버전 기준
• 최신버전과 기능이 다른 부분은 따로 언급
모바일에서 지원되는 기능과 안되는 기능을 확실히 구별하여 사용하자
Light / Shadow PostProcessing Material Particles System
Movable Light White Balance Scene Color GPU Sprites
Stationay Light는 1개만 ColorGrading Refraction
Light Min Roughness Film Tone Mapper Tessellation
Light Function Light Propagation Volume Subsurface Scattering
Light Shafts Ambient Cubemap Ambient Occlusion
Dynamic Shadow Auto Exposure Noise Node
Atomospheric Fog Lens Flares Particles Position Node
Ambient Occlusion Particle Speed Node
Global Illumination Particle Size Node
Motion Blur Particle Direction Node
AntiAliasing (Temporal AA만지원)
Screen Space Reflections
Mobile프로젝트에서 지원하지 않는 사항
2
Unreal4의 모바일 제작
Shader & Material
Traditional Shading Model VS Physical based Shading Model
•Shading Model을 새로 개발해서 사용할 것인가!
•기본 Unreal PBR을 사용할 것인가!
2
Unreal4의 모바일 제작
Shader & Material
• PBR은 비싼거 아닌가?
• 과연 PBR을 아티스트가 다루기 직관적 일까?
• 우리 게임에 PBR까지는 필요 없을지도…
• 완전히 다른 Shading Model로 개발하면 좋지 않을까?
흔한 초보 TA의 의미 없는 생각
코… 코드를 보자!
2
Unreal4의 모바일 제작
Shader & Material
PBR은 비싸다?
그럴 줄 알고 모바일용 Environment BRDF Model은 근사 코드로 준비해 뒀지롱-!
EngineShaders BRDF.usf
2
Unreal4의 모바일 제작
Shader & Material
PBR은 비싸다?
Directional Light 연산도 따로 준비해 놨지롱~!
EngineShaders BasePassForForwardShadingPixelShader.usf
2
Unreal4의 모바일 제작
Shader & Material
PBR은 비싸다?
Rough가 필요없어? 그럼 미리 상수화 시켜놓았지롱~!
EngineShaders BasePassForForwardShadingPixelShader.usf
그리고 또…
아무튼 랜더링레벨 별로 Shading 코드가 다르다.
ES2레벨에서의 퀄리티도 만족스러우며, Instruction도 비교적 적다.
2
Unreal4의 모바일 제작
Shader & Material
Material Editor에서 Vertex Shader 연산도 가능함에
따라 GPU자원을 더 효율적으로 사용 할 수 있음
2
Unreal4의 모바일 제작
Shader & Material
•PBR이 비싸지 않을까?
• 렌더링 레벨별로 Shading Code가 적절히 나눠져 있음.
•과연 PBR을 아티스트가 다루기 직관적 일까?
• Parameter가 적고 랜더링 레벨별로 다르지 않아서 큰 어려움이 없음
• 우리 게임에 PBR까지는 필요 없을지도…
•상황에 따라 Fully Rough / Unlit을 사용
DX11 OpenGL ES2
최적화 / 패키지 용량 이슈
Inven Game Conference
3
최적화 / 패키지 용량 이슈
Optimization
HIT 프리뷰 단계에서는…
• 탑다운 뷰 때문에 상대적으로 Overdraw가 적게 발생.
• Opacity가 들어간 Material 사용 안함.
• 고정된 뷰로 Mesh를 아낄 수 있음.
• CPU자원 > GPU자원
그럼 일단 최적의 Draw Call을 측정하는 것을 중점을 두자!
3
최적화 / 패키지 용량 이슈
Optimization
모바일 퍼포먼스 체크할 때 염두 해야 할 점
•모바일 개발에서는 실제 디바이스에서 퍼포먼스를 측정하는 것을 습관화하자.
• 용량측정은 쿠킹이 완료된 Pak파일로 분석하자.
• 따라서 레퍼런스가 될 타겟을 지정해 놓자.
•GPU 프로파일러를 활용하자!
HIT의 테스트 타겟은 갤럭시S4 (Adreno 320)!
3
최적화 / 패키지 용량 이슈
Optimization
GPU 프로파일러를 활용하자!
Snapdragon Profiler
Adreno GPU Profiler
Intel Graphics Performance Analyzers
Mali Graphics Debugger
3
최적화 / 패키지 용량 이슈
Optimization
3
최적화 / 패키지 용량 이슈
Optimization
적정 Draw Call
• 몬스터 스폰 하지 않았을 때 120±10
• 몬스터 스폰 + 전투 시 180±20
• 로비화면에서 200±20
제약사항
• Bone 최대 75개 제한
• Vertex 캐릭터당 12000개 가량 사용
• Mesh LOD는 사용하지 않음
• Particle System의 Bounding Box FIX 하여 Update 비용 절감
• 퀄리티 옵션별로 Particle System Detail Mode 사용
• 퀄리티 옵션별로 Material Quality Level 사용
• 퀄리티 옵션별로 HDR 사용
• 퀄리티 옵션별로 Shading Model 변화 (Lambert – PBR)
다음과 같은 결과가 도출
DrawCall을 낮추기 위해서는 Merge Actor 기능을 잘 활용하자. 꼬옥!
3
최적화 / 패키지 용량 이슈
Optimization
3
최적화 / 패키지 용량 이슈
용량 이슈
HIT는 상대적으로 작은 용량으로 시작했으나, 업데이트
규모가 커 상당히 데이터 크기가 커질 것으로 예상
타 게임들과 비교 - 꾸준히 오르긴 하지만 실제는 약간 완만하게 올라가고 있음
용량 이슈
3
최적화 / 패키지 용량 이슈
용량 이슈
리소스 변화 추이를 관찰한 결과
배경(레벨) 관련 리소스가 가장 많이 늘어나고 있다!
3
최적화 / 패키지 용량 이슈
용량 이슈
배경 리소스의 구성
- Static Mesh
- Material Instance
- Texture
- Level
- Light Map / Shadow Map
- Vertex Color Data
- Blocking Volume
- Reflection Capture
배경 리소스 제작 시 Light UV를 효율적으로 할당하는 것이 가장 중요하
다!!
3
최적화 / 패키지 용량 이슈
용량 이슈
• AOS에서만 ShadowMap이 ETC1으로 압축 안됨.
• 이를 압축하여 사용하면 용량이 훨씬 절감됨.
• 아래 경로에 TEXTUREGROUP_Shadowmap관련 압축
방식을 지정
EngineSourceDeveloperAndroidAndroidTargetPlatformPrivate AndroidTargetPlatform.inl
3
최적화 / 패키지 용량 이슈
용량 이슈
불필요한 리소스는 쿠킹이 안되게 설정해두자.
3
최적화 / 패키지 용량 이슈
용량 이슈
• ETC1 에서는 Alpha Channel 이 있는 Texture 사용을 자제
• Shadow Map이 압축이 안되는 현상 수정
• Material에 Switch Parameter를 사용하면 Instance의 용량 증가
• Texture Size는 512 이하 제한
• 레벨이 늘어나는 것은 어쩔 수 없음(…)
• 결국 용량이슈는 잘못된 데이터가 들어가지
않게끔 하는 것이 관건!
• 쿠킹 데이터 분석, 관련 Commandlet을 통해
잘못된 데이터를 수시로 체크!
HIT에서는…
Inven Game Conference
2
Unreal4의 모바일 제작
Shader & Material
HIT에서는…
그러나…
 하나의 Stationary Light로는 캐릭터와 배경을 동시에 풍부하게 표현하는 것이 힘듦!
 Reflection Capture의 환경이 좋지 않아 풍부한 PBR Shader의 표현이 좋지 않음!
• Lighting / Shadow
• Stationary Light 1개 배치
• Static Light 다수 배치
• Reflection Capture 1개 배치
•Dynamic Shadow는 Modulate 로 자체 구현
4
HIT에서는…
Lighting / Material
1개에 Directional Light에 2개의 기능
• Static Mesh를 비추는 Light
• Movable Mesh를 비추는 Light
엔진팀에서 뚝딱 만들어 주었다!
4
HIT에서는…
Lighting / Material
캐릭터용 Material
• Roughness Clamp 0.4 ~ 1.0
• Rim Light
• Ambient Base Color
• Ambient Occlusion
• Fog
4
HIT에서는…
Lighting / Material
Ambient Occlusion
NormalMap(worldSpace)·PixleNormal(worldSpace)
4
HIT에서는…
Lighting / Material
Ambient Occlusion
4
HIT에서는…
Lighting / Material
roughness flicker Issue
4
HIT에서는…
Lighting / Material
Phong Approx
half a2 = a * a;
float rcp_a2 = rcp(a2);
half c = 0.72134752 * rcp_a2 + 0.39674113;
return min(rcp_a2 * exp2( c * RoL - c ),50);
roughness flicker Issue
일반적인 Cos , Pow를 사용한 Phong
4
HIT에서는…
Lighting / Material
밋밋한 배경에는 Reflection Capture에 Cube Map 사용
4
HIT에서는…
Lighting / Material
Indirect Light Cache Issue
어두운 영역에서 Light Cache가 다소 어둡게 구워진다.
4
HIT에서는…
Lighting / Material
Indirect Light Cache Issue
4
HIT에서는…
Lighting / Material
Indirect Light Cache Issue
샘플링 수가 작아지니
오히려 보기 좋다!
(국소적인 Level에서만 해당됨)
4
HIT에서는…
Lighting / Material
Indirect Light Cache Issue
4
HIT에서는…
Lighting / Material
BG Material
• 배경용 Material은 대부분 Fully Rough
• 기능별로 Material을 다수 제작
• Unlit 사용
• Translucent은 자제
• 용량이슈로 인해서 Switch Parameter를 사용하기보다
Material을 나눠서 제작
(위와같이 동일한 기능의 Material들이 퀄리티별로 다수 존재)
Inven Game Conference
기타 Unreal4 프로젝트 제작 팁
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
Mali GPU에서만 발생하던 UV 정밀도 문제
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
sRGB를 Mask Map에 사용하지 말자
이전에 잘못 사용하던 Character Material
• Clamp 0.4 – 1.0
• SRGB값으로 인해 0.6의 값을 칠해도 0.4로 표현됨!
• 0.7 = 0.456
• 0.8 = 0.612
.....
• 직관적이지 않은 값으로 아티스트가 표현하기가 매우 까다롭다!
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
sRGB사용 여부는 Texture와 Material 모두 수정하자!
ES2에서는 아무리 Texture에 sRGB를 꺼놓아도 위와 같
이 Sampling되면 말짱 헛빵!
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
sRGB를 잘못 on / off 해서 Texture를 그렸다면?
Photoshop에서 Curve 조절을 통해 돌려놓을 수 있다!
Pow(2.2) 혹은 Pow(1/2.2)
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
Alpha Channel이 있을 때 PNG는 피하자
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
Alpha Channel이 있을 때 PNG는 피하자
Alpha영역에 Color정보가 없으면 흰색으
로 채워짐
PNG Targa
Alpha영역의 어떠한 정보도
무시되어 번짐
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
Alpha Channel이 있을 때 PNG는 피하자
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다.
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다.
Pow 나 Clamp를 사용하여 작은 값 줄여서 사용..
5
기타 Unreal4 프로젝트 제작 팁
기타 Unreal4 프로젝트 제작 팁
ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다.
Mali Texture Compression Tool 으로 Cooking 전에 확인 가능
(ASTC/ETC1/ETC2)
http://malideveloper.arm.com/resources/tools/mali-gpu-texture-compression-tool/
5
QA
QA
Q & A
young@natgames.co.kr
감사합니다
[ N A T G A M E S T A ]
김 영 희

More Related Content

What's hot

Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipelinechangehee lee
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마JP Jung
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다Lee Dustin
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술henjeon
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례SangYun Yi
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법지영 신
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성Gunho Shin
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기Madumpa Park
 
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원강 민우
 

What's hot (20)

Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법
 
[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성2009-2016 기본기(손맵)의 중요성
2009-2016 기본기(손맵)의 중요성
 
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
[NDC19] 모바일에서 사용가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
 
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원
[IGC2018] 에픽게임즈 신광섭 - 언리얼엔진4 포트나이트 멀티플랫폼 개발 지원
 

Viewers also liked

[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드강 민우
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용JP Jung
 
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기강 민우
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부Young-Min kang
 
물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트Young-Min kang
 
10강최적화 가속화
10강최적화 가속화10강최적화 가속화
10강최적화 가속화JP Jung
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략MinGeun Park
 
Algorithms summary korean
Algorithms summary koreanAlgorithms summary korean
Algorithms summary koreanYoung-Min kang
 

Viewers also liked (9)

[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기
[IGC 2016] 블루홀 브랜든 그린 - 모드 개발자에서 크리에이티브 디렉터로, PLAYERUNKNOWN 이야기
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부
 
물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트
 
10강최적화 가속화
10강최적화 가속화10강최적화 가속화
10강최적화 가속화
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
 
Algorithms summary korean
Algorithms summary koreanAlgorithms summary korean
Algorithms summary korean
 

Similar to [IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기

[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석SangYun Yi
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트JP Jung
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 JiUng Choi
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템강 민우
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기changehee lee
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________Kyoung Seok(경석) Ko(고)
 
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014NDOORS
 
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR강 민우
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나Bonex Gu
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요 Wuwon Yu
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
optimize
optimizeoptimize
optimizeneoact
 

Similar to [IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기 (20)

[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
 
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
 
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________
 
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
 
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR
[IGC 2016] 에픽게임스코리아 신광섭 - 언리얼 엔진4, VR과 AR
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
op
opop
op
 
optimize
optimizeoptimize
optimize
 

More from 강 민우

[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기강 민우
 
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들강 민우
 
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기강 민우
 
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마강 민우
 
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기강 민우
 
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다강 민우
 
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데강 민우
 
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가강 민우
 
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점강 민우
 
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인강 민우
 
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과 세계를 만드는 법
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과  세계를 만드는 법[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과  세계를 만드는 법
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과 세계를 만드는 법강 민우
 
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법강 민우
 
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가강 민우
 
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다강 민우
 
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성강 민우
 
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유강 민우
 
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드 우리는 왜 모든것을 재설계했나
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드  우리는 왜 모든것을 재설계했나[IGC2018] 라운드8 박성준 - 블레스 언리쉬드  우리는 왜 모든것을 재설계했나
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드 우리는 왜 모든것을 재설계했나강 민우
 
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니[IGC2018] 아이봉 정봉재 - 아직 아이 망하니
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니강 민우
 
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소강 민우
 
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트강 민우
 

More from 강 민우 (20)

[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
[IGC2018] 엔씨소프트 이경종 - 심층강화학습을 활용한 프로게이머 수준의 AI 만들기
 
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
 
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기
[IGC2018] SUB 윤민 - 나만의 사운드—제작하고 연출하기
 
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
[IGC2018] 이락디지털문화연구소 남기덕 - 게임 디자인의 시작, 테마
 
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기
[IGC2018] 왓스튜디오 방영훈 - 놀면서공부하기
 
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
 
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데
[IGC2018] TeamHoray 문지환 - 던그리드, 이랬으면 더 좋았을 텐데
 
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가
[IGC2018] 잔디소프트 윤세민 - HTML5 게임 어디까지 가능한가
 
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점
[IGC2018] 해피툭 김봉균 - 대만 게임 시장 진출시 유의해야 할 점
 
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
 
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과 세계를 만드는 법
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과  세계를 만드는 법[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과  세계를 만드는 법
[IGC2018] 산타모니카스튜디오 에이브 타라키 - 게임의 컨셉 디자인과 세계를 만드는 법
 
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법
[IGC2018] 펄어비스 강건우 - 펄어비스에서 기획자가 일하는 방법
 
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가
[IGC2018] 스튜디오EIM 정사인 - 좋은 소리는 무엇인가
 
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다
[IGC2018] 유유자적라이프 김윤정 - SunShine 베를린을 밝게 비추다
 
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성
[IGC2018] 자라나는 씨앗 김효택 - MazM 시리즈로 바라본 스토리 게임의 가능성
 
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드 우리는 왜 모든것을 재설계했나
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드  우리는 왜 모든것을 재설계했나[IGC2018] 라운드8 박성준 - 블레스 언리쉬드  우리는 왜 모든것을 재설계했나
[IGC2018] 라운드8 박성준 - 블레스 언리쉬드 우리는 왜 모든것을 재설계했나
 
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니[IGC2018] 아이봉 정봉재 - 아직 아이 망하니
[IGC2018] 아이봉 정봉재 - 아직 아이 망하니
 
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
[IGC2018] 퍼니파우 최재영 - 감성을 위한 개발요소
 
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트
[IGC2018] 유니티 함영호 - 디바이스를 통해 본 모바일 게임 마켓 인사이트
 

[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기

  • 1. Unreal4를 사용한 모바일 프로젝트 제작 Inven Game Conference
  • 2. 들어가기 전 발표자 소개 김영희 현 NATgames TA - 모바일 RPG HIT Animation Part - 모바일 RPG HIT Technical Artist - TV 애니메이션 뽀롱뽀롱 뽀로로 스리즈 리깅,R&D 담당 - TV 애니메이션 서커스쇼 리깅,R&D 담당 - TV 애니메이션 꼬마버스 타요 3기 리깅,R&D 담당
  • 3. INDEX 1 Chapter PC플랫폼 VS 모바일 플랫폼 2 Chapter Unreal4의 모바일 제작 3 Chapter 최적화 / 패키지 용량 이슈 4 Chapter HIT에서는… 5 Chapter 기타 Unreal4 프로젝트 제작 팁
  • 4. PC플랫폼 VS 모바일 플랫폼 Inven Game Conference
  • 5. 1 PC플랫폼 VS 모바일 플랫폼 PC Platform PC Platform • 화려한 Post processing • 품질 좋은 Texture 압축(DXT1 / DTX5) • GPU 제조사별 제약 없음 • DX11 이후부터는 Pipeline 구조 변화로 Tessellation등 을 쉽게 구현 • Throttling / Battery 무관
  • 6. 1 PC플랫폼 VS 모바일 플랫폼 Mobile Platform Mobile Platform •ETC1 , ETC2 , ASTC , ATC , PVRTC … 지원하는 Texture압축이 천차만별 • Post processing 의 기능 제약 있음 • GPU 제조사별 그래픽 제약이 있음 •Throttling / Battery 등의 제약이 있음 • Memory 등 하드웨어 능력의 제약이 있음
  • 7. 1 PC플랫폼 VS 모바일 플랫폼 모바일 플랫폼의 가능성 모바일은 개발환경이 너무 좋지 않다. 하지만… •4.13 – Custom Post processing •4.12 – Dynamic Planner Reflection •4.12 – GPU Particle •4.12 – Temporal A.A •4.12 – Dynamic cascade Shadow •4.12 – Depth Of Field •4.11 – Mobile refraction •4.9 – Dynamic Lighting •4.9 – Mobile Decal •4.8 – Mobile Preview
  • 8. 1 PC플랫폼 VS 모바일 플랫폼 모바일 플랫폼의 가능성
  • 10. 2 Unreal4의 모바일 제작 Unreal4의 Mobile Features Unity / Unreal과 같은 차세대 게임엔진은 모두 크로스 플랫폼을 지원함에 따라 PC Platform의 Features를 일부를 사용하는 식으로 Mobile Platform에 적용 Unreal4 Mobile에서 지원되는 Feature를 살펴보자!
  • 11. 2 Unreal4의 모바일 제작 Unreal4의 Mobile Features • 이하 내용은 Unreal 4.8.3 버전 기준 • 최신버전과 기능이 다른 부분은 따로 언급 모바일에서 지원되는 기능과 안되는 기능을 확실히 구별하여 사용하자 Light / Shadow PostProcessing Material Particles System Movable Light White Balance Scene Color GPU Sprites Stationay Light는 1개만 ColorGrading Refraction Light Min Roughness Film Tone Mapper Tessellation Light Function Light Propagation Volume Subsurface Scattering Light Shafts Ambient Cubemap Ambient Occlusion Dynamic Shadow Auto Exposure Noise Node Atomospheric Fog Lens Flares Particles Position Node Ambient Occlusion Particle Speed Node Global Illumination Particle Size Node Motion Blur Particle Direction Node AntiAliasing (Temporal AA만지원) Screen Space Reflections Mobile프로젝트에서 지원하지 않는 사항
  • 12. 2 Unreal4의 모바일 제작 Shader & Material Traditional Shading Model VS Physical based Shading Model •Shading Model을 새로 개발해서 사용할 것인가! •기본 Unreal PBR을 사용할 것인가!
  • 13. 2 Unreal4의 모바일 제작 Shader & Material • PBR은 비싼거 아닌가? • 과연 PBR을 아티스트가 다루기 직관적 일까? • 우리 게임에 PBR까지는 필요 없을지도… • 완전히 다른 Shading Model로 개발하면 좋지 않을까? 흔한 초보 TA의 의미 없는 생각 코… 코드를 보자!
  • 14. 2 Unreal4의 모바일 제작 Shader & Material PBR은 비싸다? 그럴 줄 알고 모바일용 Environment BRDF Model은 근사 코드로 준비해 뒀지롱-! EngineShaders BRDF.usf
  • 15. 2 Unreal4의 모바일 제작 Shader & Material PBR은 비싸다? Directional Light 연산도 따로 준비해 놨지롱~! EngineShaders BasePassForForwardShadingPixelShader.usf
  • 16. 2 Unreal4의 모바일 제작 Shader & Material PBR은 비싸다? Rough가 필요없어? 그럼 미리 상수화 시켜놓았지롱~! EngineShaders BasePassForForwardShadingPixelShader.usf 그리고 또… 아무튼 랜더링레벨 별로 Shading 코드가 다르다. ES2레벨에서의 퀄리티도 만족스러우며, Instruction도 비교적 적다.
  • 17. 2 Unreal4의 모바일 제작 Shader & Material Material Editor에서 Vertex Shader 연산도 가능함에 따라 GPU자원을 더 효율적으로 사용 할 수 있음
  • 18. 2 Unreal4의 모바일 제작 Shader & Material •PBR이 비싸지 않을까? • 렌더링 레벨별로 Shading Code가 적절히 나눠져 있음. •과연 PBR을 아티스트가 다루기 직관적 일까? • Parameter가 적고 랜더링 레벨별로 다르지 않아서 큰 어려움이 없음 • 우리 게임에 PBR까지는 필요 없을지도… •상황에 따라 Fully Rough / Unlit을 사용 DX11 OpenGL ES2
  • 19. 최적화 / 패키지 용량 이슈 Inven Game Conference
  • 20. 3 최적화 / 패키지 용량 이슈 Optimization HIT 프리뷰 단계에서는… • 탑다운 뷰 때문에 상대적으로 Overdraw가 적게 발생. • Opacity가 들어간 Material 사용 안함. • 고정된 뷰로 Mesh를 아낄 수 있음. • CPU자원 > GPU자원 그럼 일단 최적의 Draw Call을 측정하는 것을 중점을 두자!
  • 21. 3 최적화 / 패키지 용량 이슈 Optimization 모바일 퍼포먼스 체크할 때 염두 해야 할 점 •모바일 개발에서는 실제 디바이스에서 퍼포먼스를 측정하는 것을 습관화하자. • 용량측정은 쿠킹이 완료된 Pak파일로 분석하자. • 따라서 레퍼런스가 될 타겟을 지정해 놓자. •GPU 프로파일러를 활용하자! HIT의 테스트 타겟은 갤럭시S4 (Adreno 320)!
  • 22. 3 최적화 / 패키지 용량 이슈 Optimization GPU 프로파일러를 활용하자! Snapdragon Profiler Adreno GPU Profiler Intel Graphics Performance Analyzers Mali Graphics Debugger
  • 23. 3 최적화 / 패키지 용량 이슈 Optimization
  • 24. 3 최적화 / 패키지 용량 이슈 Optimization 적정 Draw Call • 몬스터 스폰 하지 않았을 때 120±10 • 몬스터 스폰 + 전투 시 180±20 • 로비화면에서 200±20 제약사항 • Bone 최대 75개 제한 • Vertex 캐릭터당 12000개 가량 사용 • Mesh LOD는 사용하지 않음 • Particle System의 Bounding Box FIX 하여 Update 비용 절감 • 퀄리티 옵션별로 Particle System Detail Mode 사용 • 퀄리티 옵션별로 Material Quality Level 사용 • 퀄리티 옵션별로 HDR 사용 • 퀄리티 옵션별로 Shading Model 변화 (Lambert – PBR) 다음과 같은 결과가 도출
  • 25. DrawCall을 낮추기 위해서는 Merge Actor 기능을 잘 활용하자. 꼬옥! 3 최적화 / 패키지 용량 이슈 Optimization
  • 26. 3 최적화 / 패키지 용량 이슈 용량 이슈 HIT는 상대적으로 작은 용량으로 시작했으나, 업데이트 규모가 커 상당히 데이터 크기가 커질 것으로 예상 타 게임들과 비교 - 꾸준히 오르긴 하지만 실제는 약간 완만하게 올라가고 있음 용량 이슈
  • 27. 3 최적화 / 패키지 용량 이슈 용량 이슈 리소스 변화 추이를 관찰한 결과 배경(레벨) 관련 리소스가 가장 많이 늘어나고 있다!
  • 28. 3 최적화 / 패키지 용량 이슈 용량 이슈 배경 리소스의 구성 - Static Mesh - Material Instance - Texture - Level - Light Map / Shadow Map - Vertex Color Data - Blocking Volume - Reflection Capture 배경 리소스 제작 시 Light UV를 효율적으로 할당하는 것이 가장 중요하 다!!
  • 29. 3 최적화 / 패키지 용량 이슈 용량 이슈 • AOS에서만 ShadowMap이 ETC1으로 압축 안됨. • 이를 압축하여 사용하면 용량이 훨씬 절감됨. • 아래 경로에 TEXTUREGROUP_Shadowmap관련 압축 방식을 지정 EngineSourceDeveloperAndroidAndroidTargetPlatformPrivate AndroidTargetPlatform.inl
  • 30. 3 최적화 / 패키지 용량 이슈 용량 이슈 불필요한 리소스는 쿠킹이 안되게 설정해두자.
  • 31. 3 최적화 / 패키지 용량 이슈 용량 이슈 • ETC1 에서는 Alpha Channel 이 있는 Texture 사용을 자제 • Shadow Map이 압축이 안되는 현상 수정 • Material에 Switch Parameter를 사용하면 Instance의 용량 증가 • Texture Size는 512 이하 제한 • 레벨이 늘어나는 것은 어쩔 수 없음(…) • 결국 용량이슈는 잘못된 데이터가 들어가지 않게끔 하는 것이 관건! • 쿠킹 데이터 분석, 관련 Commandlet을 통해 잘못된 데이터를 수시로 체크!
  • 33. 2 Unreal4의 모바일 제작 Shader & Material HIT에서는… 그러나…  하나의 Stationary Light로는 캐릭터와 배경을 동시에 풍부하게 표현하는 것이 힘듦!  Reflection Capture의 환경이 좋지 않아 풍부한 PBR Shader의 표현이 좋지 않음! • Lighting / Shadow • Stationary Light 1개 배치 • Static Light 다수 배치 • Reflection Capture 1개 배치 •Dynamic Shadow는 Modulate 로 자체 구현
  • 34. 4 HIT에서는… Lighting / Material 1개에 Directional Light에 2개의 기능 • Static Mesh를 비추는 Light • Movable Mesh를 비추는 Light 엔진팀에서 뚝딱 만들어 주었다!
  • 35. 4 HIT에서는… Lighting / Material 캐릭터용 Material • Roughness Clamp 0.4 ~ 1.0 • Rim Light • Ambient Base Color • Ambient Occlusion • Fog
  • 36. 4 HIT에서는… Lighting / Material Ambient Occlusion NormalMap(worldSpace)·PixleNormal(worldSpace)
  • 39. 4 HIT에서는… Lighting / Material Phong Approx half a2 = a * a; float rcp_a2 = rcp(a2); half c = 0.72134752 * rcp_a2 + 0.39674113; return min(rcp_a2 * exp2( c * RoL - c ),50); roughness flicker Issue 일반적인 Cos , Pow를 사용한 Phong
  • 40. 4 HIT에서는… Lighting / Material 밋밋한 배경에는 Reflection Capture에 Cube Map 사용
  • 41. 4 HIT에서는… Lighting / Material Indirect Light Cache Issue 어두운 영역에서 Light Cache가 다소 어둡게 구워진다.
  • 43. 4 HIT에서는… Lighting / Material Indirect Light Cache Issue 샘플링 수가 작아지니 오히려 보기 좋다! (국소적인 Level에서만 해당됨)
  • 45. 4 HIT에서는… Lighting / Material BG Material • 배경용 Material은 대부분 Fully Rough • 기능별로 Material을 다수 제작 • Unlit 사용 • Translucent은 자제 • 용량이슈로 인해서 Switch Parameter를 사용하기보다 Material을 나눠서 제작 (위와같이 동일한 기능의 Material들이 퀄리티별로 다수 존재)
  • 46. Inven Game Conference 기타 Unreal4 프로젝트 제작 팁
  • 47. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 Mali GPU에서만 발생하던 UV 정밀도 문제
  • 48. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 sRGB를 Mask Map에 사용하지 말자 이전에 잘못 사용하던 Character Material • Clamp 0.4 – 1.0 • SRGB값으로 인해 0.6의 값을 칠해도 0.4로 표현됨! • 0.7 = 0.456 • 0.8 = 0.612 ..... • 직관적이지 않은 값으로 아티스트가 표현하기가 매우 까다롭다!
  • 49. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 sRGB사용 여부는 Texture와 Material 모두 수정하자! ES2에서는 아무리 Texture에 sRGB를 꺼놓아도 위와 같 이 Sampling되면 말짱 헛빵!
  • 50. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 sRGB를 잘못 on / off 해서 Texture를 그렸다면? Photoshop에서 Curve 조절을 통해 돌려놓을 수 있다! Pow(2.2) 혹은 Pow(1/2.2)
  • 51. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 Alpha Channel이 있을 때 PNG는 피하자
  • 52. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 Alpha Channel이 있을 때 PNG는 피하자 Alpha영역에 Color정보가 없으면 흰색으 로 채워짐 PNG Targa Alpha영역의 어떠한 정보도 무시되어 번짐
  • 53. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 Alpha Channel이 있을 때 PNG는 피하자
  • 54. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다.
  • 55. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다. Pow 나 Clamp를 사용하여 작은 값 줄여서 사용..
  • 56. 5 기타 Unreal4 프로젝트 제작 팁 기타 Unreal4 프로젝트 제작 팁 ETC1의 압축은 다른 채널까지 영향을 끼치는 방식이다. Mali Texture Compression Tool 으로 Cooking 전에 확인 가능 (ASTC/ETC1/ETC2) http://malideveloper.arm.com/resources/tools/mali-gpu-texture-compression-tool/
  • 58. 감사합니다 [ N A T G A M E S T A ] 김 영 희

Editor's Notes

  1. 과도하게 퍼포먼스가 떨어지는 부분이 있을 때 위의 사항을 참고하여 리소스들을 확인해보는 것이 필수!