유니티 강좌2014. 3. 10. 06:00

6)물리 컴포넌트 구성하기


이제 큐브에 물리 컴포넌트를 넣어보도록 하겠습니다.

큐브에 물리 컴포넌트를 넣기에 앞서 먼저 큐브가 물리작용을 일으킬 수 있는 조건을 충족시키기 위해서 플랜을 생성하여 바닥의 역할을 하게 바닥에 깔아보도록 하겠습니다.

   

- GameObject > Create Other > Plane를 사용해서 플랜을 하나 생성해주세요.

그리고 Inspector창에서 아래의 그림과 같이 Transform 정보를 깔끔하게 다듬어줍니다.



플랜을 정렬하고 나면, 아래의 그림과 같이 큐브와 플랜이 맞물려 있는 상태가 되는데, 이는 큐브와 플랜 모두가 Y축 포지션 좌표가 0이라서 나타나는 현상입니다.



이러한 문제를 고치기 위해서, 큐브들의 Y축 좌표를 2로 만들어 줍니다.



그리고 플레이 버튼 을 눌러보세요.

   

위의 그림처럼 아무런 미동도 없이 3개의 오브젝트가 화면에 잘 보이고 있다면, 정상입니다. 혹시, 이것저것 연습을 하면서 지우지 못한 컴포넌트가 있어서 오브젝트들이 움직임을 보인다거나, 위치나 회전 값이 이상해지는 현상이 나타난다면 앞으로 가셔서 다시 차근히 위의 그림처럼 화면이 구성되게 세팅해주세요.

   

이제 본격적으로 큐브에 물리 컴포넌트를 넣어보겠습니다.

-'Cube'오브젝트를 선택한 다음, Inspector 창에서 Add Component > Physics > Rigidbody를 클릭해서 'Cube'에 Rigidbody 컴포넌트를 추가합니다.



Rigidbody는 생성과 동시에 자동으로 Use Gravity가 체크가 되어 있어, 큐브에 중력이 적용되도록 만드는 것을 볼 수 있습니다.

- 플레이 버튼을 눌러서 Rigidbody 컴포넌트로 인해 큐브가 어떻게 움직이는지 확인해봅시다.



위의 그림과 같이 'Cube' 오브젝트가 플랜 위로 떨어졌다면, 정상적으로 Rigidbody가 적용된 것 입니다.

※ Rigidbody에서 Mass(무게), Drag(저항), Angular Drag(공기저항)의 값을 바꿔보고 Is Kinematic(물리작용 제외) 체크를 해보고, 풀어보면서 플레이 버튼을 눌러봅시다.

   

그리고 그런 행동에 따라 큐브가 어떤 물리적 속성을 가지게 되는지 확인해봅시다.

   

-이제 그 옆에 있는 'Cube1'에도 Rigidbody를 넣어봅시다.

그리고 플레이를 눌러봅시다.



플레이 화면에서 위의 그림과 같이 'Cube1'이 Plane을 뚫고 내려가는 것을 볼 수 있습니다.

왜 그럴까요?

잘 모르겠다면, 두 개의 큐브의 컴포넌트 상태를 비교해보면 정답을 알 수 있습니다.

   

'Cube'는 충돌 체 역할을 하는 Collider가 있지만, 'Cube1'은 없는 것을 확인할 수 있습니다. 따라서, 'Cube1'에도 Box Collider를 생성해서 충돌체가 존재하도록 해줍니다.

   

그리고 다시 플레이 버튼을 눌러서 확인을 합니다.



상위 그림과 같이 두 개의 큐브가 떨어져서 플랜 위에 멈춰있다면, 정상으로 수정이 된 것입니다.

   

7)컴포넌트에 대한 개념 정리


앞서서 우리는 다양한 컴포넌트를 만들어 봤습니다.

카메라 컴포넌트, 모델 형태 컴포넌트, 모델 렌더링 컴포넌트, 충돌 컴포넌트, 물리 컴포넌트……

이처럼 컴포넌트는 게임 오브젝트라는 그릇 안에서 다양한 형태로 존재하며, 씬에서 오브젝트의 활동, 또는 씬에서 일어나는 특수한 이벤트 등을 관리하는 역할을 합니다.




APP 개발 온라인 강좌 - 제1강 모바일 개발 환경과 Tool 소개 [1-1]

APP 개발 온라인 강좌 - 제1강 모바일 개발 환경과 Tool 소개 [1-2]

APP 개발 온라인 강좌 제1강 - 모바일 개발 환경과 Tool 소개 [1-3]

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-1]

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-2-1]

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-3,4] -씬 만들기와 오프젝트 만들기

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-5] -큐브(상자)씬 만들기


Posted by 알 수 없는 사용자
유니티 강좌2014. 2. 24. 17:53

유니티 기본조작법


5) 큐브(상자) 오브젝트 만들어보기

