본문 바로가기
게임 프로그래밍/게임개발 중급

게임개발 중급(21) - 3D 게임 만들기(1)

by jyppro 2023. 5. 12.

3D 게임 만들기(1)

이전에 저희는 2D 플랫포머 게임을 만들어 보면서 유니티로 게임 만드는 방법과 감각을 터득했습니다. 추가적으로 유니티에서 활용될 수 있는 다양한 요소를 정리하여 사용할 수 있는 기능의 범위도 더욱 넓어졌습니다. 이제 2D가 아닌 3D 프로젝트를 생성하여 게임을 만드는 것에 대해 이야기를 해볼까 합니다.

 

3D 프로젝트 기본구조

3D-프로젝트
3D 프로젝트 화면구성

3D 게임을 만들기 위해선 역시 3D 프로젝트를 생성해야 합니다. 기본 탬플릿으로 유니티 허브에 있는 3D 프로젝트를 생성하면, 위 사진과 같은 화면으로 구성된 프로젝트가 생성됩니다. 화면의 레이아웃은 사용자마다 다를 수 있습니다.

 

3D 프로젝트를 생성하면 샘플 씬 위에 두가지가 기본적으로 생성됩니다. Main Camera와 Directional Light 입니다.

이전에 유니티 활용 에서도 이야기 했었지만, 다시 간략하게 말씀드리면 게임에서 바라보는 시각을 나타내는 것이 카메라, 게임에서의 광원, 즉 빛의 표현을 하는 것이 라이트 입니다. 카메라와 라이트 둘 다 다른종류도 존재하지만, 3D 프로젝트를 생성하면 저 두가지가 기본으로 생성됩니다.

 

 

Gizmo(기즈모)

기즈모
기즈모

2D 게임을 만들 때도 사용했지만, 3차원의 공간을 다루는 데에 있어서 유니티에 꼭 필요한 기즈모에 대해서 먼저 설명드리겠습니다.

 

유니티의 기즈모(Gizmo)는 에디터 상에서 씬 뷰(Scene View)나 게임 뷰(Game View)에서 오브젝트를 선택했을 때 나타나는 시각적인 표시입니다. 기즈모는 선택한 오브젝트의 위치, 회전, 크기 등을 시각적으로 보여주며, 이를 통해 유니티 에디터에서 더욱 쉽게 오브젝트를 조작하고 편집할 수 있습니다. 기즈모의 (X, Y, Z) 좌표는 삼원색인 (R,G,B)로 표시됩니다.

기즈모는 다양한 타입이 있으며, 사용자가 직접 만들어 사용할 수도 있습니다. 기본적으로 유니티에서 제공하는 기즈모에는 다음과 같은 것들이 있습니다.

- 이동 기즈모
선택한 오브젝트의 위치를 조절할 때 사용하는 기즈모입니다. 화살표 모양으로 되어 있으며, X, Y, Z 축에 따라 오브젝트를 이동시킬 수 있습니다.

- 회전 기즈모
선택한 오브젝트의 회전을 조절할 때 사용하는 기즈모입니다. 원형으로 되어 있으며, 마우스 드래그를 통해 오브젝트를 회전시킬 수 있습니다.

- 크기 조절 기즈모
선택한 오브젝트의 크기를 조절할 때 사용하는 기즈모입니다. 박스 모양으로 되어 있으며, X, Y, Z 축에 따라 오브젝트의 크기를 조절할 수 있습니다.

- 편집 기즈모
선택한 오브젝트를 편집할 때 사용하는 기즈모입니다. 이동, 회전, 크기 조절 등을 하나의 기즈모에서 모두 처리할 수 있습니다.

기즈모는 더욱 다양한 방식으로 사용될 수 있으며, 예를 들어 특정 스크립트에서 원하는 형태의 기즈모를 만들어 사용할 수도 있습니다. 이를 통해 사용자가 원하는 방식으로 오브젝트를 편집할 수 있으며, 게임 제작을 보다 쉽고 효율적으로 할 수 있습니다.

 

Material(머티리얼)

머티리얼
머티리얼

유니티에서 머티리얼(Material)은 3D 모델이나 2D 스프라이트 등에 적용할 수 있는 렌더링 속성의 모음입니다. 머티리얼은 모델이나 스프라이트의 색상, 텍스처, 광택, 반사, 그림자 등의 렌더링 특성을 결정하는 데 사용됩니다. 이러한 머티리얼은 유니티의 에디터 상에서 간단한 드래그 앤 드롭을 통해 쉽게 적용할 수 있습니다.

유니티에서 제공하는 머티리얼은 Standard Shader를 기반으로 한 다양한 종류가 있습니다. 머티리얼을 적용할 오브젝트를 선택하고, Inspector 창에서 Materials 속성에 있는 Add 버튼을 클릭하여 새로운 머티리얼을 추가할 수 있습니다. 추가된 머티리얼은 Inspector 창에서 수정할 수 있으며, 색상, 텍스처, 광택, 반사 등 다양한 렌더링 속성을 설정할 수 있습니다.

머티리얼은 ShaderLab 언어를 사용하여 직접 만들 수도 있습니다. ShaderLab은 유니티에서 제공하는 셰이더(Shader) 작성 언어로, 새로운 머티리얼을 만들거나 기존 머티리얼의 렌더링 속성을 커스터마이징할 수 있습니다.

머티리얼은 게임의 시각적인 품질에 큰 영향을 미치기 때문에, 머티리얼의 속성을 효과적으로 활용하여 게임의 그래픽 퀄리티를 높일 수 있습니다. 또한, 적절한 머티리얼 사용은 게임의 최적화에도 도움을 줄 수 있습니다. 따라서 머티리얼은 게임 제작에서 매우 중요한 역할을 합니다.

 

<NEXT>

게임제작에 나서기 전에, 3D 프로젝트에서 2D와는 다른 방식으로 사용되는 것들이 있는데 그 중 Gizmo와 Material에 대해서 잠깐 알아보았습니다. 다음부터는 2D 플랫포머 게임 만들기 처럼 예제 게임을 만들어 보는 시간을 가지겠습니다. 감사합니다.