안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.
오늘은 GPT-4, GPT-4o 활용해서 Framing Transposer를 사용하여 플레이어를 화면 왼쪽에 배치하고 줌 인/아웃 구현해볼께요.
[오늘의 목표] GPT-4, GPT-4o 활용해서 Framing Transposer를 사용하여 플레이어를 화면 왼쪽에 배치하고 줌 인/아웃 구현하기
[아래 글이 도움이 되요]
2024.05.29 - [디지털노마드] - [챗GPT게임개발40] GPT-4, GPT-4o 활용해서 카메라 줌 인 구현하기
[챗GPT게임개발40] GPT-4, GPT-4o 활용해서 카메라 줌 인 구현하기
안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.오늘은 GPT-4, GPT-4o 활용해서 GPT-4, GPT-4o 활용해서 카메라 줌 인 구현해볼께요.[오늘의 목표]GPT-4, GPT-4o 활용해서 카메라 줌 인 구현 ※ ChatGPT
intellinomadlife.tistory.com
※ ChatGPT 답변 내용 중 제가 별도로 표시한 파란색 내용을 기준으로 읽으시면 좀 더 이해가 쉽게 될거예요.
플레이어를 원하는 위치에 놓을 수가 없어요.
줌 인 기능을 구현했지만 플레이어를 원하는 위치에 놓을 수가 없어요.
그래서 챗GPT에게 물어봤고 해결책으로 Framing Transposer를 알려줬어요.
Framing Transposer는 어떤 역할을 하니?
아래는 Framing Transposer 역할이예요.
Unity에서 Framing Transposer는 Cinemachine Virtual Camera의 컴포넌트 중 하나로, 카메라가 특정 대상에 대해 자동으로 프레임을 맞추고 추적하는 데 사용됩니다. Framing Transposer는 대상의 위치 변화에 따라 카메라의 위치와 방향을 조정하여 항상 대상이 화면 안에 잘 들어오도록 합니다. 이를 통해 더 부드럽고 자연스러운 카메라 움직임을 구현할 수 있습니다.
Framing Transposer의 주요 기능은 다음과 같습니다:
- 자동 프레이밍: 대상이 화면의 특정 위치에 있도록 카메라를 자동으로 조정합니다. 예를 들어, 대상이 항상 화면의 중앙에 위치하도록 할 수 있습니다.
- 스무딩: 카메라의 움직임을 부드럽게 하기 위해 스무딩 기능을 제공합니다. 이를 통해 대상이 갑작스럽게 움직이더라도 카메라가 부드럽게 따라갑니다.
- 구성 가능한 오프셋: 대상과 카메라 사이의 오프셋을 설정할 수 있어, 카메라가 대상의 정면이 아닌 다른 각도에서 바라보도록 설정할 수 있습니다.
- 제한 설정: 카메라의 이동 범위나 각도를 제한하여 원하는 범위 내에서만 카메라가 움직이도록 설정할 수 있습니다.
Framing Transposer는 주로 캐릭터를 추적하거나 특정 게임 오브젝트를 강조할 때 유용하게 사용됩니다. 예를 들어, 3D 게임에서 플레이어 캐릭터를 항상 화면 중앙에 두고 싶을 때, 또는 특정 목표물을 중심으로 카메라를 움직이고 싶을 때 사용됩니다. 이를 통해 플레이어가 보다 직관적이고 몰입감 있는 시각적 경험을 할 수 있게 합니다.
이제 Framing Transposer 의 오프셋 값을 변경해서 플레이어 중심으로 카메라가 움직이도록 해볼께요.
플레이어를 원하는 위치에 줌인
아래 영상과 같이 설정하면 플레이어 위치에 맞게 줌인 할 수 있어요.
아래 추가 내용도 시간되실 때 읽어보시면 도움이 될거예요.
Unity의 Cinemachine을 활용하면 카메라 제어를 더욱 정교하게 할 수 있습니다. 특히, Framing Transposer를 사용하면 카메라가 특정 대상에 대해 자동으로 프레임을 맞추고 추적할 수 있습니다. 이 글에서는 Framing Transposer를 사용하여 플레이어를 화면 왼쪽에 배치하고, 줌 인/아웃 기능을 구현하는 방법을 설명합니다.
1. Cinemachine Virtual Camera 추가
먼저, Cinemachine Virtual Camera를 프로젝트에 추가합니다. 이를 통해 플레이어를 추적할 카메라를 설정할 수 있습니다.
2. Framing Transposer 설정
Virtual Camera의 "Body"를 Framing Transposer로 설정합니다. Framing Transposer는 대상의 위치에 따라 카메라를 조정하여 대상이 항상 화면 안에 잘 들어오도록 합니다.
- Tracked Object Offset: 플레이어가 화면의 왼쪽에 위치하도록 오프셋 값을 조정합니다. 예를 들어, Tracked Object Offset의 X 값을 음수로 설정하면 됩니다.
var framingTransposer = virtualCamera.GetCinemachineComponent<CinemachineFramingTransposer>(); framingTransposer.m_TrackedObjectOffset = new Vector3(-2, 0, 0); // 플레이어를 화면 왼쪽에 배치
3. Cinemachine Zoom 추가
줌 인/아웃 효과를 위해 Virtual Camera에 Cinemachine Zoom 컴포넌트를 추가합니다. 이를 통해 마우스 휠이나 키보드 입력에 따라 카메라 줌을 조절할 수 있습니다.
- Zoom 설정: 줌 인/아웃의 최소 및 최대 값을 설정하고, 줌 스무딩 값을 조정합니다
var cinemachineZoom = virtualCamera.GetComponent<Cinemachine.CinemachineZoom>(); cinemachineZoom.m_MinFov = 30f; // 줌 인 최소 값 cinemachineZoom.m_MaxFov = 60f; // 줌 아웃 최대 값 cinemachineZoom.m_Damping = 1f; // 줌 스무딩
4. 줌 인/아웃 컨트롤
줌 인/아웃을 위한 입력을 처리합니다. 예를 들어, 마우스 휠 입력을 통해 카메라의 줌을 조절할 수 있습니다.
void Update() { // 줌 인/아웃 컨트롤 (예: 마우스 휠) float zoomInput = Input.GetAxis("Mouse ScrollWheel"); var framingTransposer = virtualCamera.GetCinemachineComponent<CinemachineFramingTransposer>(); framingTransposer.m_CameraDistance -= zoomInput * 5f; // 줌 인/아웃 속도 조정 }
위의 설정을 통해 플레이어 캐릭터가 항상 화면의 왼쪽에 위치하며, 마우스 휠을 사용해 부드럽게 줌 인/아웃 할 수 있습니다. 이를 통해 더 몰입감 있는 카메라 작업이 가능해집니다.
오늘은 GPT-4, GPT-4o 활용해서 GPT-4, GPT-4o 활용해서 Framing Transposer를 사용하여 플레이어를 화면 왼쪽에 배치하고 줌 인/아웃 구현해봤어요.
지금까지,
언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.
감사합니다.