안녕하세요?


얼마전에 '수학동아' 에서 게임을 만드는데 필요한 도구인 '게임 엔진'인 '컨스트럭트2'를 소개 하였다는 내용을 포스팅 하기는 했었습니다.


링크 : 수학 동아에서 게임 엔진도 소개하다.


이번 시간에는 지난번 8월호 기사를 이어서, 9월호 기사에 나머지 부분이라고 해야 할까요? 아무튼 소개가 되어 있기는 있었습니다. 다만 충실한 내용에도 불구하고 그 내용이 제 예상과는 달라서 실망이기는 했습니다.



위 스크린샷은 새로운 오브젝트를 추가하기 위한 윈도우입니다. 일단 원래 제 생각에는 앱인벤터2 마냥 이리저리 블록을 연결하는 작업이 있을 줄 알았는데, 그러한 작업없이 메뉴에서 저런 윈도우를 불러오기만 하면 된다는 것입니다. 그래서 이번 9월호의 기사를 가만히 보면, 딱히 프로그래밍을 한다는 부분이 없다는 것을 알 수 있습니다.




다만 이러한 면이 기사가 부실해서 이러는 것이 아니라, 시가에 소개가 된 게임엔진인 '컨스트럭트2'의 특징 때문에 이렇게 된 것으로 보여집니다. 아무튼 간에 기존의 유니티5를 공부한 저게에는 많이 낯설기는 하지만, 그래도 게임의 구성요소라고 해야 할까요? 점프 플랫폼 게임에 있어서 중요한 요소인 '발판, 아이템, 적 캐릭터'를 간단하게 추가한 다음 아래와 같이 'Behaviors' 윈도우를 오기만 하면 됩니다.



이렇게 컨스트럭트2의 특징이 별도의 코딩이나 블럭을 연결하는-앱인벤터2와 같은 방식의 프로그래밍도 없이, 위 스크린샷과 같은 별도의 윈도우를 우클릭으로 불러오기만 하면 다른 게임 엔진-유니티5나 언리얼 엔진등에서 해야만 했던 코딩작업을 간단하게 마칠 수 있다는 장점이 있어 보입니다. 다만 이 컨스트럭트2가 제공하지 않는 기능이라고 해야 할까요? 저렇게 Behaviors에 없는 내용은 추가하려고 하면, 다른 제작툴을 써야만 하는 것이 아닌가 하는 생각이 듭니다.




마지막으로 이 기사가 원래는 3부작인데, 아마 수학동아 7월호에 게임을 구성하는 전체적인 '알고리즘'이 있을 것으로 생각이 됩니다. 하지만 이 부분을 놓친게 아쉽기는 하지만, 그래도 아마추어가 아이디어와 약간의 그림 실력만 있으면 자신만의 게임을 만들 수 있다는 점에서 뭐라고 해야 할까요? 수학과 상관이 없어 보였지만, 있다면 있는 물건을 접할 수 있다는 점에서 의의를 찾아야 겠습니다.

저작자 표시
신고

안녕하세요?


일단 기사에 소개된 '게임 엔진'이라는 것에 대해서 간단하게 소개를 먼저 해야만 하겠습니다. 일반적으로 게임 제작자가 게임을 만들기 위해서는 처음부터 '제작을 위한 도구'를 만들 수도 있지만, 이미 제공이 되는 '게임제작'에 필요한 도구 모음집을 사용할 수도 있습니다. 비유하자면 '게임'이라는 '철로된 도구'를 만드는데 필요한 '대장간 망치'가 '게임엔진'이라고 해야 할까요?


제가 열심히 독학하고 있는 '유니티5'도 실은 게임 엔진이며, 아마 게이머라면 들어본 적이 있는 '언리얼 엔진'도 실은 게임을 만들어 주는 도구라고 보시면 됩니다. 아무튼 이와 관련된 이야기도 하자면 끝이 없지만, 왜 갑자기 게임엔진을 이야기 하느냐 하면, 수학동아 2017년 8월호를 읽던 중에, 제가 생각하기에는 수학과 아무런 관련이 없을 줄 알았던 '게임엔진'에 대한 기사가 올라와 있기에 이를 리뷰해 보고자 합니다.



먼저 기사는 시작하자마자 '컨스트럭트2'라는 게임엔진에 대해서 소개를 하고 있습니다. 왜 이런 게임 엔진을 소개 하였는가 하면, 미리 정의된 명령어 블록을 끌어와서 '드래그 앤 드롭'방식으로 프로그래밍을 하는데, 아무래도 제가 공부를 해본 적이 있는 '앱 인벤터2'와 유사한 방식을 사용하는 것이 분명해 보이는데, 이 이유로 수학동아에서 이 '컨스트럭트2'를 소개하는 것이 아닐까 하는 생각이 들었습니다.




다만 아쉬운점이라면, 기사에서 소개하기로는 [웹과 모바일에서 게임을 만드는데 유용해요]라고 하기는 했습니다만, 무료 버전의 컨스트럭트2의 경우 iOS와 구글 앱스토어 발매라고 해야 할까요? 여기로 게임을 만들어서 올리기 위한 기능은 무료버젼에서는 없다는 것입니다. 개인적으로는 이런 면에서는 제가 독학하고 있는 유니티5에 비해서 무언가 유감스러운 면이 있다는 생각이 듭니다.



