Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

게임 영역 설정하기

첫 번째 부분에서는 게임 영역을 설정하겠습니다. 시작 애셋을 가져오고 게임 씬을 설정하는 것부터 시작해 보겠습니다.

이 튜토리얼에서 사용할 3D 모델과 소리가 포함된 Godot 프로젝트를 준비했으며, 이는 index 페이지에 링크되어 있습니다. 아직 다운로드하지 않았다면, 여기에서 아카이브를 다운로드할 수 있습니다: Squash the Creeps assets.

Once you've downloaded it, extract the .zip archive on your computer. Open the Godot Project Manager and click the Import button.

../../_images/01.import_button.webp

가져오기 팝업에서 새로 만들어진 디렉터리 3d_squash_the_creeps_startert/의 전체 경로를 입력합니다. 오른쪽에 있는 찾아보기 버튼을 클릭하여 파일 브라우저를 열고 폴더에 있는 project.godot 파일로 이동할 수 있습니다.

../../_images/02.browse_to_project_folder.webp

가져오기을 클릭하여 편집기에서 프로젝트를 엽니다.

../../_images/03.import_and_edit.webp

프로젝트가 이전 Godot 버전으로 생성되었다는 알림 창이 나타날 수 있습니다. 전체 프로젝트 변환을 클릭하여 프로젝트를 현재 Godot 버전으로 변환하세요.

../../_images/import_project_to_4.x_prompt.webp

If it doesn't open immediately, open the project from your project list.

시작 프로젝트에는 아이콘과 두 개의 폴더인 art/fonts/가 포함되어 있습니다. 여기에는 게임에서 사용할 아트 애셋과 음악이 들어 있습니다.

../../_images/04.start_assets.webp

두 개의 3D 모델, player.glb``와 ``mob.glb, 그리고 이 모델들에 속하는 몇 가지 소재와 음악 트랙이 있습니다.

플레이 가능 영역 설정하기

루트로 평범한 Node를 사용하는 메인 씬을 만들어 보겠습니다. 독에서 왼쪽 상단의 "+" 아이콘으로 표시된 자식 노드 추가 버튼을 클릭하고 Node를 더블 클릭합니다. 노드 이름을 Main으로 지정합니다. 노드 이름을 바꾸는 또 다른 방법은 Node를 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기(또는 F2)를 선택하는 것입니다. 또는 씬에 노드를 추가하려면 Ctrl + A(macOS에서는 Cmd + A)를 누를 수 있습니다.

../../_images/05.main_node.webp

Ctrl + S(macOS에서는 Cmd + S)를 눌러 씬을 main.tscn으로 저장합니다.

먼저 캐릭터가 떨어지지 않도록 바닥을 추가하겠습니다. 바닥, 벽, 천장과 같은 정적 충돌체(static collider)를 만들려면, StaticBody3D 노드를 사용할 수 있습니다. 콜리전 영역을 정의하기 위해 CollisionShape3D 자식 노드가 필요합니다. Main 노드를 선택한 상태에서 StaticBody3D 노드를 추가하고, 그 다음으로 CollisionShape3D를 추가합니다. StaticBody3D의 이름을 Ground로 변경합니다.

../../_images/adding_static_body3D.webp

씬 트리는 다음과 같아야 합니다

../../_images/06.staticbody_node.webp

CollisionShape3D 옆에 경고 표시가 나타나는 이유는 모양을 정의하지 않았기 때문입니다. 아이콘을 클릭하면 더 많은 정보를 제공하는 팝업이 나타납니다.

../../_images/07.collision_shape_warning.webp

모양을 만들려면 CollisionShape3D 노드를 선택하고 인스펙터로 이동하여 모양 속성 옆에 <비었음> 필드를 클릭합니다. 새로운 BoxShape3D를 만듭니다.

../../_images/08.create_box_shape3D.webp

상자 모양은 평평한 바닥과 벽에 적합합니다. 두께가 있어 빠르게 움직이는 물체도 안정적으로 막을 수 있습니다.

