[Unreal Engine] 언리얼 엔진 개요

👻 언리얼 엔진 소개


🌱 언리얼 엔진의 시작

언리얼 엔진(Unreal Engine)은 현재 상용화된 게임 엔진 중의 하나로 게임 개발사였던 에픽 게임즈(Epic games) 에서 만들었다. 게임 개발을 목표로 설립된 에픽게임즈는 여러 게임을 만들다가 1998년 출시한 언리얼 토너먼트 가 크게 성공하면서 유명세를 타고, 당시 사용했던 게임 엔진을 상용화시켰는데 이때 상용화한 엔진이 언리얼 엔진이다.

당시에는 라이선스 비용을 지불해야 했고, 금액도 상당해 기업 수준의 큰 규모의 프로젝트 에서 주로 사용되었다. 그래도 엔진 소스코드를 공개하면서 게임 개발자와 지망생들에게 커다란 호응을 얻고, 언리얼 엔진4 공개 이후로는 비용 정책도 변화하면서 현재는 기본요금 무료화 정책으로 누구나 자유롭게 언리얼 엔진으로 개발할 수 있게 되었다. 지금도 물론 GitHub에서 언리얼 엔진 소스 코드를 무료로 받을 수 있지만 에픽 게임즈와 깃헙 계정 연결이 필요하다.

언리얼 엔진 소스 코드 액세스 방법


🌱 언리얼 엔진의 현재와 활용 분야

게임 엔진의 시각적인 표현이 날로 발전하면서 게임의 그래픽 수준은 실사 영화와 비슷한 수준이 되었다. 특히 언리얼 엔진은 실사 표현에 주력하여 엔진 중에 가장 실사에 가까운 그래픽 구현 능력으로 인정받고 있다.

그래서 언리얼 엔진은 게임뿐만 아니라 영상, 건축, 제조업 등의 비게임 분야 에 많은 러브콜을 받고 있고, 그 요청에 맞게 각 산업에 맞는 다양한 기술들을 개발해 엔진 내에 탑재하여 손쉽게 콘텐츠를 개발하는 생테계를 구축해 나가고 있다. 최근엔 메타버스 시대에 접어들면서 메타버스 콘텐츠 제작을 위한 생태계를 구축 하는 데 노력하고 있다.

쉽게 고퀄리티의 디지털 휴먼을 실시간으로 제작하는 메타휴먼 크리에이터, 실제 세계를 스캔한 수천 개의 3D 애셋 라이브러리를 무료 제공하는 메가스캔, 창작자의 소통과 학습을 위해 아트스테이션(Artstation)스케치팹(Sketchfab)을 인수함으로써 메타버스 콘텐츠 제작에 도움이 되는 기능과 환경을 추가해 나가고 있다.

이런 지속적인 기능 추가와 업데이트 결과 현재 언리얼 엔진이 정식 버전으로 오랫동안 사용하던 4.27버전 에 이어 나나이트, 루멘 같은 강력한 기능을 갖춘 5버전 을 출시하면서 앞으로의 메타버스 콘텐츠의 품질을 높일 수 있도록 선도하고 있다.


👻 언리얼 엔진의 제작 방법

콘텐츠 제작은 생각보다 복잡한 절차로 이루어져 있다.

💡 일반적인 콘텐츠 제작 프로세스

  1. 제안 기획
  2. 프로토타이핑
  3. 프로젝트 착수
  4. 개발
  5. 알파
  6. 베타
  7. 결과물

그렇기 때문에 개발 업무를 최대한 분배하고 독립적으로 운영해야 한 쪽에 업무 부하가 일어나지 않고 잘 진행시킬 수 있다. 과거엔 직렬적으로 개발이 이루어지면서 프로그래머의 업무 부하가 생겼었지만 시간이 많이 지나며 개발 프로세스는 병렬적, 그리고 독립적으로 잘 개선되었다.


🌱 레고 VS 언리얼 엔진

개발 프로세스가 과거보다 많이 독립적으로 개선되면서, “조립형” 장난감인 레고와 언리얼 엔진이 상당히 비슷한 점이 많아졌다. 레고언리얼 엔진을 비교해 보면서 콘텐츠 개발 방법과 언리얼 프로젝트의 구성 요소를 알아보도록 하자.