기사에도 나와 있는 내용이지만, 9월호의 가사와 연동이 될 것을 염두해 두고서 컨스트럭트2에 대한 대략적인 사용법에 대해서 설명을 하고 있습니다. 기사-8월호 기사에서 소개하는 부분은 주로 '디자인'작업에 관계가 된 부분을 소개하고 있었습니다. 먼저 기본이라면 기본이 되는 프로젝트를 생성하고, 대략적인 런너 게임을 구성하는 방법을 소개하고 있는데, 워낙에 이 '컨스트럭트2'라는 게임 엔진이 직관적으로 사용이 가능해서 인지는 몰라도, 기사에 올라온 설명은 간편한 편입니다.



다만 기사의 내용에서 한가지 아쉬웠던 점이라면, 지면의 부족으로 인해서 원래는 게임엔진에서 상당히 중요하며, 설명을 많이 요구하는 부분에 대해서는 아주 대략적인 면만 설명하고 넘어가는 것을 볼 수 있었습니다. 때문에 예전에 '게임엔진'에 대해서 전혀 공부를 하지 않았거나 접해본 적이 없다면 기사의 내용을 이해하는데 상당히 어려움이 있으리라 예상이 됩니다.




다만 이 한전된 지면에도 불구하고 기사는 '컨스트럭트2'만이 가지는 특징을 직관적으로 알 수 있도록, 게임의 화면을 구성하는 여러가지 요소에 대해서, 어떻게 어떤 '요소'를 배치해야 되는지를 자세하게 설명하고 있ㅅ브니다. 이런 면에서 볼 때 수확동아의 독자가 기사만을 읽고서, 간단한 게임을 하나 만들어 보는 것이 가능하도록 '정보를 전달'하고 있다고 해야 할까요? 간단하지만, 설명대로 하면 게임하나 제작이 가능해 보입니다.


다만 한가지 아쉬운 점이라면, 기사 자체가 2개의 과월호에 걸쳐서 이어지는 형태이기 때문에, 뒤에 있는 나머지 작업인 '프로그래밍'에 대한 부분은 없다는 것이 아쉬웠습니다. 이에 대해서는 수학동아 9월호에 있는 기사를 읽고서, 나중에 추가적인 내용을 포스팅 하여야 하겠다는 생각이 듭니다. 기존의 수학이 이런 게임엔진까지 다루고 있다는 점에서, 무언가 신선하다는 생각이 들었습니다.

저작자 표시
신고

안녕하세요?


유니티5를 독학하면서 [실전! 유니티5로 소셜네트워크 게임 만들기]란 책의 챕터6를 마음같아서는 하루안에 끝내고 싶었습니다만, 현실은 그리 녹녹치 않아서 몇 일에 걸쳐서 겨우 챕터6를 끝낼 수 있으리라 생각이 됩니다. 아무튼 계속 고민해봐야 해답은 나오지 않으니, 실습에 들어가 보도록 하겠습니다.



먼저 타샤렌(Tasharen)사의 홈페이지에 접속해서 NGUI라고 해서 유저 인터페이스(UI)를 만드는 것을 도와주는 에셋인 NGUI를 찾아가 보도록 하겠습니다.



제 경우에는 그 아래에 있는 프리버젼으로 다운로드 하였습니다. 



하드 디스크 드라이브상에 있는 다운로드한 NGUI의 에셋파일을 그냥 더블 클릭만 하면 알아서 유니티5에 인스톨이 다 되었습니다.



유니티5를 실행중에 NGUI의 무료버젼을 다운로드 받아서 실행시켰기 때문에, 여기서는 그냥 위 스크린샷처럼 Import를 누르기만 하면 모든 작업이 완료되었습니다.



실제 유니티5의 맨 윗줄에 있는 메뉴를 보면 NGUI라는 에셋이 설치됨으로써 새로이 생긴 메뉴가 있는 것을 볼 수 있습니다. 다만 책에서 나와 있는 메뉴가 조금 달라서, 실습을 하면서 애를 먹었습니다.



성안당 홈페이지에서 다운로드 받은 예제파일을 그대로 압축을 풀었습니다. 그리고 이걸 이제 유니티5에 추가를 해야 하는데......



일단 어떻게 하면 가장 편한지 몰라서 유니티5의 Project윈도우에서 ui라는 폴더를 생성하고 나서, 일일히 Import New Asset메뉴를 써서 하나하나 가져오도록 하였습니다.



일단 모든 그림을 다 가져오고 난 다음의 모습입니다. 이제 아틀라스라고 해서, 각각 떨어져 있는 이미지를 한 묶음으로 묶는 작업을 시작해야 한다고 합니다.



책에서와 달리 그냥 NGUI메뉴에서 다음과 같이 볼 수 있는 메뉴를 눌러서 실행 시키도록 합니다.



