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

게임개발 중급(20) - 유니티 엔진 활용(3)

by jyppro 2023. 5. 10.

유니티 엔진 활용(3)

지난 시간에는 Directional Light, Audio Source, Particle System 그리고 Prefab에 대해 알아보았습니다. 이번을 마지막으로 유니티에서 사용하기 좋은 컴포넌트 혹은 도구에 대한 이야기를 마무리 짓겠습니다.

 

Animator(애니메이터)

Animator 컴포넌트는 게임 오브젝트의 애니메이션을 관리하는 데 사용됩니다. 이를 활용하여 캐릭터나 오브젝트의 움직임에 따라 애니메이션을 변경하거나, 상호작용하는 오브젝트의 애니메이션을 구현할 수 있습니다.

 

Animator는 두 가지 주요 요소로 이루어져 있습니다.

1. Animation Clips
Animation Clip은 특정 애니메이션의 시간과 프레임에 대한 정보를 포함합니다. 애니메이션 클립은 캐릭터의 움직임, 공격, 점프 등 특정 동작을 구성하는 움직임들의 모음입니다. 애니메이션 클립을 만들 때는 캐릭터의 움직임을 촬영한 비디오나 3D 모델링 소프트웨어에서 만들 수 있습니다.

2. Animator Controller
Animator Controller는 Animation Clip을 조합하여 캐릭터의 움직임을 제어합니다. Animator Controller를 사용하면 다양한 상황에서 캐릭터의 동작을 바꿀 수 있습니다. Animator Controller는 State, Transition, Parameter 등의 요소로 이루어져 있습니다.

State : Animator Controller에서 특정한 애니메이션 클립이나 모션을 의미합니다. 예를 들어 "Idle", "Walk", "Run" 등이 State가 될 수 있습니다.
Transition : State 간의 전이를 정의합니다. 예를 들어, "Walk" 상태에서 "Run" 상태로 전환할 때 어떤 조건이 충족되어야 하는지를 정의합니다.
Parameter : Animator Controller에서 사용되는 변수를 정의합니다. 예를 들어, "Speed"라는 파라미터를 만들고 이를 통해 캐릭터의 움직임을 제어할 수 있습니다.

 

Canvas(캔버스)

씬에서의-캔버스
씬에서 보이는 캔버스 속 UI들

캔버스(Canvas)는 게임 UI를 만들 때 사용하는 기본적인 요소입니다. 캔버스는 게임 오브젝트에 추가되며, UI 요소를 배치할 수 있는 영역을 제공합니다.

캔버스는 다음과 같은 특징을 가지고 있습니다.

1. 해상도 독립적
캔버스는 해상도 독립적으로 UI 요소를 표시합니다. 즉, 다양한 디바이스의 해상도에 맞춰 UI 요소의 크기와 위치를 자동으로 조절합니다.

2. Render Mode
캔버스는 두 가지 렌더 모드를 지원합니다. 첫 번째는 Screen Space, 두 번째는 World Space입니다. Screen Space는 UI 요소를 화면에 그리는 것이며, World Space는 UI 요소를 3D 공간에 배치하는 것입니다.

3. Sorting Order
캔버스는 Sorting Order를 사용하여 UI 요소의 그리기 순서를 제어합니다. Sorting Order는 UI 요소의 순서를 결정하며, 높은 숫자가 낮은 숫자보다 앞에 그려집니다.

4. UI 요소
캔버스에는 다양한 UI 요소를 배치할 수 있습니다. 예를 들어, Text, Image, Button, Slider, Scroll View 등의 요소를 배치할 수 있습니다. 각 요소는 자체적으로 기능과 속성을 가지고 있으며, 이를 통해 다양한 UI를 만들 수 있습니다.

5. EventSystem(이벤트 시스템)
캔버스는 Unity UI 이벤트 시스템을 사용하여 UI 요소와 상호작용합니다. 이벤트 시스템은 UI 요소에 대한 입력 이벤트를 처리하고, 이벤트를 처리할 수 있는 함수를 호출합니다.

캔버스를 사용하면 Unity의 쉬운 UI 작업을 통해 다양한 게임 UI를 만들 수 있습니다. 또한, 해상도 독립적이기 때문에 여러 디바이스에서 일관된 UI를 제공할 수 있습니다.

 

Cinemachine(시네머신)

시네머신은 유니티에서 카메라 제어와 애니메이션을 쉽게 구현할 수 있게 해주는 패키지입니다. 시네머신은 Unity Asset Store에서 무료로 다운로드할 수 있습니다.

시네머신을 사용하면 다양한 카메라 모션과 애니메이션을 지원합니다. 또한, 다양한 기능을 제공하여 게임 제작에 필요한 다양한 카메라 제어 기능을 제공합니다.

시네머신의 핵심 기능으로는 다음과 같은 것들이 있습니다.

1. 카메라 추적
시네머신은 카메라가 특정 타깃 오브젝트를 추적하도록 구성할 수 있습니다. 예를 들어, 캐릭터나 적을 추적하는 카메라, 혹은 특정 지점을 추적하는 카메라 등을 구현할 수 있습니다.

2. 카메라 블렌딩
시네머신은 두 개 이상의 카메라를 자연스럽게 전환하도록 구성할 수 있습니다. 예를 들어, 게임 플레이 중에 뷰를 전환하거나, 특정 이벤트가 발생했을 때 카메라를 전환하는 등의 기능을 구현할 수 있습니다.

3. 레이어별 카메라 설정
시네머신은 레이어별로 카메라 설정을 변경할 수 있는 기능을 제공합니다. 예를 들어, UI와 게임 플레이를 따로 설정하거나, 다른 캐릭터나 오브젝트에 따라 카메라 설정을 변경하는 등의 기능을 구현할 수 있습니다.

4. 카메라 애니메이션
시네머신은 카메라를 애니메이션으로 제어할 수 있습니다. 예를 들어, 특정 이벤트 발생 시 카메라가 흔들리거나, 특정 지점으로 부드럽게 이동하는 등의 효과를 구현할 수 있습니다.

시네머신은 유니티에서 게임 제작에 필요한 다양한 카메라 제어 기능을 제공하여 게임 제작을 보다 쉽고 빠르게 할 수 있도록 도와줍니다.

 

<NEXT>

이번에는 Animator, Canvas, Cinemachine에 대해 알아보았습니다. 이것으로 유니티에서 유용하게 쓰이는 도구 및 컴포넌트에 대한 이야기는 마치고, 이전에 진행했던 2D 플랫포머 게임 만들기에 이어서 3D 게임 만들기를 시작해 보겠습니다. 감사합니다.