이번에는 유니티에서 제공하는 기본 큐브를 만들어보고, 빈 오브젝트 기반으로 사용자가 컴포넌트를 조립하는 방법으로 큐브를 하나 더 만들어 보며, 시각적으로 보이는 물체 오브젝트의 컴포넌트 구성을 살펴보겠습니다.

 

Game Object > Create Other > Cube 메뉴를 통해서 큐브를 생성합니다.

Game Object > Create Empty 메뉴를 통해서 빈 오브젝트를 만들고, 이름을 'Cube1'로 바꿉니다.


두 오브젝트의 위치를 보정해주기 위해서 Inspector창의 Transform 컴포넌트에서 Position Y, Z 값을 0으로 만들어준 후, 'Cube' 오브젝트의 X값을 -2로 하고, 'Cube1' 오브젝트의 X값은 2로 설정합니다.


'Cube1' 오브젝트에 Component > Mesh > Mesh Filter 메뉴로 Mesh Filter 컴포넌트를 추가하고, Component > Mesh > MeshRenderer 메뉴로 Mesh Renderer 컴포넌트도 추가해줍니다.


추가한 컴포넌트들을 기본으로 제공되는 Cube 컴포넌트 정보와 비교하여 큐브를 완성시켜봅시다.

 

아래의 그림처럼 큐브 2개가 화면에 보인다면, 제대로 세팅된 것입니다.

 

큐브가 검게 보이는 것이 마음에 들지 않는 다면, Hierarchy에 있는 Create 버튼을 눌러서 Directional Light를 하나 추가해보자.


라이트를 추가하면 빛에 따른 큐브의 색상이 표현된다.


다음 강좌는 제2강의 마지막으로 6,7 컴포넌트에 대하여 포스팅을 하겠습니다. 



 스마트 아카데미 창의인재 교육 6개월 과정 등록안 -스마트 앱 전문 교육기관

페이스북 왓츠앱 인수

창조경제시대 왜 코딩교육인가 - 스마트 아카데미

스마트아카데미-시설 소개

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-3,4] -씬 만들기와 오프젝트 만들기

스마트아카데미 책 소개 - 개발자, 나를 말하다

창의융합형 교육이 대세다.

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-2-1]

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-1]


Posted by 알 수 없는 사용자
유니티 강좌2014. 2. 14. 12:28

2강 유니티 기본조작법 1-2

   

지난번 강좌에서는 유니티 기본조작법 프로젝트 만들기에 대하여 글을 썼습니다. 이번 강좌는 3장 씬 만들기와 4장 카메라 오브젝트 만들기 설명입니다.

   

3) 씬 만들기

   

이제 간단한 씬 구성을 통해 앞서 앞서 설명했던 창의 기능들을 체험해보도록 하겠습니다.

앞서 생성해둔 프로젝트에서 Project 창의 Create 버튼을 눌러서 Folder를 하나 만들고 이름을 Scene이라고 지어줍니다.


   

Scene이라는 폴더가 Project 창에 만들어졌으면, 이제 File > New Scene 메뉴에서 새로운 씬을 만들어 줍니다.




   

※혹시 이런 경고 창이 나타난다면, 씬을 만들기 전에 유니티의 인터페이스를 익히기 위해서 이것저것 만져본 정보가 저장이 되지 않아서 나타나는 창이므로, 걱정 마시고 Don't Save를 선택합니다.

   




   

   


   

앞서 Project 창에서 만들어 두었던 Scene폴더가 내가 개설한 프로젝트의 Assets 폴더 안에 들어가있는 것을 확인할 수 있습니다.

   


Scene 폴더를 열고 안으로 들어가, 그 곳에 Scene 1 이라는 이름으로 씬을 저장합니다.

   


   


그리고 Project 창을 보면서 내가 저장한 씬이 제대로 된 위치에 저장이 되었는지 확인을 합니다.

   

4) 카메라 오브젝트 만들어 보기

씬을 생성하면 Hierarchy 창에 Main Camera 오브젝트가 자동으로 생성이 됩니다.

일반적으로 기본으로 제공되는 이 카메라를 사용하여 개발을 시작하지만, 오브젝트와 컴포넌트 설정하는 방법을 익혀보기 위해, 카메라를 실수로 지운 상태를 가정하여, 카메라를 만드는 방법을 예로 들어보겠습니다.

   

먼저, Hierarchy 창에 있는 기존의 Main Camera를 삭제합니다.

(오브젝트 선택 후, Delete 키. 또는, 오브젝트 마우스 우 클릭 > Delete 메뉴)


   

Ctrl+Shift+N 또는 Game Object > Create Empty 메뉴로 빈 오브젝트를 생성합니다.


   



   

Hierarchy에서 생성한 오브젝트를 선택하고 오브젝트의 이름을 Camera로 바꾸어줍니다.

  





