Asia bootcamp devclan

2,414 views

Published on

료.

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,414
On SlideShare
0
From Embeds
0
Number of Embeds
404
Actions
Shares
0
Downloads
15
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Asia bootcamp devclan

  1. 1. PROJECT CODEX커스터마이징 쉐이더와 에디터 제작과정.
  2. 2. 발표자이정표( leegoonz )코덱스 프로젝트 관리자.(Project administrator)방송용 애니메이션 슈퍼바이저로 근무 하던 중 2001년 삼성종합기술원과 연을 맺어 모바일 기반(ARM 2) 멀티플레폼 엔진 개발에 참여.이후 온라인 게임 개발로 전향 하여 케주얼 스포츠 게임과 엠엠오 온라인 게임등의 개발에 참여하였다.도전 성향이 강하여 두번의 창업으로 6년의 시간을 보내고 이후 프로필 관리에 실패 한 전형적케이스의 개발자.지금은 데브클렌에서 차세대 모바일 디바이스(슈퍼칩) 콘텐트 개발 관리자이다.김형일코덱스 프로젝트 프로그래밍 파트엔진프로그램분야쪽에서 2년간 일하다가,데브클랜으로 이직후 유니티에 열공하면서 코덱스 프로젝트의리드 프로그래머이자, 프로그램팀 파트장을 맡고 있다. 08-04- Pag Bootcamp Asia 2012 2 2012 e
  3. 3. CONTENTS• 코덱스 프롤로그 • UI o 슈퍼칩과 모바일 디바이스. o UI Toolset o 인공생명과 게임! 새로운 도전. o Shader for Cool Time o 텍스처 커스터마이징 • 모바이 에서의 데이터 파 싱 o 바이너리 파일 로드• 게임콘텐트 개발을 위한 인하우스 툴 o CSV to Text o Asset Manager • Scene Manager • ANIMATION • Camera Manager o Interpolation • Effect Manager o PATH • Character Manager • Shader 08-04- Pag Bootcamp Asia 2012 3 2012 e
  4. 4. Project Codex Prologue… 슈퍼칩과 모바일 디바이스. 08-04- Pag Bootcamp Asia 2012 4 2012 e
  5. 5. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. 08-04- Pag Bootcamp Asia 2012 5 2012 e
  6. 6. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. Nvidia Wayne.  24 ++ CUDA GPU Support OPENGL 4.X Support Direct X 11 08-04- Pag Bootcamp Asia 2012 6 2012 e
  7. 7. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. 고성능 안드로이드 디바이스 등장. 모바일 패드를 대체 할 ARM 기반의 Windows 8 스마트 타블렛 등장. 08-04- Pag Bootcamp Asia 2012 7 2012 e
  8. 8. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. 08-04- Pag Bootcamp Asia 2012 8 2012 e
  9. 9. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. 08-04- Pag Bootcamp Asia 2012 9 2012 e
  10. 10. Project Codex Prologue… o 슈퍼칩과 모바일 디바이스. • Dynamic casting Shadow. • Self Shadow. • 2048 텍스처 ++ • Massively vertex model. • More Fast Thread Loading. • More Post Rendering FX. • Deferred Rendering ? May be… 08-04- Pag Bootcamp Asia 2012 10 2012 e
  11. 11. Project Codex Prologue… 테크데모 1분 40초. 08-04- Pag Bootcamp Asia 2012 11 2012 e
  12. 12. Project Codex Prologue… 인공지능과 게임! 새로운 도전 08-04- Pag Bootcamp Asia 2012 12 2012 e
  13. 13. Project Codex Prologue… o 인공지능과 게임 새로운 도전. • ETRI 연구소 기업 쏘그웨어와 공동개발. • 신경망 학습 알고리즘. • 유전자 알고리즘. • PC 플레이어의 인풋(상태,능력)에 의한 몬스터의 학습 결과 도출. • 지속적인 콘텐트 생산이 목표. 08-04- Pag Bootcamp Asia 2012 13 2012 e
  14. 14. Project Codex Prologue… o 인공지능과 게임 새로운 도전. 08-04- Pag Bootcamp Asia 2012 14 2012 e
  15. 15. Project Codex Prologue… 텍스처 커스터마이징 테크닉. 08-04- Pag Bootcamp Asia 2012 15 2012 e
  16. 16. Project Codex Prologue… o Why…? • 테그라 3 이상 급 에서는 Bake 텍스처 가 대부분? 필요 없다. • 3세대 아이폰.4세대 아이폰 등에서는 필수. 08-04- Pag Bootcamp Asia 2012 16 2012 e
  17. 17. Project Codex Prologue… o Scene 의 자산 설계…? • 한 씬 안에서 1만 2천 Polygon (Skinned Mesh) : 3세대~4세대 아이폰. • 한 씬 안에서 3만 2천 Polygon (Skinned Mesh) : 아이페드 2 ++. 아수스 프라임 • 6만 Polygons 내외의 Static Mesh. 08-04- Pag Bootcamp Asia 2012 17 2012 e
  18. 18. Project Codex Prologue… o Scene 의 자산 설계…? • Unity 3.5 에서는 좀 더 유연한 씬 내 자 산 설계가 가능 할 것이다.(Mesh LOD) • Unity 4.0 에서는 더욱 유연한 씬 내 자 산 설계 기대. (Bone LOD) 08-04- Pag Bootcamp Asia 2012 18 2012 e
  19. 19. Project Codex Prologue… o 기본적인 옵티마이징 테크닉…? • STRIPPED MESH. • BAKE TEXTURE. • LIGHTMAP USED BEAST IN UNITY3D. 08-04- Pag Bootcamp Asia 2012 19 2012 e
  20. 20. Project Codex Prologue… Bake Texture. 08-04- Pag Bootcamp Asia 2012 20 2012 e
  21. 21. Project Codex Prologue… o 3DSMAX LIGHT SETUP FOR BAKE TEXTURE. • Approach Idea. oTop down light oHalf value Ambient shading • Used MENTALRAY™ Software Rendering. o2 GI Lights • Front • Back 08-04- Pag Bootcamp Asia 2012 21 2012 e
  22. 22. Project Codex Prologue… o 3DSMAX LIGHT SETUP FOR BAKE TEXTURE. Front Light Back Light GI Light Bounce GI Light Bounce 08-04- Pag Bootcamp Asia 2012 22 2012 e
  23. 23. Project Codex Prologue… o BAKE TEXTURE • BAKE PASS oBaked Complete Diffuse Pass oAO Pass oShadow Pass oSpecular Pass + HI Pass(More SP) 08-04- Pag Bootcamp Asia 2012 23 2012 e
  24. 24. Project Codex Prologue… o 3DSMAX LIGHT SETUP FOR BAKE TEXTURE. 08-04- Pag Bootcamp Asia 2012 24 2012 e
  25. 25. Project Codex Prologue… o PASS CONTROL • CL PASS : Base color (Diffuse Texture?) • SP PASS : Dark Density Control. • HI PASS : More Specular Control. • SD PASS : Shadow Density Control. • AO PASS : Ambient Density Control. • DOWN PASS : Down Light Control. 08-04- Pag Bootcamp Asia 2012 25 2012 e
  26. 26. Project Codex Prologue… o COMPOSITE PASS TEXTURE SD PASS AO PASS HI PASS SP PASS CL PASS Down PASS 08-04- Pag Bootcamp Asia 2012 26 2012 e
  27. 27. Project Codex Prologue… o COMPOSITE PASS Layer SP PASS CL PASS 08-04- Pag Bootcamp Asia 2012 27 2012 e
  28. 28. Project Codex Prologue… PAD PHONE SP PASS CL PASS 08-04- Pag Bootcamp Asia 2012 28 2012 e
  29. 29. Project Codex Prologue… PAD PHONE SP PASS CL PASS Control Texture used by Pass 08-04- Pag Bootcamp Asia 2012 29 2012 e
  30. 30. Project Codex Prologue… o 6 가지 이상의 패스 텍스쳐 o 아티스트가 모바일 쉐이더에 대한 이해 력이 좋아야 한다. o 적절한 협의 점을 찾는 것이 관건. o 트윅 아이디어에 대한 여러가지 생각을 해 볼 필요가 있다. SP PASS CL PASS 08-04- Pag Bootcamp Asia 2012 30 2012 e
  31. 31. o Standard Mobile Quality. (Unity3D Shading)o 아직 개선 중입니다…o 쉐이더 개선 사항. • 페이크 셀프 쉐도우 o 8방향 다운 라이트 기준 o 8장의 셀프 쉐도우 텍스처를 미리 생성 하고 라이트 방향, 컬러,밀도에 따라 컨트롤링 + 디테일 텍스쳐 o 텍스처간 중간 보간 처리 PASS SP CL PASS 쉐이더 구현. 08-04- Pag Bootcamp Asia 2012 31 2012 e
  32. 32. 유니티 엔진 게임개발 팁 & 인하우스 툴 소개 Manager Class GUI File Animation Path Shader 08-04- Pag Bootcamp Asia 2012 32 2012 e
  33. 33. Manager Class• 핵심 Asset, GameObject, Component 들을 좀더 쉽게 관 리하기 위해 싱글톤 Manager Class를 만듬• Scene Manager• Cam Manager• Effect Manager• Character Manager• UI Manager• Audio Manager 08-04- Pag Bootcamp Asia 2012 33 2012 e
  34. 34. Scene Manager 동기• Unity Scene의 Unload기능이 있으면 좀더 씬 활용이 용이하다고 판단• Application.LoadLevelAdditive(Scene1)• Application.LoadLevelAdditive(Scene2)• Application.LoadLevelAdditive(Scene3) Scene2만 삭제 하고 싶다 ㅜ.ㅜ• Application.LoadLevel는 모두 삭제된다. Pag e
  35. 35. Scene Manager 씬 삭제 원리• RootObject 를 관리하는 Scene Manager제작 ------ >> Del버튼 ---- >> 아래와 동일한 기능이다 Destory( Scene2_Object_1 ) Destory( Scene2_Object_2 ) Destory( Scene2_Object_3 ) Destory( Scene2_Object_4 ) Destory( Scene2_Object_5 ) 위의 GameObject는 RootObject들 이다. 따라서, RootObject만 자료구조로 관리하면 Scene2를 지울 수 있다. 08-04- Pag Bootcamp Asia 2012 35 2012 e
  36. 36. Scene Manager 로직• Dictionary<string, List<Transform>> _sceneTable;• 위 테이블의 Key는 씬이름이고, Value는 RootObject List임• 씬로드 후 새롭게 로드된 RootObject인지 어떻게 알 것인가??• 새로운 씬을 로드하면, 모든 GameObject의 transform.root를 기 존에 저장되어 있는 Table의 Value에 들어 있는 값인지 확인. 새롭게 로딩된 개체라고 판단되면 새로운 씬에 Add시킨다. 08-04- Pag Bootcamp Asia 2012 36 2012 e
  37. 37. GUI . 소개• 기존의 UNITY OnGUI() 함수를 통한 UI그리기는 속도가 너무 느리다• Orthographic project 카메라를 이용한 UI그리기 방법은 빠르고 쉽다.• Ex> 이런 종류의 GUI로는 EZGUI, NGUI가 있다.• 허나, 좀 더 커스텀 마이징을 쉽게 하기 위해 자체 GUI개발 08-04- Pag Bootcamp Asia 2012 37 2012 e
  38. 38. GUI . 상속관계 UIRoot UIFontUIBase UIPanel UIRadioPanel UITexture UIBlendTex UIBlendAdd UIProgress UIClock UITexSplit UIButton UICheck UISprite 08-04- Pag Bootcamp Asia 2012 38 2012 e
  39. 39. GUI . CLOCK UI• 1. 스킬버튼의 쿨타임• 2. 원형 - 원형 진행바 - 쿨타임 08-04- Pag Bootcamp Asia 2012 39 2012 e
  40. 40. GUI . CLOCK UI 구현• struct FSIn• {• float4 pos : SV_POSITION;• fixed2 uv : TEXCOORD0; Float2 pixel : TEXCOORD1; // 버텍스 위치로부터 보간된 값 fixed4 percent : COLOR0;• };• half4 Frag( FSIn fIn ) : COLOR• {• float radius = atan2( fIn.pixel.x, fIn.pixel.y ); ~~ fixed4 color; Last tick Start tick• ~~ 알파값 조절• ~~ 1 per 0 per• return color;• } 08-04- Pag Bootcamp Asia 2012 40 2012 e
  41. 41. GUI. 스킬버튼 만들기 오른쪽 텍스쳐를 사용• 좌측 텍스쳐의 UV를 이용 하여 Texture에서 사용할 영역을 지정• x축 2등분 y축 5등분 08-04- Pag Bootcamp Asia 2012 41 2012 e
  42. 42. Unity에서의 Data File활용하기 1• 유니티는 기본적으로 Serialize기능을 이용하여 public변수 값들을 저장 할 수 있다.• 그리고 PlayerPrefs 을 통해서도 데이터를 저장 할 수 있다.• 하지만, 기존 게임프로그래머들에게는 파일( xml, cvs, txt, bytes ) 파싱이 더 편하다 08-04- Pag Bootcamp Asia 2012 42 2012 e
  43. 43. Unity에서의 Data File활용하기 2• 1. 유니티는 씬에 연결된 모든 Asset들은 자동적으로 빌드될때 올라간다. 이를 이용해, 스크립트에 public TextAsset변수 선언하고, Data File을 연결한다.• 2. Reousrces 폴더내의 데이터들은 빌드시 모두 올라간 다. 따라서 Resouces 폴더내에 DataFile을 넣 고 , Resources.Load함수로 DataFile을 로드한다.• 데이터파일 같은 경우는 2번째 방법이, 익숙하고 더 편하 다. 08-04- Pag Bootcamp Asia 2012 43 2012 e
  44. 44. 모바일 빌드시 바이너리 파일 사용법• 모바일폰에서의 FileStream을 통해 파일을 읽는것은 안전하지가 않다.• 따라서 모바일은 TextAsset의 bytes변수를 이용하여 binary파일을 읽는다. ( 단 파일의 확장자가 .bytes 이여한다 )• TextAsset ta = (TextAsset)( Resources.Load( 경로 ) ); MemoryStream ms = new MemoryStream( ta.bytes ); BinaryReader br = new BinaryReader( ms ); br.Read ~ ~ ~ 08-04- Pag Bootcamp Asia 2012 44 2012 e
  45. 45. Animation Event저장• Animation Event를 저장하는 것이 좋은가?? 캐릭터에 Animation에 Event를 많이 이용하는 게임은 하는 것이 좋다~• 1. 맥스에서 애니메이션을 약간의 보정작업을 할 경우, 새롭게 애니메이 션 파일을 만들어야 하므로, 내부 Event값은 모두 사라지게 된다. AnimationEvent값을 저장해 놓는다면 , 원래 값을 복구 시킬 수 있다.• 2. 모바일에서는 Editor전용 함수인 AnimationUtility.GetAnimationEvents()를 사용하지 못하므로 Animation Event알려면 미리 저장 시켜놔야 한다.• animationEvent를 미리 알수 있으면, 동작을 예측 할 수 있으므로, AI 분야에 응용 할 수 있을 것이다.ps>편집,확인이 용이하게, 바이너리보다 text파일저장을 사용했다. 08-04- Pag Bootcamp Asia 2012 45 2012 e
  46. 46. CVS파일 이용하기• TextAsset가 로딩 할 수 있는 확장자 포맷은 다음과 같다. .txt .html .htm .xml .bytes ( cvs파일포맷은 존재 하지 않는다 )• Application.isEditor == true 일때 .cvs파일을 FileStream으로 로드• Application.isEditor == false경우 .txt를 TextAsset으로 로드• 최종 폰에 빌드전에 .cvs파일을 .txt파일로 변환하는 작업이 필요하다 08-04- Pag Bootcamp Asia 2012 46 2012 e
  47. 47. 보간 애니메이션• 보간 애니메이션의 대표 무료 라이브러리인 Itween• Itween사용보다 코딩이 많이 필요 없는 보간 애니메이션 을 구현하면 프로그래머의 작업은 줄어들 것이다.• 때문에 코딩 없이 쉽게 사용 할 수 있는 보간 애니메이션 GameAni구현.• GameAni는 UI의 Blend효과, 카메라Path, 카메라 Wave , 간단한 애니메이션 효과 등 다양하게 응용할 수 있다. 08-04- Pag Bootcamp Asia 2012 47 2012 e
  48. 48. Path를 이용한 컷씬• 비균일 스플라인을 이용• RNS( rounded nonuniform spline )• SNS( smooth nonuniform spline )• TNS( timed nonuniform spline )• 원할 경우 스플라인의 처음과 끝 노드를 연결하여 Loop관계로 만들 수 있습니다.• Game Programming gems 4권 2.4 비균일 스플라인 참고 08-04- Pag Bootcamp Asia 2012 48 2012 e
  49. 49. !HIRING! Senior programmerjplee@devclan.org 08-04- Pag Bootcamp Asia 2012 49 2012 e
  50. 50. 감사합니다. 08-04- Pag Bootcamp Asia 2012 50 2012 e

×