본문 바로가기
프로그래밍

👨‍💻 [Unreal] 언리얼 엔진에서 USpringArmComponent 는 무엇이며, 어떻게 활용해야 하나요?

by 밝음의기둥 2024. 11. 7.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

언리얼 엔진에서 USpringArmComponent 는 무엇이며, 어떻게 활용해야 하는지 간략히 알아보았습니다.


질문 >

언리얼 엔진에서 USpringArmComponent 는 무엇이며, 어떻게 활용해야 하나요?

답변 >

언리얼 엔진에서 **USpringArmComponent**는 주로 카메라의 위치와 회전을 제어하여 캐릭터와의 일정한 거리를 유지하고 부드러운 추적을 가능하게 하는 컴포넌트입니다. 스프링 암(Spring Arm)은 주로 3인칭 카메라 설정에 사용되며, 캐릭터가 움직일 때 카메라가 부드럽게 따라다니면서 장애물이 있을 경우 자동으로 거리를 조정해줍니다.

USpringArmComponent의 주요 기능

  1. 카메라 거리 제어:
    • USpringArmComponent는 TargetArmLength 속성을 사용하여 카메라와 대상 사이의 기본 거리를 설정합니다. 이 값을 통해 카메라가 캐릭터로부터 얼마나 떨어져 있을지를 제어할 수 있습니다.
  2. 부드러운 추적:
    • 스프링 암에는 카메라 움직임에 반응하는 스프링(탄성) 효과가 있어, 캐릭터가 빠르게 이동하거나 회전할 때 카메라가 부드럽게 따라오도록 합니다. 이로 인해 플레이어는 캐릭터의 시야를 안정적으로 확보할 수 있습니다.
    • bEnableCameraLagbEnableCameraRotationLag 옵션을 통해 카메라의 위치와 회전이 지연되는 효과를 추가하여 더욱 부드러운 움직임을 구현할 수 있습니다.
  3. 충돌 감지 및 거리 조정:
    • USpringArmComponent는 장애물 충돌을 감지하고, 충돌이 발생하면 카메라와 캐릭터 간의 거리를 자동으로 줄여 카메라 시야가 가려지지 않도록 조정합니다. 이 기능은 3D 환경에서 카메라가 벽이나 다른 장애물에 가려지는 것을 방지하는 데 유용합니다.
  4. 회전 제어:
    • 스프링 암을 통해 카메라가 캐릭터를 중심으로 회전할 수 있도록 설정할 수 있습니다. 기본적으로 스프링 암은 대상의 회전을 따라가지만, bUsePawnControlRotation 옵션을 활성화하면 플레이어의 컨트롤 입력에 따라 카메라 회전이 반영됩니다.

USpringArmComponent 활용 방법

1. Spring Arm 추가 및 설정

먼저, USpringArmComponent를 캐릭터에 추가하고 설정합니다. 보통 캐릭터 클래스에서 스프링 암을 생성하고, 카메라 컴포넌트를 스프링 암에 연결하여 사용합니다.

// 헤더 파일
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera")
USpringArmComponent* SpringArm;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera")
UCameraComponent* Camera;

// 생성자
AMyCharacter::AMyCharacter()
{
    // 스프링 암 생성 및 초기화
    SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
    SpringArm->SetupAttachment(RootComponent);
    SpringArm->TargetArmLength = 300.0f;  // 카메라와의 거리 설정
    SpringArm->bUsePawnControlRotation = true;  // 플레이어 컨트롤러의 회전을 따름

    // 카메라 생성 및 스프링 암에 부착
    Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
    Camera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);
    Camera->bUsePawnControlRotation = false;  // 카메라는 회전하지 않음
}

2. 카메라 이동 및 회전 지연 설정

스프링 암의 지연 효과를 활용하여 카메라가 부드럽게 캐릭터를 따라다니도록 할 수 있습니다.

SpringArm->bEnableCameraLag = true;
SpringArm->CameraLagSpeed = 3.0f;  // 이동 지연 속도 설정

SpringArm->bEnableCameraRotationLag = true;
SpringArm->CameraRotationLagSpeed = 5.0f;  // 회전 지연 속도 설정

이 설정을 통해 캐릭터가 이동할 때 카메라가 뒤늦게 따라가며, 부드러운 카메라 추적 효과를 구현할 수 있습니다.

3. 충돌 감지 활성화

스프링 암의 충돌 감지를 활성화하여 장애물이 있을 때 카메라가 자동으로 거리를 조정하도록 합니다.

SpringArm->bDoCollisionTest = true;  // 충돌 감지 활성화

이렇게 설정하면 캐릭터와 카메라 사이에 벽이나 물체가 가로막히면 카메라가 자동으로 캐릭터에 가까이 이동하여 시야를 확보합니다.


활용 예시: 3인칭 카메라 시스템 구현

USpringArmComponent를 사용하면 간단히 3인칭 카메라 시스템을 구현할 수 있습니다. 스프링 암은 캐릭터와 일정한 거리를 유지하면서, 부드러운 이동 및 회전 지연을 제공하며, 충돌 감지 기능을 통해 시야가 가려지지 않도록 합니다.


요약

**USpringArmComponent**는 캐릭터와 카메라 사이의 거리를 제어하고, 카메라가 부드럽게 따라다니도록 지원하는 매우 유용한 컴포넌트입니다. 이를 통해 플레이어는 시야를 확보하면서도 부드러운 카메라 움직임을 경험할 수 있어, 특히 3인칭 액션 게임이나 어드벤처 게임에서 자주 사용됩니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형