그런데 여기까지 와서 이제서야 깨닫은 것이지만, 예제 파일을 잘못 선택하였습니다. 그래서 하는 수 없이 여기에 있는 내용을 다 지우고 새로 성안당 홈페이지에서 예제파일을 다운로드 받아서 풀어야만 했습니다.



그리고 이제서야 알아낸 것이지만, 일일히 유니티5에 Import New Assets를 할 필요없이, 그냥 프로젝트가 설치된 폴더에 보면 Assets라는 폴더가 있습니다. 여기다가 폴더하나 새로 만들고, 거기에 드래그 앤 드롭으로 한꺼번에 올리면 해결이 되는 문제였습니다.



이번에야 말로 제대로 아틀라스(Atlas)를 실행시킨 다음에, 방금 생성한 ui폴더안의 이미지 파일들을 한꺼번에 선택하면-Shift+클릭으로 모두 선택을 하면 자동으로 위 스크린샷의 우측에 있는 아틀라스뷰에 이미지파일이 들어가는 것을 볼수 있습니다. 그러면 이제 초록색의 Create라는 버튼을 눌러서 아틀라스 파일을 생성하도록 합니다.



다음으로 일어나는 변화는 이렇게 Add/Update All이라는 버튼이 나옵니다. 이 버튼을 눌러서 방금전에 선택한 이미지 파일을 모두 다 등록이 되도록 해 줍니다.



완성이 되면, 위 스크린샷에 보시는 것처럼 New Atlas라는 것으로 3개의 파일이 생성되는 것을 보실 수 있습니다. 아직 저로서는 저 3개의 파일이 각각 무슨 역할을 하는 지를 모르겠습니다.



다음으로는 Project 윈도우의 Create버튼을 눌러서 Prefab이라는 것을 만들도록 합니다. 제 경우에는 Project윈도우에서 가장 상위에 있는 Assets폴더에서 마우스를 우클릭해서 띄운 메뉴를 이용해서 Prefab을 생성하였습니다.



최종적인 결과물로, UI라는 프리펩 파일이 생성되어 있는 것을 볼 수 있습니다. 이제 다음은 본격적인 유저 인터페이스를 작업하는 작업으로 갑니다.



NGUI의 메뉴를 열어서, Open the UI Wizard를 클릭하도록 합니다.



이후에 뜨는 UI Tool이라는 것을 그대로 Create Your UI라는 것을 눌러서 작업을 시작하도록 합니다.



유니티5의 Hierarchy윈도우를 보면, 위 스크린샷과 같이 UI Root(2D)라는 것이 생성된 것을 볼 수 있습니다. 이제 다음 작업으로 스프라이트를 생성하러 가겠습니다.



NGUI의 Create a Sprite메뉴를 눌러서 스프라이트를 생성하도록 하겠습니다.



스프라이트 생성 직후의 유니티5의 화면입니다. 일단 책에서 이야기하기를 스프라이트로 정해지는 이미지는 랜덤이라는 데 아마 아틀라스에 추가시킨 이미지 중에서 랜덤으로 정해지는 것 같습니다. 이제 책에서 했는 것과 같이 rank라는 이미지를 띄우도록 해보겠습니다.



위 스크린샷은 Hierarchy윈도우에서 sprite를 선택한 상태에서 띄워진 Inspector윈도우입니다. 여기서 위 스크린삿에서 붉은 밑줄을 친 곳을 눌러서 아래와 같은 화면이 되도록 합니다.



위 스크린샷을 보시면 New Atlas에 추가되었던 이미지 파일이 뜨는 것을 볼 수 있습니다. 여기서 rank라는 이미지 파일을 골라서 바꾸도록 합니다.



책에서는 다르게 설명이 되어 있어서 불안한 면이기는 합니다만, 제 경우에는 NGUI와 유니티5의 세부적인 버젼이 바뀌어서 그런지 몰라도, 하는 수 없이 Make Pixel-Perfect를 선택하여서 rank라는 이미지가 원래 가지고 있는 Scale인 800X480에 걸맞는 사이즈로 띄우도록 해야 했습니다.


이제 다음은 해상도를 맞추는 작업에 들어가 보도록 하겠습니다.



일단 해상도는 이전에 보였는 ShooterGame의 800X480입니다. 하지만, 해상도가 맞지 않는 것을 볼 수 있는데, 위 스크린샷은 먼저 Hierarchy란에 있는 Scale Style이라는 항목을 변경해야 합니다. 그런데 여기도 책에서 설명하는 것과 100% 맞지 않아서 mobile이 관련이 되어 있는 스타일을 선택하자 그다지 게임화면의 해상도에 rank라는 배경화면이 제대로 맞지 않았습니다.


Pixel Perfect를 선택해서 제대로 맞추고 난 다음의 화면입니다. 이렇게 제대로 화면을 맞추고 나서 해상도를 맞출 수 있었습니다. 이 작업은 이전에 유니티5의 기본 기능을 가지고서 할 때 보다는 더 간단하다는 생각이 들었습니다. 일단 2/5정도는 했다는 생각이 듭니다. 하지만 남은 부분은 코딩을 많이 하는 부분이 많아서 얼마나 시간이 더 걸릴지 모르겠습니다.

저작자 표시
신고

+ Recent posts

티스토리 툴바