스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
2. 알콜코더 박민근(@agebreak)
NHN NEXT 게임 전공 교수
쿠키 소프트 – 모바일 격투게임 프로젝트 (Unity)
네오위즈 게임즈 - 야구의 신 개발
NTL-inc - 드래곤볼 온라인 개발
엔씨소프트 – PlayNC 빌링 서버 개발
‘신입 게임 개발자의 서울 상경기’
(http://agebreak.blog.me)
‘초중급 게임 개발자 스터디 (데브루키)’
(cafe.naver.com/devrookie)
게임 개발자 랩소디 (팟캐스트)
(http://www.podbbang.com/ch/3921)
게임 클라이언트 프로그래머
30대… 그리고 오타쿠 프로그래머...
언젠가는 우즈벡에.. 일류젼 우즈벡 지사를 설립할 예정
3.
4. 오늘 이야기…
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. UNITY 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우)
5. 유니티와 PLAYMAKER를 이용한 쉽고 빠른 게임 개발
5. 유니티 처음 사용해보면..
• 간편한 에디터
• 드래그 몇 번 하고, 스크립트 작업 잠깐으로 뚝딱뚝딱!! 오오옷~!!
• 간단하고 손쉬운 개발
• 필요한건 다 되어 있다. 어려운 프로그래밍 지식이 필요 없다.
• 에셋스토어 짱짱~!! 필요한거 다있음!!
10. Unity
유니티?
- 덴마크 출신의 3명의 개발자들이 개발한 게임엔진
- 사용자 친화적 인터페이스와 멀티플랫폼 지원의 용이함으로 전 세계적
으로 인기를 얻게됨
- 최근 PSP Vita, PS4용 유니티를 무료로 하는 등
매우 공격적인 활보를 보임
(2014.7. 현재까지는 US, Mexico, Central America, South America, Canada 만 지원)
11. Unity
유니티 사용자가 많은 이유
- 툴 형태로 제공되는 사용자 친화적 인터페이스
- 오픈 커뮤니티와 어셋스토어
- 비교적 저렴했던 가격(무료로도 사용 가능)
12. Unity – 개발된 프로젝트
● 템플런
- 이만지 스튜디오(Imangi Studios)에서 개발한 무한 달리기 게임
- 전 세계 5억다운로드를 이룬 게임
13. Unity – 개발된 프로젝트
● 쉐도우 건(Shadow Gun)
- 매드핑거 개발
- 유니티의 기술력을 내세우기 위해
제작된 게임
14. Unity – 개발된 프로젝트
● 언데드 슬레이어(Undead Slayer)
- 하이디어 김동규 대표 1인 개발.
- 유니티를 통한 1인 개발의 대표적인 사례
16. Unity – 용어정리
- 씬(Scene)
▷ 게임의 장면 또는 상태를 유니티에서 관리하는 단위
▷ 씬 관리를 통해서 게임의 레벨 및 상태를 구분
- 어셋(Asset)
▷ 엔진에서 사용되는 모든 자원(Resources)
▷ Resources : 3d model, audio, texture etc..
17. Unity – 용어정리
- 게임오브젝트(GameObject)
▷ 어셋의 기능을 처리하기 위한 오브젝트
▷ 모든 게임오브젝트는 게임 공간상에 존재하기 위해
Transform 컴퍼넌트를 지님
- 스크립트(Script)와 컴퍼넌트(Component)
▷ 구현된 각각의 기능들을 컴퍼넌트라 호칭
▷ 사용자들은 컴퍼넌트를 구현하고 게임오브젝트에 추가하여
기능을 동작시킴
18. Unity – 용어정리
- 프리팹(Prefab)
▷ 게임오브젝트에 구성된 기능들을 패키지화 시킨 어셋
▷ 씬에 배치된 프리팹들은 항상 원본 데이터를 기준으로 동작하나,
필요에 따라 해당 링크를 끊을 수 있음
21. Unity – 사용자 인터페이스
- 씬(Scene) 뷰
▷ 3D 세상을 편집하기 위한 편집 뷰
▷ 오브젝트 배치, 회전, 크기 조절 등
게임을 개발함에 있어 항상 주시하게 되는 뷰
- 게임(Game) 뷰
▷ 게임이 구성되고 최종적으로 보여지는 뷰
▷ 이 뷰를 통해 실제 개발된 게임의 모습을 확인하거나 컨트롤이 가능
22. Unity – 사용자 인터페이스
- 계층(Hierachy) 뷰
▷ 씬뷰 상에 배치된 수많은 오브젝트의 목록을 표시하는 리스트 뷰
▷ 게임상의 오브젝트 관리를 용이하게 하기 위해
계층구조로 관리를 가능케 하는 뷰
- 프로젝트(Project) 뷰
▷ 게임을 구성하는 다양한 어셋을 관리하기 위한 뷰
▷ 유니티 엔진에서 유일하게 하드디스크와 링크된 뷰
23. Unity – 사용자 인터페이스
- 인스펙터(Inspector) 뷰
▷ 선택된 기능 또는 게임오브젝트의 컴퍼넌트 내용을 보여주는 에디터 뷰
▷ 코드 수정 없이 인스펙터 뷰 상에 보여지는 값을 수정하여 테스트 가능
42. 게임 개발 과정
2012. 11. 개발시작
2013. 3. 프로토 타입 완성
2013. 4. UNITE 2013
2013. 5. 대격변 !
2013. 6. 고난(苦難)의 시기
2013. 7. 퍼블리싱 계약
43. 게임 개발 과정
2012. 11. 개발시작
2013. 3. 프로토 타입 완성
2013. 4. UNITE 2013
2013. 5. 대격변 !
2013. 6. 고난(苦難)의 시기
2013. 7. 퍼블리싱 계약
2013. 10. FGT
44. 게임 개발 과정
2012. 11. 개발시작
2013. 3. 프로토 타입 완성
2013. 4. UNITE 2013
2013. 5. 대격변 !
2013. 6. 고난(苦難)의 시기
2013. 7. 퍼블리싱 계약
2013. 10. FGT
2014. 2. 아프리카 TV 출시
108. 간단한 Unity 2D 프로젝트 샘플
트리거 이벤트
트리거 이벤트
트리거 발동
-> State 변경
109. 간단한 Unity 2D 프로젝트 샘플
http://agebreak.url.ph/Bin.html
110. 간단한 Unity 2D 프로젝트 샘플
http://agebreak.url.ph/Puyon_Web.html
111. Unity2D의 장점
• 추가 플러그인(2D ToolKit)의 구입 없이, 2D 게임 개발 가능
• 유니티의 기능이기 때문에, 완벽하게 유니티와 통합
• 2D Physics 가 유니티 자체에서 잘 지원 되어 있음
• Sprite의 관리가 용이함 (Sprite Editor, Sprite Packer)
• 현재로서는 버그가 좀 있긴 하지만, 앞으로 발전 가능성
139. FSM
• GameObject에 부착되는 PlayMaker 컴포넌트
• PlayMaker Browser에서 FSM을 마우스 우측클릭으
로 생성하면 자동으로 생성된다.
• 한 FSM내에 여러 스테이트와 Action들을 정의한다
140. FSM
• 한 오브젝트내에 복수개의 FSM 컴포넌트 생성 가능
• 각가의 FSM이 일종의 레이어처럼 사용 할 수 있다.
• FSM 1 – 캐릭터의 상태 변화 제어
• 축소, 확대, 변신, 무적…
• FSM 2 – 캐릭터의 행동 변화 제어
• 이동, 달리기, 점프, 공격…
143. STATE
• 오브젝트의 각 상태를 정의한다
• IDLE, 이동, 점프, 공격, 피격, 죽음…
• 각 상태는 그 상태에서 작동하는 Action들을 추가할
수 있다. (상태에 따라 Action이 없을 수도 있다)
• 설정된 EVENT가 발생하면, 다른 State로 전이
(Transition)한다.
145. ACTION
• State안에 설정된 실제 작동하는 행동
• 텍스쳐 변경, 마우스 클릭, 오브젝트 이동 및 회전등
모든 기본적인 100여개가 넘는 Action들이 제공 된다.
• 게임에 맞는 Custom Action을 쉽게 제작하여 추가할
수 있다.
146. ACTION
• 복잡한 게임에서 프로그래머의 역할은 Custom
Action을 코딩하여 제작하여 넘겨주면, 다른 개발자들
이 사용할 수 있다.
• Action은 전부 C#코드로 되어 있고, 소스가 포함되어
있기 때문에, Action들의 코드만 봐도 유니티의 기본
스크립트들을 참고할 수 있는 최고의 예제 코드가 된
다.
148. EVENT
• 각 스테이트에서 정의한 이벤트가 발생하면, 그 이벤
트에 연결된 스테이트로 전이된다.
• 이벤트는 기본적인 시스템 이벤트도 있고, Event
Browser를 통해서, 커스텀 이벤트를 추가할 수 있다.
• 커스텀 이벤트는 FSM 제어에 따라서 호출할 수 있다.
150. Variable
• FSM에 체크등에 사용되는 변수들을 추가하고, 정의
할 수 있다.
• 오브젝트를 체크할때 사용하는 GameObject 변수
• 위치와 방향들 – Vector 변수
• String, Int, Texture 등의 변수를 모두 추가하고 사용할
수 있다.