※ 오브젝트의 이름은 오브젝트를 선택한 상태에서 F2키를 누르거나, Inspector창의 오브젝트 이름 칸에서 타이핑하여 변경할 수 있습니다.

   


Inspector창의 Transform 컴포넌트에서 Position을 X: 0, Y: 0, Z: -10으로 맞춰줍니다.





상단 메뉴 Component > Rendering > Camera 메뉴를 클릭해서 카메라 컴포넌트를 생성해줍니다.

   


   

Scene과 Inspector 창을 보면 빈 게임 오브젝트였던, 'Camera'오브젝트가 카메라의 기능을 가지게 된 것을 확인할 수 있습니다.


   




이처럼 오브젝트는 사용자가 설정해주는 컴포넌트에 따라서 속성이 결정 됩니다. 다음 강좌는 2강 5장 큐브(상자) 오브젝트 만들기입니다. 



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 


   


Posted by 알 수 없는 사용자
유니티 강좌2014. 2. 11. 11:19

2-2-1 유니티 기본조작법

   

어제의 강좌 2-1유니티의 기본 구성에 대하여 알아 보았습니다. 오늘은 유니티 기본조작법 프로젝트 만들기입니다.


1) 프로젝트 만들기

   

유니티 프로그램을 실행하고, 상단에 있는 메뉴에서 File > New Project를 클릭합니다.


그러면 아래의 그림과 같이 생성할 프로젝트에 대한 경로와 사용할 컴포넌트 자산(Asset) 패키지를 선택할 수 있는 프로젝트 생성 창이 열립니다.

   


※ 유니티의 프로젝트는 그 자체가 개별적인 앱 또는 게임이라고 볼 수 있는 영역이기 때문에, 하나의 프로젝트에 'A'라는 제품의 씬과 Asset을 넣은 상태에서 'B'라는 제품의 씬과 Asset을 같이 넣는 우를 범하는 실수가 없도록 해야 합니다.

   

많은 유니티 초보자들이 프로젝트와 씬, 그리고 씬을 구성하는 컴포넌트 Asset의 정의를 이해하는 것을 소홀히 하여, 첫 제품을 완성하였을 때 결과물은 'A'라는 제품 하나이지만, 그 안에 들어간 씬과 Asset(즉 개발 리소스)을 'B'의 것도 넣고 'C'의 것도 넣은 채로 빌드를 해버려서 필요가 없는 용량이 2배~3배가 되어버리는 경우가 많이 있습니다.

   

프로젝트는 하나의 제품, 하나의 예제를 제작한 뒤, 다른 것을 제작해야 한다면, 새로운 프로젝트를 개설해서 해주는 것을 잊지 마시길 바랍니다.


   

Import the following packages는 일단 선택하지 않고, 프로젝트 파일이 생성되길 원하는 위치에 'Chapter 1'이라는 이름으로 프로젝트를 생성합니다. 프로젝트를 생성했다면, 유니티는 새로 설정한 프로젝트를 읽기 위해 다시 한번 로딩의 시간을 가지고, 방금 만든 프로젝트가 열립니다.

   

2) 유니티 인터페이스

   


   

   

아래의 그림과 같이 유니티의 인터페이스를 한 눈에 보기 쉽게 변경시켜봅시다.

   

   

   

   

인터페이스 내부 구성에 대해 보다 상세히 알아보겠습니다.

   

 

   

(1) 메뉴

File: 새로운 프로젝트나, 씬을 만들거나 저장하고, 프로젝트를 제품으로 빌드할 수 있는 메뉴를 가지고 있습니다.

   

Edit: 되돌리기, 재실행, 잘라내기, 복사, 붙여 넣기, 오브젝트 선택, 창의 속성 및 색상 변경, 렌더링 세팅과 그래픽, 네트워크 에뮬레이션 등의 개발에 있어서 제공되는 환경을 자유롭게 설정할 수 있는 메뉴를 가지고 있습니다.

   

Asset: 창과 연관이 큰 메뉴로써 기본 컴포넌트부터, 커스텀 컴포넌트 패키지까지 다양하게 Import또는 Export 할 수 있는 메뉴를 가지고 있으며, Asset들을 정리할 수 있는 폴더를 만들거나, 새로운 Asset의 기본 속성을 설정해서 자유로운 Asset 제작이 가능하게 해주는 Create 메뉴를 가지고 있습니다.

          

Game Object: 비어있는 오브젝트부터, 기본으로 제공하는 다양한 타입과 속성의 오브젝트를 만들 수 있는 메뉴를 가지고 있으며, 오브젝트 간의 Parent 설정을 조정하거나, 오브젝트 기준으로 화면 시점을 조정하는 등의 기능을 가진 메뉴도 가지고 있습니다.

   

