Unity소개

Post on 13-Jan-2015

3.685 views 1 download

description

이 자료는 제 2회 아이폰 개발자 세미나 발표자료로 다음의 내용을 담고 있습니다. Unity 소개 유니티 기능 유니티 튜토리얼 유니티 강좌

Transcript of Unity소개

Unity 소개 & 특징iOS 개발자 포럼 세미나

2013. 1. 29

창원대학교 정보통신공학과 박동규

Introduction

Portfolio

• 창원대학교 정보통신공학과

• 2012년: Texas A&M University Visiting Scholar

• Game Developer

• http://Cocos2dDev.com/

Shake Series

• Shaking App using accelerometer sensor

• 4 Players can play

• Fun Sounds

• Lightweight App

• Game Center available

• Cocos2d game development kit

Shake Series

FREE FREE FREE

Coke Shake

http://itunes.apple.com/us/app/coke-shake!/id448242537?mt=8

Action Game

Monster Buster

Monster Buster

http://itunes.apple.com/us/app/monster-buster/id440886409?l=ko&ls=1&mt=8

Pocket Windmill

http://itunes.apple.com/us/app/pocket-windmill/id439495371?l=ko&ls=1&mt=8

And more...

Successful Mobile Game

Successful Mobile Game

• The game has to be easy to learn and understand

• people to not spend much time to learn mobile games

• Little input, Big output

• Simple but huge amount of feedbacks

• Physics based gameplay

• physics give much variations on same input

Successful Mobile Game

• A bright, fun, cartoony, and cute visual style

• Very simple storyline

• The player is constantly rewarded

• Huge amount of levels but very short to play

• Provides users ranking

AR Game : AR Defender

http://www.youtube.com/watch?v=rB5xUStsUs4&feature=player_embedded

AR defense - tracking by camera and marker

Look-up

http://www.youtube.com/watch?v=bps3FkX-_cY&feature=player_embedded

Team play is available

Games vs Movies

출처 : Video Game Industry Trends by Ferrarra

Unity

Unity란?

• 개발 : Unity Technology사( www.unity3d.com )

• 멀티플랫폼용 게임 개발을 위한 게임엔진

• 2D, 3D 게임 개발

• Author Once, Deploy Everywhere

• Windows, Linux, Mac, Android, iOS, Unity Web Player, Adobe Flash Player, PlayStation 3, Xbox 360, Nintendo Wii 플랫폼 지원

• 윈도 8, 윈도폰 8, 닌텐도 Wii U지원 예정

멀티 플랫폼 게임엔진

Unity

• 적은 프로그래밍 기술로도 개발이 가능함

• JavaScript, C#, Boo 언어를 통한 개발을 지원

• 스크립트도 Unity의 컴포넌트가 됨

• 유료/무료 Asset을 구매하여 개발할 수 있음

• PhysX 물리 엔진 지원-물리적 효과를 쉽게 구현할 수 있음( 실시간 옷감, 물리객체들 간의 충돌, 파티클등 )

• Drag & Drop 방식의 비주얼 프로그래밍

Demo

Unity web player

유니티로 작성한 콘텐츠를 웹상에서 플레이할 수 있는 플러그인

Ski Safari• 개발자1인, 디자이너1인

• Android, iOS용 게임

• running action게임

• Flash version도 있음

• Unity로 개발

• http://defiantdev.com/index.php

설치하기

라이센스 정책• Unity vs Unity Pro 버전이 있음

• free version

• splash screen(게임 로딩시 화면)에 Unity가 나타남, 워터마크가 있음

• registered version

• 무료, 30일간 테스트를 할 수 있음

• Unity Pro는 유료(1,500$)

• Unity for Android, Unity for iOS는 별도의 license를 통해서 구매함

라이센스 정책

Unity 화면 구성

Scene

Game

Hierarchy

Project

Hierachy

Assets

Inspector

화면구성• Scene - 게임을 만드는 화면(drag & drop)

• Hierarchy - 게임 신의 게임 객체목록과 그 계층적 구조

• Project - 게임개발에 필요한 이미지, 3d 객체, 스크립트등의 리소스(Asset이라고 함)

• Inspector - 유니티 게임은 여러 개의 게임객체로 구성되어 있으며, Inspector는 선택된 게임 객체의 속성정보를 자세히 보여주며, 관련 스크립트와 리소스 연동을 지시함.

