본문 바로가기
프로그래밍

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

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

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

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


질문 >

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

답변 >

언리얼 엔진 5에서 Character 클래스게임 내 플레이어 캐릭터나 NPC(Non-Player Character)를 구현하기 위해 제공되는 기본 클래스입니다. Character 클래스는 AActor와 APawn의 확장 클래스로, 캐릭터의 이동과 관련된 고급 기능과 다양한 컴포넌트를 포함하고 있어 게임 캐릭터를 쉽고 효율적으로 구현할 수 있게 합니다.

Character 클래스의 주요 특징 및 컴포넌트

  1. CapsuleComponent:
    • 캐릭터의 충돌 처리를 담당하는 캡슐 모양의 컴포넌트입니다. 주로 캐릭터의 물리적 경계를 정의하며, 이동 중 다른 객체와의 충돌을 관리합니다.
  2. CharacterMovementComponent:
    • 캐릭터의 이동을 제어하는 컴포넌트로, 이동 속도, 점프, 중력, 회전 등을 포함하여 캐릭터가 어떻게 움직이는지 정의합니다. 다양한 이동 방식(걷기, 뛰기, 수영, 비행 등)에 대한 설정을 제공하여, 복잡한 캐릭터 이동 로직을 쉽게 구현할 수 있습니다.
  3. SkeletalMeshComponent:
    • 캐릭터의 시각적인 모델을 나타내는 컴포넌트로, 애니메이션과 함께 동작합니다. 캐릭터의 외형을 표현하며, Skeletal Mesh와 애니메이션 블루프린트를 연결해 캐릭터의 움직임을 나타낼 수 있습니다.
  4. Controller:
    • 캐릭터를 제어하는 입력 장치를 담당하며, 플레이어나 AI가 캐릭터를 제어할 수 있게 해줍니다. PlayerControllerAIController를 통해 플레이어의 입력 또는 AI의 지시에 따라 캐릭터의 동작을 관리합니다.

Character 클래스의 활용 방법

  1. 클래스 생성 및 상속:
    • ACharacter 클래스를 기반으로 새로운 캐릭터 클래스를 생성하여, 게임에 맞는 캐릭터 기능을 확장할 수 있습니다.
    UCLASS()
    class MYGAME_API AMyCharacter : public ACharacter
    {
        GENERATED_BODY()
    public:
        AMyCharacter();
    };
    
    
    • 이렇게 정의한 AMyCharacter 클래스에서 캐릭터의 커스텀 속성 및 동작을 추가로 구현할 수 있습니다.
  2. 이동 기능 설정:
    • CharacterMovementComponent를 통해 걷기, 점프, 스프린트 같은 이동 동작을 제어할 수 있습니다. 예를 들어, 캐릭터의 걷기 속도와 점프 높이를 설정할 수 있습니다.
    GetCharacterMovement()->MaxWalkSpeed = 600.0f;  // 걷기 속도 설정
    GetCharacterMovement()->JumpZVelocity = 700.0f; // 점프 높이 설정
    
    
  3. 애니메이션과 동작 연동:
    • 캐릭터의 SkeletalMeshComponent에 애니메이션 블루프린트를 연결하여, 캐릭터가 이동하거나 공격할 때 해당 애니메이션이 재생되도록 설정할 수 있습니다.
    • 예를 들어, 이동할 때는 걷기 애니메이션, 공격할 때는 공격 애니메이션을 재생하는 식으로 캐릭터 동작에 맞는 애니메이션을 연동합니다.
  4. 입력 설정:
    • 캐릭터 클래스는 입력을 쉽게 설정할 수 있는 인터페이스를 제공합니다. SetupPlayerInputComponent 함수를 오버라이드하여 키보드, 마우스, 컨트롤러 입력을 처리할 수 있습니다.
    void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
    {
        Super::SetupPlayerInputComponent(PlayerInputComponent);
        PlayerInputComponent->BindAxis("MoveForward", this, &AMyCharacter::MoveForward);
        PlayerInputComponent->BindAxis("MoveRight", this, &AMyCharacter::MoveRight);
    }
    
    
  5. AI 제어:
    • NPC 같은 AI 캐릭터를 제어할 때, AIController를 사용하여 AI가 캐릭터를 움직이거나 행동하도록 설정할 수 있습니다. AI 네비게이션 기능과 블루프린트 기반의 AI 행동 트리를 통해 AI 캐릭터의 동작을 관리합니다.

활용 예시

  • 플레이어 캐릭터 구현: Character 클래스를 상속받아 플레이어의 입력에 따라 이동, 점프, 공격 등의 동작을 구현할 수 있습니다. PlayerController와 연동하여 키보드, 마우스, 게임 패드 입력을 통해 캐릭터가 반응하게 합니다.
  • NPC 및 AI 캐릭터 구현: AI 기반 캐릭터를 구현할 때도 Character 클래스를 상속받아 AIController와 연결하여 AI 행동을 정의할 수 있습니다. 이를 통해 적군, 아군, 중립 캐릭터 등을 AI로 제어할 수 있습니다.
  • 애니메이션과의 통합: 캐릭터의 동작에 따라 애니메이션이 재생되도록 설정하여, 게임 내에서 생동감 있는 캐릭터 표현이 가능합니다.

언리얼 엔진의 Character 클래스는 기본적인 캐릭터 동작을 손쉽게 구현할 수 있는 기능을 제공하여, 게임 개발에 필수적인 역할을 합니다. 이를 통해 플레이어 캐릭터AI 캐릭터를 효율적으로 설계하고, 복잡한 게임 플레이 메커니즘을 지원할 수 있습니다.


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


🎬 유튜브 채널 🎬

 

위로그@WiLog

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

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

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

chzzk.naver.com


반응형