Component: 메쉬, 이펙트, 충돌체, 물리, 사운드, 등. 오브젝트가 가질 수 있는 다양한 속성을 쉽게 세팅이 가능하도록 범용적, 기본적인 컴포넌트들을 제공해주는 메뉴입니다.

   

Terrain: 지형을 시각적인 도구로 쉽게 제작할 수 있도록 해주는 메뉴입니다.

   

Window: 유니티 내부에서 사용할 수 있는 창들을 열 수 있는 메뉴입니다.

   

Help: 유니티의 라이선스 관리 및 유니티 매뉴얼, 레퍼런스, 포럼 페이지와 연결하여 초보자가 유니티를 다루는 데 있어 다양한 도움을 받을 수 있게 해주는 메뉴입니다.


   

(2)실행 아이콘

   

   

(단축키 Q)이 버튼을 클릭하면, 마우스로 화면을 잡고 상하좌우로 이동시켜 볼 수 있습니다.

   


   

(단축키 W)이 버튼을 클릭하면, 현재 선택된 오브젝트의 좌표를 마우스로 이동시킬 수 있습니다.
 

(단축키 E)이 버튼을 클릭하면, 현재 선택된 오브젝트를 마우스로 회전시킬 수 있습니다.

   

(단축키 R)이 버튼을 클릭하면, 현재 선택된 오브젝트의 크기를 마우스로 변화시킬 수 있습니다.

   

※ 그 이외의 유용한 단축키

- F: 현재 선택하고 있는 오브젝트가 화면 중심에 오게끔, 화면의 위치를 이동시킵니다.

- Ctrl + Shift + N: 빈 오브젝트를 생성합니다.

- Ctrl + D: 현재 선택한 오브젝트를 복제하여 생성합니다.

- Ctrl + 9: 에셋 스토어 창을 엽니다

- Ctrl + S: 현재 작업 중인 씬을 저장합니다.

   

   

(3)동작 버튼

  


이 버튼을 클릭하면, 현재 제작 중인 씬이 어떻게 동작하는지를 Game 창에서 미리 볼 수 있습니다.

   

Game 창에서 미리 보기 하고 있는 상태에서 이 버튼을 클릭하면, 미리 보기를 잠시 일시 정지시킬 수 있습니다.


Game 창에서 미리 보기 하고 있는 상태에서 이 버튼을 클릭하면, 현재 상황을 일시 정지 시키고, 한 프레임 다음 장면을 볼 수 있습니다.


(4) Scene

   

Scene 창은 현재의 씬을 구성하는 창입니다.

씬에 필요한 오브젝트들을 설치하고, 컨트롤 할 수 있으며, 3D 그래픽 툴에서 제공하는 것과 같이 다양하게 오브젝트를 보는 방식을 제어할 수 있습니다.

창의 옵션 컨트롤은 이후에 해보겠지만, 큐브와 같은 기본 오브젝트를 하나 만들어 놓고, 이것 저것 만져보면서 설정이 변할 때마다 어떻게 오브젝트와 화면이 변화하는지 먼저 살펴보는 것도 도움이 됩니다.

   

씬에서의 작업은 3D 그래픽 툴과 같이 3D Axis를 기반으로 하여 진행됩니다.

주로 대부분의 3D툴들은 3D Axis를 기반으로 하며, 대부분의 툴들이 Left Hand 나 Right Hand 좌표계를 사용합니다. 유니티에서는 아래의 그림과 같이 Left Hand 좌표계를 사용합니다.

   

   

   

   

엄지 방향의 X축은 좌우 방향(+Right)의 축이고,

검지 방향의 Y축은 상하 방향(+Up)의 축이며,

중지 방향의 Z축은 앞뒤 방향(+Forward)의 축입니다.

   


이러한 좌표계의 사용은 화면에 보이는 공간 자체의 축을 기준으로 하는 World(Global)가 있고, 객체(오브젝트)하나 마다 제각기 가지고 있는 Self(Local)가 있습니다.

   

World(Global) Axis는 그 범위가 공간 자체이기 때문에 오직 1개의 정해진 축만이 존재하지만, Self(Local) Axis는 오브젝트마다 각각 가지고 있는 방향이 다 다르기 때문에, 무수히 많은 개수가 존재할 수 있습니다.

   

이러한 범위의 구분이 필요한 이유를 예를 들어 설명해드리겠습니다.

2단 점프가 가능한 캐릭터가 있는데, 이 캐릭터는 한 번 점프를 하면 앞으로 덤블링 하듯이 공중회전을 합니다.

   

점프의 방향은 항상 공간상 위를 향해야 하기 때문에 World(Global) Axis에서 점프시 Y축 방향으로 값 증가가 이루어져야 하고, 실제로 1단 점프와 2단 점프 모두 World(Global) Axis를 기준으로 Y축 방향으로 값 증가가 이루어지게 작업을 하면 아무 이상 없이 2단 점프가 잘 되는 것을 볼 수 있습니다.

   

