타지않는 놀이터

[고도4] Part.1 - 3 그래픽 준비와 노드와 씬 본문

강좌/Godot 4 - Part.1

[고도4] Part.1 - 3 그래픽 준비와 노드와 씬

김메가 2023. 12. 16. 15:49

게임을 만들려면 기본적인 그래픽이 있어야 한다. 본 강좌에서 활용할 그래픽 파일은 다음 링크에서 다운받을 수 있다.

https://i-mega.itch.io/sideview-dummy-graphics

platform.zip파일과 main_character.zip  2개의 압축파일을 다운받고 압축을 풀어준다.

압축을 푼 파일들을 폴더 째로 프로젝트 폴더에 집어넣자, 또는 에디터 화면에 드래그하자. 그러면 파일 시스템 독에서 해당 파일을 확인할 수 있을 것이다.

파일 시스템에서 새로운 폴더 2(graphic, character)를 생성하여 스크린샷과 같이 파일들의 경로를 종류에 맞게 정리해주자.

 

이제 그래픽 파일은 준비가 되었으니, 고도엔진으로 게임을 만들기 위하여 반드시 알아야 하는 개념인 [노드][]을 학습해보자.

씬 독에서 [2D Scene]버튼을 클릭하자. [Node2D]라는 것이 생성될 것이다. 이는 [노드]의 일종이다.

추가적으로 [노드]를 생성하려면 씬 독의 왼쪽 위 [+]버튼을 클릭하면 된다.

[노드]의 다양한 종류들이 나열되고, 원하는 것을 선택하면 해당 종류의 [노드]가 씬 독과 2D 스크린에 생성된다.

 

[노드](Node), 게임을 구성하는 부품이다. 노트북을 생각해보자. 노트북을 만드는 공장에서는 다음과 같은 여러 종류의 부품들을 조립하게 된다.

-      그래픽을 표시하는 모니터

-      사용자의 입력을 받는 키보드

-      소리를 출력하는 스피커

-      연산을 담당하는 프로세서

마찬가지로 고도엔진에는 그래픽을 표시하는 [노드], 소리를 재생하는 [노드], 물리 연산을 적용하는 [노드]등 여러가지 종류의 [노드]들이 존재하며 우리는 다양한 [노드]들을 적절하게 조립하면서 게임을 개발하게 된다. [노드]를 조립하는 것에 정답은 없으며 어떤 구조로 어떤 배치로 [노드]를 조립할지는 개발자 스스로가 정하는 것이다.

[노드]를 이용해서 게임 화면을 꾸며보자. 이번에 필요한 노드는 [Sprite2D]이다. [Sprite2D]2D 화면상에 이미지를 띄우는 기능을 갖고 있다. 위에서 배운 대로 씬 독을 이용해서 [Sprite2D]노드를 생성해주자. 이때 수많은 [노드]를 일일이 마우스로 뒤지는 것은 시간이 오래 걸리니 스크린샷처럼 노드 생성 창에서 검색(Search)칸에 ‘Sprite2D’를 입력하여 찾자.

이렇게 [Sprite2D]가 생성되었으면 이번에는 [Sprite2D]를 선택한 상태로 인스펙터를 보자.

[노드]를 선택하면 이렇게 인스펙터에서 해당 [노드]의 속성들이 나타나게 된다. 속성 중에서 ‘texture’라는 속성에 주목하자.

파일 시스템에서 platform폴더에 들어있는 platform.png파일을 이 texture속성에 드래그하면 2D 스크린에 platform.png의 그래픽이 표시된다. [Sprite2D]는 이렇게 자신의 texture속성에 할당된 그래픽을 2D 스크린에 표시해주는 역할을 가진 [노드]인 것이다.

2D관련 노드는 2D 스크린 위쪽의 [툴 바]에서 제공하는 도구를 이용하여 위치 이동, 각도 조절, 크기 조절이 가능하다. 스크린샷에 강조된 4개의 툴은 각각 선택, 이동, 회전, 크기 툴인데, 각 툴 위에 마우스를 올리고 가만히 있으면 설명이 나타난다. 각각의 툴로 전환하는 단축키는 Q, W, E, R이다.

 

특히 선택 툴은 나머지 3개 툴의 기능을 전부 가지고 있으니 익숙해지면 유용하다.

-      Ctrl키를 누르고 있을 때는 회전 툴의 역할을 가진다.

-      Alt키를 누르고 있을 때는 이동 툴의 역할을 가진다.

-      CtrlAlt를 동시에 누르고 있을 때는 크기 툴의 역할을 가진다.

 

또한 마우스 휠을 굴리면 2D스크린의 배율을 조절할 수 있다.

여러 개의 Sprite2D를 생성하고 조작하여 게임화면을 꾸며보자.

) 씬 독에서 [노드]를 선택하고 Ctrl+D를 입력하면 복제할 수 있다.

2) 씬 독에서 더 위에 위치하는 노드일수록 2D 스크린에 먼저 그려지기 때문에 더 아래에 있는 노드에 가려진다. 그러니 앞으로 나와야 하는 노드는 씬 독에서 더 아래에 위치시키자.

이제 지금까지 만든 것들을 저장하자. Ctrl+S를 입력하면 저장할 수 있다. ‘stage_1.tscn’이라는 이름으로 저장하자.

저장하면 위의 탭에 그 이름이 표시되고 바로 오른쪽의 X버튼을 클릭하여 탭을 종료시켜도 된다.

이후에는 파일 시스템에서 저장된 것을 더블클릭하여 다시 열 수 있다.

이렇게 우리가 stage_1이라는 이름을 붙여 저장한 것은 결국 씬 독에 나타나 있던 노드들을 하나의 파일로 묶은 것이다. 그리고 이렇게 저장한 것을 [씬]이라고 부른다.

[씬](Scene)이란, 하나 이상의 [노드]들의 정보를 배치 구조와 함께 저장한 것이다. 씬 독의 이름이 ‘씬 독’인 이유도 현재 열린 [씬]에 포함된 노드들을 보여주는 영역이기 때문에 ‘씬 독’인 것이다.

[씬]은 그저 여러 개의 [노드]들을 묶은 것일 뿐이기에 하나의 [노드]처럼 또 다른 [씬]에 배치하는 것 또한 가능한데, 이 부분은 앞으로 우리가 이 강좌를 진행하면서 실습하게 될 것이다.