본문 바로가기
디지털노마드

[5분개발] ChatGPT를 활용하여 플레이어 이동 방향에 따라 카메라 이동

by 인텔리노마드라이프 2024. 4. 22.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

 

이번 시간에는 CinemachineVirtualCamera를 사용해서

플레이어의 이동 방향에 따라 카메라가 따라가도록 설정하는 방법을 살펴보려고 해요. 

 

[CinemachineVirtualCamera 관련 기사를 준비 중인 IntelliOneStudio  개발자]

 

ChatGPT로 만든 앱 다운로드

CinemachineVirtualCamera 를 사용하는 방법을 알려줘

오늘도 편안하게 그리고 친근하게 아래와 같이 ChatGPT에게 질문했어요.

[질문] 안녕 ChatGPT, CinemachineVirtualCamera를 사용해서 Player 이동 방향에 따라 카메라를 이동하게 하고 싶어. 자세한 방법을 설명해줄래?

[답변]
Unity에서 CinemachineVirtualCamera를 사용하여 플레이어의 이동 방향에 따라 카메라가 따라가도록 설정하는 방법은 몇 가지 주요 구성 요소와 설정을 포함합니다. 이를 위해 Cinemachine의 강력한 기능을 활용하여 유연하고 동적인 카메라 시스템을 구축할 수 있습니다. 아래는 기본적인 설정 방법을 설명합니다:

1. Cinemachine 설치

Unity 프로젝트에 Cinemachine을 추가하지 않았다면, Unity의 Package Manager를 통해 설치해야 합니다.

  • Window > Package Manager에서 Cinemachine을 찾아서 설치합니다.

2. Cinemachine Virtual Camera 생성

  • Hierarchy 창에서 GameObject > Cinemachine > Cinemachine Virtual Camera를 선택하여 새로운 가상 카메라를 생성합니다.
  • 생성된 카메라를 선택하고, Inspector 패널에서 필요한 설정을 조정합니다.

3. Follow 대상 설정

  • 생성된 CinemachineVirtualCamera 객체의 Follow 속성에 플레이어 오브젝트를 드래그하여 설정합니다. 이렇게 하면 카메라가 플레이어를 따라 이동합니다.

4. LookAt 설정 (선택적)

  • 플레이어를 카메라가 항상 바라보게 하고 싶다면, LookAt 속성에 플레이어 오브젝트를 드래그하여 설정할 수 있습니다.

5. Dead Zone 설정

카메라가 플레이어의 작은 움직임에 반응하지 않도록 Dead Zone을 설정할 수 있습니다:

  • CinemachineVirtualCamera의 Inspector 패널에서 Body 탭을 열고, Dead Zone Width 및 Dead Zone Height를 조정합니다. 이 값들을 조금씩 늘려가면서 플레이어가 일정 범위 내에서 움직일 때 카메라가 움직이지 않도록 설정할 수 있습니다.

6. Damping 설정

카메라가 플레이어의 움직임을 부드럽게 따라가도록 Damping 값을 조정합니다:

  • CinemachineVirtualCamera의 Inspector 패널에서 Body 탭 아래에 있는 X Axis와 Y Axis에 대한 Damping 값을 설정합니다. 일반적으로 이 값들을 증가시키면 카메라의 움직임이 더 부드러워집니다.

7. 테스트 및 조정

  • 게임을 실행하여 카메라가 플레이어의 움직임에 따라 올바르게 반응하는지 테스트합니다. 필요에 따라 Damping, Dead Zone 등의 값을 조정하여 최적의 카메라 동작을 찾습니다.

이 설정을 통해 CinemachineVirtualCamera는 플레이어의 이동 방향에 따라 자연스럽게 따라가며, 게임 플레이의 몰입감과 시각적 효과를 크게 향상시킬 수 있습니다. 추가적인 Cinemachine의 기능을 활용하여 더 다양하고 복잡한 카메라 동작을 구현할 수도 있습니다.

 

2D Camera와 Virtual Camera 중 어떤 것을 선택?

그런데 2D Camera와 Virtual Camera 2개가 있어서 어떤 것을 생성해야 할지 궁금했어요.

CinemachineVirtualCamera 생성

 

[질문] 안녕 ChatGPT, 그런데 GameObject > Cinemachine > Virtual Camera or 2D 중 어떤 오브젝트를 생성해야할까?

[답변]