하지만, 그렇게 하지 않고 Self(Local) Axis에서 Y축 값을 변경하게 한다면, 1단 점프 후 캐릭터가 공중회전을 하면서 캐릭터의 머리가 아래로 향하게 되었을 때, 2단 점프를 시도하면 캐릭터의 머리방향, 즉, 아래 방향으로 값 증가가 이루어져서 2단 점프가 되기는커녕 땅으로 떨어지는 낙하속도가 증가하게 될 것입니다.

   

(Self(Local) Axis에서는 Y축 방향에서 위(+)를 뜻하는 방향이 머리 위 방향이기 때문입니다.)

   

(5) Game

   

Game 창은 현재 Scene창에 만들어서 배치한 오브젝트들이 카메라를 통해서 어떻게 보이는지 미리 볼 수 있는 창입니다.

버튼의 기능과 연결되어 있으며, 이를 통해 앱을 빌드해서 확인하기 전에 어떻게 작동하는지 미리 테스트를 해볼 수 있습니다.


(6) Console

   

Console 창은 현재 로드 된 프로젝트나 씬의 대한 상태와 문제에 대한 중요사항을 메시지로 알려주는 창입니다.

창의 오른쪽을 보면 색상 별로 느낌표 3개를 볼 수 있는데, 하얀색은 알림 사항, 노란색은 주의 사항, 빨간색은 경고 사항 입니다.

하얀색이나 노란색 느낌표 메시지들은 씬이 구동되는데 별 지장을 안주는 요소들이지만, 빨간색 느낌표 메시지는 반드시 해결해야만 하는 부분이라고 생각하시면 됩니다.

   

(7) Hierchy

   

Hierarchy 창은 현재 씬 내부에 설치되어 있는 모든 오브젝트를 보여주는 창입니다.

그리고, 이 곳에서 Create 버튼을 눌러 유니티에서 제공하는 기본 오브젝트들을 선택하여 생성할 수 있습니다.

   

(8)Project

Project 창은 현재의 프로젝트에서 사용되고 있는(즉, 프로젝트 내에 존재하는 모든 씬에서 사용되고 있는) Asset을 보여주는 창입니다.

많은 유니티 초보자들이 프로젝트 창의 관리에 실패하는 경우가 많은데, 이는 프로젝트 창의 정확한 용도에 대한 인식이 부족해서 이기도 합니다.

   


프로젝트 창은 실질적으로 게임이 빌드 되었을 때, 리소스가 적용되는 경로까지 모두 컨트롤하는 창이기 때문에 리소스의 경로를 폴더를 이용하여 카테고리 별로 잘 정리해두지 않으면, 이미지, 애니메이션, 스크립트, 캐릭터 모델 등이 뒤죽박죽 섞여있어 관리가 불가능한 상태가 되어버립니다.

혼자서 개발을 하더라도 개발 리소스의 효과적인 관리는 매우 중요하므로, 프로젝트 창을 깔끔하게 관리하는 습관을 기르는 것이 좋습니다

   


   

(9) Inspector

Inspector 창은 현재 선택 중인 Asset이나 오브젝트 등에 대한 정보를 보여주는 창입니다.

   

예를 들어 큐브 오브젝트를 선택했다면, 그 큐브의 좌표 값, 회전 값, 크기 값을 비롯하여 렌더링 형태, 렌더링 되는 텍스처의 재질, 타 오브젝트와 충돌이 일어날 수 있는 범위, 물리적인 속성 등, 큐브의 구성에 필요할 수 있는 모든 정보를 Inspector창을 통해서 컴포넌트 형태로 세팅하고, 수정할 수 있습니다.

   

오늘은 유니티 인터페이스까지 알아보았습니다. 다음은 3장 씬 만들기에 대하여 알아보겠습니다. 



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 


   


우아한 형제들 김봉진 대표 - 앱 개발 전문 학원 스마트 아카데미

크리에이티브 UX교육 훈련과정 안내

미래창조과학부 창조경제 실현

APP 개발 온라인 강좌 제2강 - 유니티의 기본 구성 및 조작법 [2-1]

창의인재과정 안내

스카이 아카데미 취업 정보 - 선데이토즈 이야기

구글의 네스트 인수 의미

K팝 홀로그램 상설공연장 개소



Posted by 알 수 없는 사용자
유니티 강좌2014. 2. 10. 10:51

2-1 유니티의 기본 구성


유니티를 배우면서 유니티에서 사용하는 몇 가지 단어에 대한 이해를 하고 시작하는 것이 좋겠습니다.

   

프로젝트(Project), 씬(Scene), 게임오브젝트(Game Object), 컴포넌트(Component)등이 유니티 메뉴에 있는데, 이것은 예를 들어 영화나 연극의 제작 장면을 연상하면 이해하기 좋습니다.

 

   

   

