언리얼 엔진의 Paper2D

Paper2D란?

게임 개발에 사용되는 유명 엔진 중 하나인 언리얼 엔진은 기본적으로 3D 엔진이다. 그러나 언리얼 엔진도 2D 게임을 개발하기 위한 기능을 제공하고 있는데 바로 Paper2D라는 기능이다.

이 문서의 아래에 있는 참조 링크는 에픽게임즈 사에서 제공하는 Paper2D 튜토리얼 강의이다. 강의를 통해 자습을 했기 때문에 이 문서에서 대략적인 내용을 알 수 있겠지만, 링크의 강의를 통해 간단한 플래포머 예제를 만들 수 있으니 관심이 있다면 읽어보는 것을 추천한다.

2D 게임의 구성요소

이번 글에서는 2D 게임에서 주로 사용하는 용어 몇 가지를 살펴보려 한다. Paper2D를 사용하여 게임을 만드는 경우 확실하게 알아두어야 하는 용어는 “스프라이트(Sprite)”, “텍스처(Texture)”, “머티리얼(Material)“이다. 이 3가지는 언리얼 엔진을 사용하여 3D 게임을 만드는 경우에도 사용하게 되니 알아두는 것이 좋다.

스프라이트

스프라이트라는 용어는 Paper2D가 아니더라도 여러 곳에서 사용된다. 간단하게는 ‘움직이는 2차원 종이 인형’ 정도로 생각할 수 있다. 플랫포머 게임을 만드는 경우 대표적인 스프라이트는 배경, 발판, 지형, 캐릭터 등이 된다.

텍스처

텍스처는 물체의 표면을 나타내는 이미지다. 사람의 손을 예로 들어보자. 실제 사람의 손과 팔은 매우 작은 굴곡이 있다. 그리고 조명이 어디서 비치는 가에 따라 그림자가 생기기도 하고, 주름이나 혈관 등에 따라 무늬가 보이기도 한다. 이것을 게임으로 구현한다면 어떻게 해야 할까? 주름의 경우는 모델의 표면을 세밀하게 만들면 구현할 수 있겠지만 컴퓨터 자원을 지나치게 많이 소모하게 된다. 때문에 많은 게임에서는 실제 모델의 표면을 매끄럽게 하고 표면에 그럴싸한 이미지를 입히는 눈속임을 사용한다. 이 때 사용하는 이미지가 바로 텍스처다.

그런데, 텍스처 파일은 단순히 스티커처럼 표면 위에 덧붙이는 이미지가 아니다. 길가에서 보이는 바위 같은 경우는 단순히 덧붙이도록 이미지를 사용하는 경우도 있지만, 텍스처는 모델의 각 부분이 어떤 색이나 패턴을 가질지를 토대로 만들어둔 하나의 팔레트와 같이 사용된다. 사람의 피부 텍스쳐 같은 경우, 혈관 부분을 표현하기 위한 푸른 색과 일반적인 피부의 색 등의 패턴이 한 장의 텍스쳐에 들어있다. 그렇다면 이런 이미지가 실제로 어떻게 사용되는지는 머티리얼 부분에서 알아보자.

머티리얼

머티리얼은 말 그대로 어떤 물질인지를 나타내는 것이다. 이 부분은 아직 이해를 제대로 하지 못했기 때문에 마테리얼의 속성값 정도만 알아보고자 한다. 언리얼 엔진에서 머티리얼의 속성값은 다음과 같다.

  • 베이스 컬러
  • 메탈릭
  • 스페큘러
  • 러프니스
  • 이미시브 컬러
  • 오파시티
  • 오파시티 마스크
  • 노멀
  • 월드 포지션 오프셋
  • 월드 디스플레이스먼트
  • 테셀레이션 멀티플라이어
  • 서브서피스 컬러
  • 커스텀 데이터 0
  • 커스텀 데이터 1
  • 앰비언트 오클루전
  • 굴절
  • 픽셀 뎁스 오프셋

종류가 매우 다양하지만 링크의 예제에서는 이미시브 컬러와 오파시티만 사용한다. 대략적으로 머티리얼은 각 스프라이트 혹은 오브젝트가 어떤 특성을 가진 물체인지를 정의한다고 볼 수 있다.

금속 물질이라면 빛을 비추었을 때 특유의 반사광이 생길 것이고 이는 메탈릭이라는 속성을 통해 표현이 된다. 혹은 비밀통로 같은 곳을 지날때 평소에는 불투명한 벽이 반투명이 되어 캐릭터가 보이게 되는데 이는 오파시티를 통해 표현이 된다.

그리고 앞에서 얘기한 피부 예시같은 경우 피부가 거친 사람은 피부가 매끈한 사람보다 높은 러프니스 값을 가질 것이다. 또한 모델의 표면 좌표에서 혈관이 지나는 부분은 텍스쳐 이미지의 어느 부분을 사용할 지에 대한 정보도 마테리얼에서 정의하게 된다.

참고 자료

답글 남기기

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