[언리얼 엔진 사용기] 블루프린트와 C++

액터와 캐릭터

게임에는 유저의 판단이 개입한다. 반면 드라마나 영화는 작가가 정한대로 진행된다. 이러한 차이점이 있음에도 불구하고 그들 사이에는 공통점이 존재한다. 바로 주인공과 같은 등장인물이 존재한다는 점이다.

언리얼에서는 크게 3가지 클래스가 존재한다. 바로 Pawn, Actor, Component다. 영화에서의 주인공은 여기서는 Pawn 또는 Character로, Character는 Pawn의 종류 중 하나이다. 이들은 AI 혹은 플레이어에 의해 조작이 가능하다는 특징을 가지고 있다. 이제 각각의 클래스가 어떤 일을 하는지 알아보자.

영화에서 배경을 표현하고자 할 때 소품이 사용된다. 언리얼에서 이 소품의 역할을 하는 것이 바로 Actor이다. Pawn의 Actor의 하나지만 그 둘의 가장 큰 차이점을 말하자면 직접조작을 하는가이다. 즉 Actor가 Pawn으로 사용되지 않는 경우는 총에서 발사되는 총알 같이 플레이어의 직접적인 조작이 필요없는 경우 같은 것이다.

영화를 찍을 때는 카메라가 필요하다. 언리얼에서 그 역할을 하는 것은 Component이다. Component는 생각보다 많은 속성을 가지는데, 기본적으로 Actor가 가지고 있는 속성이 있다. 게임에서 등장하는 카메라, 광원 등 게임 상에서 보이지 않는 부분에도 Component가 사용된다.

사실 위와 같은 분류는 그다지 정확하지는 않다 실제로 더 많은 클래스들이 존재하지만 앞으로의 설명을 위해 나누자면 위와 같은 것이다.

블루프린트 vs. C++

  • 블루프린트의 장단점
    • 장점
      • 쉽다.
      • 플로우가 잘 보인다
      • 코딩에 대해 몰라도 된다.
    • 단점
      • 기능상 제약이 존재한다.
      • 플로우가 복잡해질 수도 있다.
      • 프로그래밍에 대한 기본적인 지식을 필요로 한다.
      • 느리다.
      • C++을 사용하면 볼일 없는 오류가 발생한다.
  • C++의 장단점
    • 장점
      • 원하는 기능을 맘껏 구현할 수 있다.
      • 블루프린트에서는 구현할 수 없는 기능도 구현할 수 있다.
    • 단점
      • 어렵다.
      • Unreal에서 제공하는 표준을 맞추지 않으면 오류가 발생한다.
      • 간단한 기능을 구현하기도 복잡할 때가 있다.

위를 간단히 표현하자면, 블루프린트를 쓰면 간단하지만 제대로된 기능을 구현하지 못할 수도 있고, C++을 쓰면 제대로 기능을 구현할 수 있지만 어렵다는 것이다. 그렇기에 둘을 써야할 상황을 잘 알고 활용하는 것이 중요하다.

블루프린트는 게임 내에서 쉽게 구현할 수 있는 점프나 아이템 획득 같은 기능, 혹은 아이템 스폰과 같이 그래픽과 연관된 기능을 구현하는 경우 적합하다. 반면 C++은 구현하기 어려운 기능, Actor가 중간에 발생하는 경우에 적합하다.

참고자료

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.