즉, 프로젝트는 통상 이야기 하는 프로젝트의 의미로써 연극 제작 전체를 말합니다. 영화와 연극은 여러 개의 장면(씬)으로 구성되어 있습니다.

   

이때의 장면(씬)이 유니티에서 작업하는 화면 즉 씬(Scene)입니다. 영화나 연극은 그 장면을 구성하기 위하여 주인공, 엑스트라, 무대 배경, 소품 등을 사용합니다. 이런 것들이 게임오브젝트이고 매번 재사용하거나 부분변경을 쉽게 하기 위하여 부품으로 쪼개어 관리하는 것이 컴포넌트입니다.

   

1) 프로젝트(Project)

   

프로젝트는 제품을 구성하는 가장 큰 단위로 개발 중인 제품의 모든 구성내용(버튼, 모델링과 같은 그래픽 요소 및 버튼을 클릭했을 때의 반응과 같은 프로그래밍 요소와 장면의 구성방법 등)을 포함하는 단위가 프로젝트 입니다.

   

즉, 실제로 개발이 완료가 된 게임이나, 앱 그 자체를 하나의 프로젝트라고 생각할 수도 있습니다.

   

   

2) 씬(Scene)

씬은 프로젝트의 하위에 들어가는 단위이며, 화면에 출력되어 보이는 장면을 씬이라고 부릅니다.

예를 들어, 하나의 게임을 예로 들었을 때, 가장 먼저 나오는 실행 시 로딩화면 씬, 그리고 스타트 버튼이 있는 게임 스타트 씬, 그리고 그 이후에 캐릭터 선택, 캐시샵, 스테이지 선택 등의 다양한 정보를 선택하거나 설정할 수 있는 로비씬등,프로젝트를구성하는 모든 장면들을 씬이라고 합니다.

   

   

3) 게임 오브젝트(Game Object)

게임 오브젝트는 씬 안에 들어가는 화면의 구성 요소 입니다.

그럼, 아래의 그림을 보며 오브젝트가 어떤 것이 있을 수 있을지 생각을 해봅시다.

 

   

게임 오브젝트는 캐릭터, 하수구, 장애물, 아이템 박스, 스코어 등, 모든 것들이 오브젝트 입니다.

   

이처럼 게임 오브젝트는 화면 안에서 시각적으로 보이거나, 특별한 프로그램 코딩을 담고 있는 요소까지 씬을 구성하고 있는 모든 구성 요소를 오브젝트라고 합니다.

   

다음 강좌는 유니티의 기본 조작법에 대한 강좌입니다.



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 


   

Posted by 알 수 없는 사용자
유니티 강좌2014. 2. 3. 14:33

모바일 개발 환경과 Tool 소개

APP 개발 온라인 강좌 [1-3] 프로그래밍 환경

   

좋은 프로그램을 만드는 것은 쉽지 않습니다. 프로그램을 몰랐던 사람이 좋은 프로그래머가 되기도 쉽지 않습니다. 프로그래밍도 영어, 일어와 같은 언어의 일종 이어서 충분한 시간과 오랜 집중이 필요합니다.

   

우리나라가 전산학 또는 프로그래밍을 영어권 국가보다 상대적으로 어려워하는 이유도 기존 프로그래밍이 영어인 외국어를 기반으로 하기 때문일 것입니다. 또한 프로그래밍 규칙과 예를 설명하는 문서들이 영어로 되어 있어서 이해하고 사용하는데 고통이 배가 되기 때문이기도 합니다.

   


 

   

국어로 좋은 작문을 하는 것도 쉽지 않은 일인데, 외국어로 작문을 하고 거기에 좋은 작문까지 하기란 정말 쉽지 않은 일 일 것입니다. 일반적인 뇌 사용으로 외국어로 프로그래밍하는 것을 표현해 보자면 언어를 주로 다루는 우뇌가 외국어를 할 때 긴장을 할 것이고, 프로그램 논리구조를 따지는 좌뇌 또한 같이 바쁠 것입니다. 만약 익숙한 언어를 사용하거나 언어에 대한 부담을 덜게 되면 뇌는 온전히 논리에 집중하여 고요한 가운데 힘을 발휘할 지도 모르겠습니다.



프로그래밍과 소스코드


통상 프로그래밍을 잘 하는 사람도 다른 사람이 짠 소스 코드를 쉽게 고치지 못 합니다. 머리가 나빠서도, 먼저 코드를 만든 사람이 천재여서도 아닙니다. 서로 다른 언어 또는 표현 습관을 가진 사람의 말을 알아 듣는 것이 굉장히 어려운 일임을 우리는 사투리가 심한 사람을 만날 때 알 수 있습니다. 물론 급할 게 없는 상황이거나 제한된 조건에서는 그런 고통을 즐겁게 넘길 수도 있습니다.

   

  

 

