[1002 조진현]unity3d 소개

16,177 views

Published on

데브루키 2010.10.2일 발표자료

1 Comment
11 Likes
Statistics
Notes
No Downloads
Views
Total views
16,177
On SlideShare
0
From Embeds
0
Number of Embeds
804
Actions
Shares
0
Downloads
167
Comments
1
Likes
11
Embeds 0
No embeds

No notes for slide

[1002 조진현]unity3d 소개

  1. 1. Unity3D<br />조 진현<br />
  2. 2. Unity3D<br />Unity!!! 탄생하다!!!<br />
  3. 3. 역 사<br /> 2001년에 개발을 시작.<br /> 2004년에 목표를 설정.<br />웹상에서 구동되는 3D 툴이 초기 목표였음.<br /> 2005년에 Unity 1.0 출시.<br /> 2006년에 Unity 2.0 출시.<br />
  4. 4. Unity 2.0 특징.<br /> DirectX 9.0<br />웹 스트리밍<br />실시간 그림자<br />네트워크 엔진<br />
  5. 5. Unity 2.0 특징.<br />비디오 스트리밍<br />게임 관련 UI 컴포넌트 제공.<br />지형 엔진( Terrain Engine )<br />
  6. 6. Unity 2.0 특징.<br />Unity Asset Server<br />Unity Web site<br />
  7. 7. Unity 2.0 특징.<br />기본을 갖추다!!!<br />Rendering Engine.<br />Game Engine.<br />
  8. 8. 현재는 2.6.1<br />올 여름에 3.0 이 출시!<br />
  9. 9. Unity3D<br />Unity!!! 인기를 얻다.<br />
  10. 10.
  11. 11. 아이폰 게임의 특징.<br /> Mac 에서 제작되어져야 한다. Unity는 Mac전용이였다.<br />무거운 엔진은 필요하지 않다.<br />빠른 제작에 용이해야 한다.<br />
  12. 12. Unity3D<br />작업하기.<br />
  13. 13. 오직 하나의 툴만 존재!!!<br />이 화면에 모든 것이 다 있다!!!<br />
  14. 14.
  15. 15. 저도 처음에는 믿지 않았습니다!!!<br />EXE 실행파일<br />
  16. 16. Unity3D<br />기본 개념들.<br />
  17. 17. Component<br />난,GameObject.<br />Transform<br />MeshRenderer<br />Particle<br />Custom Component<br />
  18. 18. GameObject<br />게임에 실제로 배치되는 오브젝트들.<br />컴포넌트가 붙여진다.<br />
  19. 19. Component<br />각 상황에 맞게 코드를 추가!!!<br />게임 상에서의 동작을 정의.<br /> Mono Behavior 을 상속.<br />
  20. 20. MonoBehavior<br />
  21. 21. Component<br />이해 되셨나요?<br />Transform<br />MeshRenderer<br />Particle<br />Custom Component<br />
  22. 22. Prefabs<br />GameObject의 재사용.<br />나 이제 Prefab 된거임?<br />Component<br />Transform<br />MeshRenderer<br />Particle<br />Custom Component<br />
  23. 23. Lights<br />
  24. 24. Camera<br />
  25. 25. Particle<br />
  26. 26. Particle<br />
  27. 27. Terrain<br />
  28. 28. Terrain<br />
  29. 29. Mesh Importer<br /> .max 와 .fbx를 읽어올 수 있다.<br />Prefab 으로 게임 상에 배치해야 한다.<br />
  30. 30. Built-in shader<br />
  31. 31. Material<br />
  32. 32. Texture Importer<br /> .psd로 작업 가능.<br />빌드 시에 텍스쳐 압축은 옵션.<br />
  33. 33. 동영상 및 사운드<br />Quick Time 필요.<br />사운드는 FMOD를 사용.<br />
  34. 34. Asset Server.<br />필수적으로 구매하기 바람!!!<br />
  35. 35. Asset Server<br />꼭 구매하기 바람.( 강조 )<br />
  36. 36. 물.<br />제공되는 리소스에 유용한 것이 많음!!!<br />
  37. 37. Profiler<br />
  38. 38. Unity3D<br />FAQ<br />
  39. 39. 가격은?<br />기본적으로 무료,Unity Pro 는 구매( 나머지는 옵션 )<br />대략 $2000 ~ 3000 소요.( Asset Server , 기타 플랫폼 별도 )<br />소스 라이선스 가능.( 가격은 메일로 문의 )<br />콘솔 라이선스는 메일로 문의.<br />업그레이드 비용은 별도 지불.<br />자세한 사항은 홈페이지를 참고.<br />
  40. 40. Unity는 빠른가요?<br />빠르다……-_-b<br />더 빠르게 만들고 싶다면, 모든 작업자가 노력해야 한다.<br /> MO 정도는 무난하게 만들 수 있다.<br /> MMO 는 도전해 보라~<br />
  41. 41. C# 으로 게임을 만든다구요?<br /> C#은 스크립트일뿐.<br /> C#은 느리지 않음. ( 폴리곤을 더 줄이거나 쉐이더를 최적화하라. )<br /> C# 전문 개발자는 힘들다. C++ 개발자가 C#을 다루어야 한다.<br />C++ 개발자의 자만이 없기를…<br />
  42. 42. 언리얼 보다 좋아요?<br />언리얼 최고!!!<br />당연히 안좋다.<br />렌더링 모듈 접근은 더 유용.<br />돈 있으면, 언리얼을 구매하라.<br />
  43. 43. 겜브리오 보다 좋아요?<br />겜브리오는C++ 기반의 프로그래머 지향적인 엔진임.<br /> Unity는 언리얼에 더 가까운 엔진임.( 스크립트 기반 )<br />돈 있으면 겜브리오 사용하라. 경험자들이 풍부함.<br />엔진 이론에 대해 박식하며, 최적화 작업을 직접 하고 싶다면,겜브리오를 선택할 것.<br />
  44. 44. 그러면 왜?<br />언리얼 구매할 만큼 자금이 없는 경우.<br />겜브리오를 최적화할 시간이나 능력이 무서운 경우<br />상용 엔진을 경험하고 싶은 경우.<br />Right Now!!!<br />
  45. 45. 서버 작업은 어떻게?<br />서버는 C++로 작성 가능. 클라이언트의 마샬링 작업 필요.<br /> Unity 에서 서버 모듈 제공.( P2P )<br />
  46. 46. Unity 쉽다던데?<br />쉬운 것은 없음.<br />저렴(?)하다고 해서, 우습게 보지 말 것!.<br />공개엔진들보다는 1,000,000 배는 더 좋음.<br /> C#이 쉽지만은 않음.<br />세상에 쉬운 개발은 없다!!!<br />
  47. 47. 좋은 요리사가 많아야 훌륭한 음식이 나옴!<br />게임 하나 만드는데 걸리는 기간은?<br />팀별 역량마다 다름.<br /> 3개월 만에 프로토타입은 완성했음.<br />
  48. 48. 스케일폼 연동은 가능한가?<br />안됨!!!<br />풀 소스 구매하면, 가능할지도…<br />Unity GameGUI가 있음!!!<br />
  49. 49. UI 엔진은 사용할만 한가?<br />웬만한 것은 다됨.<br />단, 한글 IME 미지원.<br />풀 소스 구매하면, 가능할지도…<br />
  50. 50. AI 관련해서는?<br /> Unity Steer 라는 것이 있음.<br />
  51. 51. 필요한 기본 기술은?<br />매일 공부 안하면 개발자 아니잖아요!!!<br /> C# 2.0<br />영어 + 영작문 실력 <br />마샬링( C++, C# 통신 )<br />
  52. 52. 개발 환경은?<br /> Visual Studio 연동됨. <br /> Windows 7 64Bit & Windows XP 32Bit<br /> Max는 최신 버전을 사용. ( 2009 & 2010 )<br />
  53. 53. 지원하지 않는 기능은어떻게?<br />툴용 스크립트 API가 존재.<br /><ul><li> C++코딩을 해서 DLL로 만든다. 애드인 형태로 적용 가능.</li></li></ul><li>Unity3D<br />Rendering Engine 으로써의 가치.<br />
  54. 54. 렌더링 엔진인가? (기본)<br />훌륭한 맥스 지원.<br />안정적인 알파 소팅.<br />효율적인 재질 관리.( shaderd지원. )<br />오브젝트 인스턴싱 지원.<br /> 리소스 최적화및 관리지원.<br />쉐이더는 제어 가능. ( CG shader )<br />정점당 최대 4개까지의 라이팅 연산 가능.<br />효과적인 그림자 생성.<br />괜찮다~~<br />
  55. 55. 렌더링 엔진인가? (고급)<br />고급 렌더링 지원.<br />다양한 효과 지원.<br />많은 리소스 지원.<br />계속 추가 중~~<br />님하가짱이셈!!!<br />
  56. 56. Unity3D<br />최적화 하기.<br />
  57. 57.
  58. 58. Draw call<br /> CPU 에 의존적인 부분이 많음.<br />최소 500 ~<br />
  59. 59. Fill rate<br /> screen pixel * overdraw<br />픽셀 라이팅을 과도하게 사용하지 말 것!<br />해상도 변경 시 성능 저하로 체크.<br />
  60. 60. 메모리 로드 구조.<br />이것은 위험!!!<br />Resource 폴더<br />모두 메모리에 로드<br />Memory<br />
  61. 61. AssetBundle을 활용하라.<br />AssetBundle은 일종의 자체 포맷임.<br />순간순간 메모리에 로드.<br />그렇지 않으면 일괄적으로 로드.<br />용량이 약간 커지지만, 괜찮음.<br />
  62. 62. 개선된 메모리 로드 구조.<br />AssetBundle로 작업할 것!!!<br />다른 폴더들<br />다른 폴더들<br />다른 폴더들<br />Resource 폴더<br />Asset<br />Asset<br />Asset<br />Asset<br />Asset<br />Asset<br />Asset<br />Asset<br />런타임 로드<br />실행시 메모리에 로드<br />Memory<br />
  63. 63. 멀티 스레드 활용.<br /> C#으로 멀티스레드 코딩 가능.<br />멀티 스레드 관련 API 가 존재. 모두 리소스 로딩과 관련된 내용임.  AssetBundle.LoadAsync  Application.LoadLevelAsync  Application.LoadLevelAdditiveAsync<br />선택적으로 멀티 스레드 기반의 로딩을 사용할 것.<br />
  64. 64. 두개가 동시에 메모리에 존재<br />멀티스레드 기반레벨 로드 상황.<br />로딩 레벨<br />복잡한 레벨<br />Memory<br />
  65. 65. 새로운 레벨이 로드되면,이전 레벨은 모두 메모리에서 자동 제거<br />선택적으로 멀티스레드를 활용할 것!!!<br />멀티스레드 기반레벨 로드 상황.<br />새로운 레벨<br />로딩 레벨<br />복잡한 레벨<br />Memory<br />
  66. 66. 일반 클래스로 작업하라.<br />MonoBehavior는 new 로 생성되어지지 않는다. ( AddComponent() )<br />일반 클래스는 new 로 생성 가능하다.<br /> Mono 는 자동적으로 함수 호출 오버헤드가 존재한다,<br /> enable/disable 속성을 활용하라.<br />
  67. 67. 화면에 보이는 것만 처리하라.<br />
  68. 68. 쉐이더에LOD 명시할 것!<br />
  69. 69. 텍스쳐 옵션에 신경쓸 것!!!<br />
  70. 70. 각종 상황에 익숙해 져라.<br /> Update, FixedUpdate, LateUpdate …<br /> Awake, Start …<br />OnCollisionEnter, OnCollisionExit…<br />OnEnable, OnDisable…<br />OnPreCull, OnPreRender, OnPostRender…<br /> etc…<br />
  71. 71. Combine<br /> 밀접한 오브젝트끼리 결합시킬 것.<br /> 지나치게 많은 오브젝트를 결합시키지 말 것.<br />많은 draw 를 해야하는 오브젝트는 결합시키지 말 것.<br />밀접해 있는 동일한 재질을 사용하는 오브젝트들은 결합 시킬 것.<br />너무 멀리 있는 것끼리는 절대로 결합시키지 말 것.<br />
  72. 72. 라이트를 현명하게 사용할 것!<br />라이트맵을 사용할 것.<br /> Point Lights 를 과하게 사용하지 말 것.<br />그림자 또한 현명하게 생성할 것.<br /> cast shadows, receive shadows 옵션.<br />
  73. 73. 상식?<br />폴리곤 많으면 당연히 느림.<br />오브젝트가 라이팅에 약간의 영향권에만 있어도 전체가 draw 된다.<br />카메라에 약간만 걸쳐있어도 전체가 draw 된다.<br />
  74. 74. 내장 쉐이더를 수정하지 말라.<br />성능 상 문제가 있는 부분이 존재.<br />그렇다고 비슷한 기능의 쉐이더를추가하지 말 것!<br />조금 더 큰 그림의 쉐이더를 추가하라!<br />
  75. 75. Unity3D<br />좋았던 점.<br />
  76. 76. 아티스트들이 좋아하는 부분.<br />psd포맷 지원.<br />안정적인 익스포트 작업( .fbx )<br />버그가 거의 없음.<br />
  77. 77. 프로그래머들이 좋아하는 부분.<br />별도의 툴 제작 압박이 없음.<br /> “나는 이 정도 수준으로 만들지 못한다”<br /> 120% 만족.<br />
  78. 78. 훌륭한 지원.<br />
  79. 79. Unity3D<br />불편했던 점.<br />
  80. 80. 툴이 점점…<br />리소스량에 비례!!!<br />
  81. 81. 언리얼 쓰시던가요~<br />언리얼에서는 되던데…<br />
  82. 82. 소스 레벨의 디버깅 불가능.<br />로그만으로도 충분했음.<br />3.0 에서 가능.<br />
  83. 83. Unity3D<br />3.0 을 기다리며…<br />
  84. 84. 언리얼을 위협할 수 있을까?<br />Beast Lightmapping<br />Umbra<br />Source-level Debugging<br />
  85. 85. 개 봉 박 두 !!!!<br />2010 여름…<br />
  86. 86. 여기서 끝이 아닙니다.^^<br />
  87. 87. Unity3D<br />3.0 을 만난다!!!<br />
  88. 88. Lightmapping( Beast )<br />
  89. 89. Occlusion Culling( Umbra )<br />SceneTree내장<br />
  90. 90. Source Level Debugging<br />
  91. 91. IME 지원<br />
  92. 92. Tree 지원 강화<br />
  93. 93. Sound 편집 강화<br />
  94. 94. Shader must die!!!<br />Surface Shader( color, normal, specular… )<br />VS<br />Lighting model( Lambertian, BlinnPhong )<br />PS<br />Light Shader( Attenuation, cookies, shadows )<br />
  95. 95. structSurfaceOutput<br />{ <br /> half3 Albedo; <br /> half3 Normal; <br /> half3 Emission; <br /> half Specular; <br /> half Gloss; <br /> half Alpha; <br />}; <br />
  96. 96. 코드를 생성해준다!!!<br />
  97. 97. Rendering Paths<br /> Deferred Lighting<br /> Forward Rendering<br /> Vertex Lit<br />
  98. 98. Unity3.0 의 문제점<br /> DX9 기반.<br /> 버그들 존재.<br />
  99. 99. Unity3.0 는 주류가 될 수 있는가?<br />

×