🪐 액터 제작

우선 레고로 로봇을 만든다고 생각해보자. 이러한 단일 개체를 만들려면 우선 블록들이 필요하다. 언리얼 엔진에서의 블록은 컴포넌트(Component)를 의미한다. 블록을 조립하여 만들어진 로봇을 언리얼 엔진에서는 액터(Actor)라고 부른다.
각각의 컴포넌트를 직군별로 만들게 되면 독립적으로 제작할 수 있게되고 병렬 구조 형태로 유연하게 개발이 가능해진다.

블록 == 컴포넌트
로봇 == 액터


🪐 레벨 구성

레고는 단일 개체(로봇)를 여러 개를 만들고 각 역할에 맞는 위치에 배치하여 패키지를 구성한다. 예를 들면 다스베이더, 요다, 광선검같은 단일 개체를 만들어 하나의 스타워즈 패키지를 만든다고 생각해보자. 언리얼 엔진도 이와 비슷한 방법으로 액터들을 배치해 레벨(Level)을 구성한다.

패키지 == 레벨


🪐 프로젝트 구성

레고 시리즈는 구성 기획에 따라 여러 가지의 레고 패키지로 구성되어 있다. 위에서 언급한 스타워즈로 예를 다시 들어보자. 우선 ‘레고 스타워즈 시리즈’ 라는 커다란 기획이 있고, 이 시리즈에는 장면별로 사막에서 전투를 벌이는 사막 장면, 우주에서 비행선으로 전투를 하는 우주 비행 장면, 열대 우림에서 전투를 하는 열대 우림 장면으로 스토리가 구성되어 있다고 가정해보자. 결국 사막 행성 패키지, 우주 비행기 패키지, 열대 우림 패키지를 모으면 하나의 스타워즈 시리즈가 된다. 언리얼 엔진으로 비교해본다면 구성에 따라 여러 개의 레벨이 있고, 이러한 레벨들이 모여서 하나의 큰 콘텐츠를 이루게 된다고 볼 수 있다. 다시 말해 레벨은 프로젝트의 일부라고 할 수 있다.

기획 == 콘텐츠
레고 == 프로젝트


🪐 언리얼 엔진 프로젝트 구성 요소

결론적으로 언리얼 엔진의 구성 요소는 다음과 같이 나타낼 수 있고, 레고 조립과 유사한 방법으로 제작된다는 것을 알 수 있다.
Alt text


🌱 프로토타이핑(Prototyping)

병렬 형태의 개선된 콘텐츠 제작 방식을 진행하기 위해서는, 프로그램 직군이 아트의 결과물인 리소스를 받을 때까지 기다린 후에 개발을 진행하는 것이 아니라 기획 의도에 맞춰 언리얼 엔진에서 지원하는 기본 액터들을 활용해 구현해야 한다. 이를 프로토타이핑이라고 하며, 직군별로 동시 작업을 가능하게 한다. 처음부터 최종 사용될 리소스를 활용하게 되더라도 개발 도중에 버려질 확률이 높고 , 이는 개발비의 증가 로 이어지게 된다.

그래서 기획 내용을 프로토타이핑으로 검증하고, 리소스를 교체하는 방법으로 진행하면 콘텐츠의 품질을 큰 리스크 없이 향상시킬 수 있게 되는 것이다.


👻 글을 마치며

이번 시간엔 언리얼 엔진의 탄생 배경부터 현재, 그리고 미래까지 대략적으로 훑어보고, 그러한 엔진을 이용해 콘텐츠를 제작하는 방법에 대해 공부해보았다. 그래도 웹 개발 2년 경력이 어디 가진 않았는지 개발 프로세스 쪽은 실무 경력이 참고가 많이 되어서 좋았다. 대략적으로 엔진으로 만드는 프로젝트가 어떤 요소들로 이루어져 있는지 알 수 있었고 무엇을 우선 순위로 두고 개발을 진행해야 하는 지 알게 되었다. 나는 리소스 없으면 개발을 못 했었는데… 생각을 바꾸게 되는 계기가 되었다. 그러니까 이제 얼른 손가락 움직여!!!


출처
저자 깃허브
이 포스팅은 ‘인생 언리얼 교과서(성안당)’ 를 바탕으로 쓰였습니다.

Leave a comment