그러나 다른 사람이 만든 프로그램 소스코드를 보는 것은 만든 사람의 언어 표현습관의 차이를 이해하는 것과 더불어 수수께끼(변수, 논리)를 푸는 것도 같이 해야 하기 때문에 당연히 어려운 작업입니다.

   

코드 양이 조금 많아지면 온전히 이해하거나 고 치는 것은 불가능해 지기도 합니다. 코드의 어느 한쪽을 고치면 여러 곳에서 예측 하지 못한 에러가 발생하고, 그 에러는 그야말로 예측하지 못한 것이기에 코드 수정은 불가능하기도 합니다.


예외적으로 코드가 아주 짧거나 프로그래밍 습관이 정확히 같다면 비록 다른 사람이 만든 프로그램 소스라도 쉽게 이해하는 것이 가능할 것 입니다. 그러나 많은 경우 그런 재수좋은 경우는 흔치 않습니다.


그럼 어떻게 하면 될까요? 우리는 프로그램의 핵심에 주목해야 합니다. 프로그램 의 표현 기법은 부차적인 것이고 프로그램이 하고자 하는 기능과 논리구성이 핵 심이라 하겠습니다. 실제로 프로그램의 소스코드는 저작물(누군가 만들었음)로써 만 등록되고 인정받지만, 그 프로그램의 기능이 특허로 등록되면 다른 사람이 따라 할 수 없게 됩니다. 특허에 기재되는 것은 표현 방법(소스코드)이 아니라 기능과 논리이며, 플로우 차트와 같은 형식으로 표현된 순서도가 핵심인 것입니다.

   


   

   

다행히 최근에는 프로그래밍도 영어(Text)로만 이루어져있던 것에서 벗어나 논리 구조(Graphic) 기반 프로그래밍 툴들이 소개되고 있습니다. 그래서 일상 생활에서 는 접할 기회가 거의 없는 외국어 단어와 어순, 수식관계를 단순 암기에서 벗어날 수 있게 되었습니다. 자신이 만들고자 하는 기능과 논리에 집중해 볼 수 있는 프로그래밍의 새로운 시대가 열리고 있습니다. 더군다나 외국어로 프로그래밍해야 했던 우리에게는 논리기반 비주얼 툴들이 정말 프로그램의 새로운 시대를 열어 줄 지도 모르겠습니다.




Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 



Posted by 알 수 없는 사용자
유니티 강좌2014. 1. 27. 16:23

스마트 아카데미 유니티 APP개발 온라인 강좌

제 1강 모바일 개발 환경과 Tool 소개 [2] 기술환경


2. 기술환경

앱이나 게임을 만들기 위해서는 이를 위한 기획, 그래픽 디자인, 프로그래밍 등이 필요합니다. 이러한 전문 분야들은 서로 독립적이기 때문에 기획자와, 디자이너, 개발자들이 다루는 툴과 관심사가 다릅니다. 기획자는 앱의 예상 사용자에 대한 분석과 그 앱의 필요성을 만족시키려는 기획문서(Word, Excel, PowerPoint) 또는 앱의 각 씬(Scene)에 대한 화면 분석과 구조를 설명하는 문서(Mockup, MindMap)을 주로 사용합니다.

   