뷰포트에 박스의 와이어프레임이 세 개의 주황색 점과 함께 나타납니다. 이 점을 클릭하고 드래그하여 모양의 범위를 상호작용적으로 편집할 수 있습니다. 또한 인스펙터에서 크기를 정확하게 설정할 수도 있습니다. BoxShape3D를 클릭하여 리소스를 확장합니다. 크기를 X축에 60, Y축에 2, Z축에 60으로 설정합니다.

../../_images/09.box_size.webp

콜리전 모양은 보이지 않습니다. 이에 따라 시각적 바닥을 추가해야 합니다. Ground 노드를 선택하고 MeshInstance3D를 자식 노드로 추가합니다.

../../_images/10.mesh_instance3d.webp

인스펙터에서 메시 옆에 필드를 클릭하고 BoxMesh 리소스를 만들어 보이는 상자를 만듭니다.

../../_images/11.box_mesh.webp

디폴트로는 크기가 너무 작습니다. 상자 아이콘을 클릭하여 리소스를 확장하고 크기를 각각 60, 2, 60으로 설정합니다.

../../_images/12.cube_resized.webp

격자와 뷰포트의 파란색 및 빨간색 축을 덮는 넓은 회색 슬래브가 보일 것입니다.

바닥 격자를 볼 수 있도록 땅을 아래로 이동하겠습니다. 이를 위해 격자 스냅 기능을 사용할 수 있습니다. 3D 편집기에서 격자 스냅은 2가지 방법으로 활성화할 수 있습니다. 첫 번째는 스냅 사용 버튼을 누르거나 Y 키를 누르는 것입니다. 두 번째는 노드를 선택하고 기즈모의 핸들을 드래그한 다음 :kbd:`Ctrl` 키를 누른 상태에서 Ctrl 키를 누른 채로 클릭하여 스냅을 활성화하는 것입니다.

../../_images/use_snap.webp

여러분이 선호하는 방식으로 스내핑을 설정하여 시작하세요. 그런 다음 Y 축을 사용하여 Ground 노드를 이동합니다 (기즈모에서 녹색 화살표).

../../_images/move_gizmo_y_axis.webp

참고

위 이미지와 같이 3D 오브젝트 조작기를 볼 수 없으면, 뷰 위의 툴바에서 선택 모드가 활성화되어 있는지 확인하세요.

../../_images/14.select_mode_icon.webp

편집기 격자를 보이게 하기 위해 땅을 아래로 1미터 이동합니다. 뷰포트의 왼쪽 하단에 있는 레이블이 노드를 얼마나 이동시키고 있는지 알려줍니다.

../../_images/15.translation_amount.png

참고

Ground 노드를 아래로 이동하면 자식 노드들도 함께 이동합니다. Ground 노드를 이동하도록 하고, 절대 *MeshInstance3D*나 *CollisionShape3D*를 이동하지 않도록 주의하세요.

결국 ``Ground``의 transform.position.y는 -1이 되어야 합니다

../../_images/ground_down1meter.webp

씬이 모두 회색으로 보이지 않도록 방향성 조명을 추가하겠습니다. Main 노드를 선택하고 자식 노드로 DirectionalLight3D를 추가합니다.

../../_images/create_directional_light3d.webp

DirectionalLight3D 노드를 이동하고 회전시켜야 합니다. 이동 조작기의 녹색 화살표를 클릭하고 드래그하여 위로 이동시키고, 빨간색 호를 클릭하고 드래그하여 X축을 기준으로 회전시켜 지면이 밝게 빛나도록 합니다.

인스펙터에서 체크박스를 클릭하여 그림자를 켭니다.

../../_images/16.turn_on_shadows.webp

이 시점에서 프로젝트는 다음과 같아야 합니다.

../../_images/17.project_with_light.webp

그것이 우리의 시작점입니다. 다음 부분에서는 플레이어 씬과 기본 이동을 작업할 것입니다.