플레이어의 이동을 따라가는 카메라를 설정하기 위해 Cinemachine을 사용할 때, 플랫포머 게임이나 다른 2D 게임을 개발 중이라면 **Cinemachine 2D Camera**를 사용하는 것이 일반적으로 더 적합합니다. 이유는 다음과 같습니다:

Cinemachine 2D Camera

  • 특화된 2D 설정: Cinemachine 2D Camera는 2D 환경에 특화되어 있으며, 2D 게임의 특성을 고려한 기능들을 제공합니다. 예를 들어, 카메라는 기본적으로 z축 이동 없이 x와 y축으로만 움직이도록 설정되어 있습니다.
  • 간편한 설정: 2D 게임에 필요한 카메라 제어 설정들이 미리 구성되어 있어, 2D 게임에 적합한 카메라 동작을 손쉽게 설정할 수 있습니다.
  • 효과적인 제어: 게임에서 플레이어의 이동을 따라가거나, 화면 경계를 적절히 제어하는 등의 2D 특유의 요구 사항을 충족시키기에 적합합니다.

Cinemachine Virtual Camera

  • 보다 범용적: Cinemachine Virtual Camera는 2D와 3D 게임 모두에 사용할 수 있으며, 3D 게임에서의 복잡한 카메라 동작을 설정하는 데 더 많은 옵션을 제공합니다.
  • 3D 게임에 최적화: 3D 환경에서의 복잡한 카메라 움직임을 구현하는 데 필요한 다양한 파라미터를 설정할 수 있습니다.

어떤 것을 선택해야 할까요?

  • 2D 게임 개발: Cinemachine 2D Camera를 선택하는 것이 좋습니다. 이 옵션은 2D 환경에서 필요한 카메라 설정을 간편하게 조절할 수 있게 해 주어, 2D 게임의 개발에 최적화되어 있습니다.
  • 3D 게임 개발: Cinemachine Virtual Camera를 선택하면 됩니다. 이 카메라는 3D 환경에서의 복잡한 카메라 움직임과 설정을 제어할 수 있는 옵션을 많이 제공합니다.

결국 게임의 환경과 요구에 맞게 적합한 카메라를 선택해야 합니다. 2D 플랫포머 게임의 경우, Cinemachine 2D Camera를 사용하는 것이 일반적으로 더 효과적입니다.

 

 

이 글에서는 2D 관련된 내용을 다루고 있어서 Cinemachine 2D Camera를 생성했어요.

그리고 ChatGPT가 알려준 내용 중에서 아래 3, 4, 5번도 설정했어요. 

 

[답변]

3. Follow 대상 설정

  • 생성된 CinemachineVirtualCamera 객체의 Follow 속성에 플레이어 오브젝트를 드래그하여 설정합니다. 이렇게 하면 카메라가 플레이어를 따라 이동합니다.

4. LookAt 설정 (선택적)

  • 플레이어를 카메라가 항상 바라보게 하고 싶다면, LookAt 속성에 플레이어 오브젝트를 드래그하여 설정할 수 있습니다.

5. Dead Zone 설정 

카메라가 플레이어의 작은 움직임에 반응하지 않도록 Dead Zone을 설정할 수 있습니다:  반드시 설정하는 게 좋아요

  • CinemachineVirtualCamera의 Inspector 패널에서 Body 탭을 열고, Dead Zone Width 및 Dead Zone Height를 조정합니다. 이 값들을 조금씩 늘려가면서 플레이어가 일정 범위 내에서 움직일 때 카메라가 움직이지 않도록 설정할 수 있습니다.

 

Cinemachine 2D Camera

 

다음 영상은 Dead Zone 설정하지 않았을 때와 설정했을 때 실행 결과예요.

설정하지 않았을 때는 작은 움직임에도 카메라가 반응해요.
Dead Zone 설정하지 않았을 때 실행 결과

 

하지만 Dead Zone을 설정하면 작은 움직임에는 카메라가 반응하지 않아요.
Dead Zone 설정했을 때 실행 결과

 

Cinemachine Confiner, 카메라가의 움직임을 제한하는 역할을 해요

이 컴포넌트는 카메라가 게임 환경의 특정 영역 밖으로 나가지 않도록 구속하는 데 사용되요. 

이 기능은 내일 다시 이야기할께요. 

 

오늘은 ChatGPT를 통해서 CinemachineVirtualCamera 에 대해 알아봤어요

짧은 시간이지만 오늘도 쉽게 원하는 기능을 만들 수 있었어요. 

편안한 저녁되세요. 

[코딩과 함께 행복하세요]

 

지금까지,

언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.

감사합니다.

728x90