그래픽 디자이너는 기획된 멋진 2D 이미지를 만들기 위하여 다양한 이미지 저작 툴(Photoshop, Illustrator, Gimps), 3D 모델링 툴(3D Max, Maya, Blender3D)을 사용합니다. 프로그래머들도 앱의 동작을 위하여 다양한 프로그램 언어(C, C++, C#, Java Script, Basic, Python, Boo, Pascal, HTML, Action Script)를 사용합니다.

   


필요와 환경에 따라 사람들은 다양한 툴과 언어를 사용하게 되고, 이러한 툴과 언어의 분화로 인하여 소통의 오류 또한 더불어 발생하게 됩니다. 


일부는 여러 언어를 동시에 사용할 수 있기도 하지만 대부분은 그렇지 않습니다. 사람들은 같은 땅에 살면서 오랜 기간 같은 언어로 학습하고 훈련하여도 그 언어의 표현에 대한 이해가 서로 달라 싸움이 일어나기도 하는데, 비교적 짧은 기간 배운 언어 또는 다른 언어에 대한 서로의 부족한 이해는 분쟁을 일으키기에 충분한 상황이라 하겠습니다

 

기획자와 그래픽 디자이너, 프로그래머가 상호간 서로를 이해하면서 함께 개발할 수 있는 이해력을 높이기 위해서는 많은 시간(또는 비용)이 필요합니다.

   

스마트 앱의 기술적 측면에서 보자면 앱을 만들기 위한 내부 인력의 소통과 이해도를 높이는 것뿐만 아니라 앱의 시장(애플 앱 스토어, 구글 플레이스토어)에 따라 요구 되는 프로그래밍 언어(Object C, JavaScript)가 달라지기도 합니다.

   

앱 시장에 대응 하기 위해서는 다른 언어가 필요하고 그 프로그래밍 언어에 따라서 다른 기술 환경이 필요하기도 합니다. 이러한 기술적 어려움(다른 프로그래밍 언어 또는 환경 을 필요로 하는 불편함)을 극복하기 위해 크로스 플랫폼 툴들이 나와있습니다.

   


   

크로스 플랫폼은 한번의 개발과 제작으로 다른 환경(소프트웨어, 하드웨어)에서도 사용 또는 배포될 수 있는 저작 툴을 의미합니다.

   

애플의 iOS와 구글의 Android로 대표되는 양대 플랫폼의 적용을 위하여 크로스 플랫폼 툴들이 많이 나와 있고 이 중 가장 많이 사용되는 것은 PhoneGap입니다.



스마크 아카데미의 온라인 강좌를 통해서는 이러한 크로스플랫폼 툴들 중 2D 앱 개발에 특화되어있는 PhoneGap이 아니라 2D 뿐만 아니라 3D 앱 제작이 용이하며 가장 빠르게 성장하 는 통합 툴인 Unity3D를 이용하고자 합니다.

   

Unity3D를 선택한 또 다른 이유는 이 툴의 무료버전이 상용버전과 거의 같아서 사용자가 무료버전으로 충분히 기능을 익혀 PC 버전과 모바일 버전으로 앱을 배포할 정도의 실력을 쌓을 수 있기 때문입니다.



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 


Posted by 알 수 없는 사용자
유니티 강좌2014. 1. 25. 13:31

스마트 아카데미 APP개발 온라인 강좌

제 1강 모바일 개발 환경과 Tool 소개


1. 시장환경

   

애플 아이폰과 앱 스토어가 시작한 스마트 폰 시장의 변혁은 전세계에 큰 충격이었습니다. 기존 1위의 휴대전화 제조업체인 노키아가 전통적인 모바일 폰에 집중하는 사이 대세로 떠오른 스마트 폰 시장에서 밀려나가고, 오랜 전통의 모토로라 또한 스마트 폰 시장에서의 실적부진으로 인하여 구글에 팔리게 되었습니다.

   

애플의 성공은 스티브 잡스에 의한 새로운 UX(사용자 경험)를 기반으로 하는 아이폰과 아이패드라는 하드웨어의 판매 성공뿐만 아니라 그 플랫폼상에서 돌아갈 수 있는 어플(Application: 이하 '앱')의 성공 때문이었습니다.

   


   

앱의 성공은 기존의 모바일 컨텐츠나 앱 유통 시장을 앱스토어라는 오픈 마켓(이전의 앱 마켓은 통신 사업자나 앱 도매상의 감독하에 운영되는 폐쇄형 마켓)으로 인하여 콘텐츠 유통을 바꾸어 놓는 새로운 건강한 생태계를 만들었습니다.

   

이러한 앱 생태계(Eco System)는 지속적으로 성장하여 애플 앱 스토어, 구글 플레이스토어, 그리고 윈도우8 스토어까지 현재 스마트 컨텐츠 시장은 골드 러쉬(Gold Rush) 라고 표현할 만큼 계속 성장하여 21세기의 금광(Gold Mine)으로 각광을 받고 있습니다.

   

   

앱 생태계 안에서는 매일 다양한 앱들이 새로 생겨나고 있습니다. 구글은 2013년 7월 25일 현재 구글 플레이에 등록된 앱 개수가 100만개를 넘어 섰다고 발표했 습니다.

   

같은 시기 애플의 앱 스토어에 등록된 앱 개수 또한 100만개를 넘어선 것으로 알려져 있습니다. 2008년 말에 개장한 이후 매년 배 이상씩 성장한 결과 입니다. 이 앱들의 카테고리는 다양하며 이들 중 게임이 차지하는 수익의 비중이 크긴 하지만, 이 외에도 다양한 기능성 앱들이 있으며 카테고리 분포상에서 많은 부분을 차지하고 있습니다.

   

 

   

온라인 강좌에서는 스마트 앱 시장의 폭발적인 성장에 따라 사용자이기만 했던 유저가 앱을 사용하는 데에서 그치지 않고, 다양한 아이디어를 가지고 스스로 만들고 싶 은 앱과 게임을 좋은 품질로 직접 개발할 수 있게끔 도와주는 것을 목표로 하고 있습니다.

   

   

다음 강좌에서는 기술 환경에 대한 강좌를 포스팅 해드리겠습니다.



Smart Academy

   

스마트 아카데미의 공식블로그 입니다. 

문의 전화 : 02-567-3885    mail : support@smartacademy.or.kr 


Posted by 알 수 없는 사용자