• Toolbar - Transform, Play/Pause Button, 레이아웃 조정 버튼등을 가지고 있음

Demo

Angry Bots-최초 설치시 자동 로딩됨

Angry Bots 레이아웃

Scene창 명령

게임 객체의 선택

기즈모• 이동, 회전, 확대/축소

튜토리얼

• 객체의 생성과 스크립팅

• 물리엔진• 게임객체를 다루는 방법

단축키

각각의 기능은 q,w,e,r 키와 매핑

scene 창을 조작하는 매우 중요한 기능

객체의 생성• GameObject -> Create Other

기본 인터페이스

실행하기

게임 신을 실행실행모드에서도 편집 가능- 저장이 안됨(주의)

실행

텍스처 추가하기

물리 추가하기

Inspector

• 객체의 속성

• x,y,x좌표, rotation, scale

• 텍스처, 스크립트

• 물리적 속성

• 렌더링을 위한 정보

파일과 편집, 윈도우 명령

Asset Store

• 개발을 위한 리소스를 다운 받을 수 있는 스토어

• 무료/유료 Asset들이 있으며 Asset Store의 content는 7:3 rule에 따라 수익을 보장받는다

• 방대한 Asset시장 역시 Unity의 큰 장점이다

• http://unity3d.com/asset-store/submit-content

Asset Store

스크립트

C#, JavaScript,Boo를 이용한 프로그래밍이 가능함Mono-Develop이라는 편집도구를 사용-외부편집기도 가능

간단한 슈팅 스크립트

• Project-Create-JavaScript를 실행

• Script이름을 “ShootingBall”로 지정

• 더블클릭하여 편집창으로 이동함

event loop test

script를 카메라에 달자

1 2

실행-콘솔창

Shift + Command + C

편집오디오 음원 지정

오디오 소스를 메인카메라로 지정

오디오 확인

• 마우스 클릭시 슈팅 사운드가 들리는지 확인해 보세요

편집

에러 수정

• 대부분의 프로그램 개발도구와 마찬가지로 Error가 발생하면 스크립트의 콘솔에 에러의 위치와 내용을 보여준다

• 이 부분을 수정하여 저장하면된다(JavaScript의 경우 별도의 컴파일은 필요없다)

스크립트 편집

다음과 같은 장면을 만들자

카메라 이동을 확인

카메라 객체의 transform 속성의 Translate값을 h,v값으로 변경함. h, v는 Input 객체의 수직, 수평값을 사용함

Rigid body객체• Scene에 있는 Rigidbody 객체를 Bullet 객체로 할당함

슈팅• Instanciate 메소드를 통해서 bullet 객체를 생성함.

bullet 객체의 초기위치값과 회전값은 camera의 초기위치값, 회전값을 사용함

• TransformDirection 메소드를 통해 카메라의 포워드 벡터를 얻고 이 값을 bullet 객체에 가해지는 힘벡터로 사용함

Play

실습

• Scene에 다양한 강체객체를 만들어 본다

• 강체의 Mass를 아주 크게 만들어 본다

• 슈팅 스피드를 강하게, 약하게 조절해 본다

• 객체의 색상과 텍스처를 변형해 본다

• 슈팅 사운드를 변경해 본다

할일• 3D의 좌표계 : 전역좌표계 지역좌표계

• 그래픽스 기초 개념

• Scene Graph

• 그래픽 객체의 계층적 구조를 만드는데 필요함

• 입력객체

• 키보드, 마우스,조이스틱 입력객체에 대한 이해

• Script 프로그래밍

• 스크립트를 이용하여 게임 로직을 구현하는 프로그래밍 기술

결론• 멀티플랫폼용 게임개발은 매우 많은 시간과 비용이 소모된다

• Unity와 같은 강력한 게임엔진을 이용한 멀티 플랫폼용 게임 개발은 점차 증가할 것이다

• Unity는 게임의 상세한 기능보다는 로직에 집중하도록 도와주는 도구이다

• 물리기반게임과 2D, 3D 게임개발에 편리하다

• 매우 다양한 기능이 있으며 개발자에게 필수 도구로 자리매김할 수도 있다

참고문헌

• Unity 3.x Game Development Essentials

• http://ugame.tu.ac.kr/ymkang/wiki/

• 동명대학교 강영민교수님 강의 페이지

• http://unity3d.com/

• Youtube 강의 동영상등

contact

• dongupak@gmail.com

• http://Cocos2dDev.com/

감사합니다