2016년 6월 27일

언리얼 엔진 4로 개성적인 세계를 만들어 보았습니다

저자: Tobias Koepp,

소개

안녕하세요, 저는 Tobias Koepp이고 현재 배경 아티스트로 일하고 있으며, 최근 네덜란드의 NHTV University of Applied Sciences Breda를 졸업했습니다. 저는 4년동안 국제 게임 아키텍처 및 디자인 교육을 받았으며, 전공은 인게임 월드 구축이었습니다. 또한 이 자리에서는 제가 만든 졸업 작품을 통해, 언리얼 엔진 4로 만들 수 있는 거대한 환경 조성의 가능성에 대해 알아보고자 합니다. 

 

다음 글은 저의 워크 플로우와 이 프로젝트를 개발하면서 제가 언리얼 엔진 4를 어떻게 이용했는지, 그리고 완성품인 “Riverfall”의 제작과정을 분석한 것입니다. 이 프로젝트는 완성하는데 총 8개월 정도 걸렸으며, 모든 모델과 텍스처, 그리고 월드 구성은 저 혼자서 만들어낸 것입니다. 제 담당 교수님 (Neville Marcinkowski)께서는 매주마다 피드백을 주셔서 프로젝트의 방향을 바로잡아주시고, 실수가 생겼을 경우 바로 깨달을 수 있도록 도와주셨습니다. 

 

아이디어

이 프로젝트에서 저는 최신 기술을 활용해 모델과 텍스처를 페인팅하면서 제 기술을 연마하고, 나아가 제가 직접 페인팅한 텍스처로 개성적인 배경을 조성하는 방법을 연구해보고자 했습니다. 요즘에는 많은 게임들이 최대한 실사에 가까운 그래픽을 추구하고 있지만, 아직 만화같은 스타일의 그래픽을 통해 게이머들을 매혹시키는 게임들도 아직 많이 있습니다. 저는 블리자드 스타일의 팬이었기 때문에, 이번 작품의 아이디어 역시 이 회사의 스타일에서 따오기로 했습니다. 그래서 저는 블리자드의 작품들(물론 다른 회사의 작품들도)을 샅샅이 파헤친 다음, 제 모델과 텍스처를 만드는 몇가지 기준들을 세울 수 있었습니다. 예를 들면 기본 비율은 무시하고 굉장히 인상이 강한 실루엣을 사용하며, 폴리곤 숫자는 적게 쓰면서 텍스처에 디테일한 페인팅을 하는 방식으로 말이죠.

 

블록아웃

이 프로젝트는 2014년 초에 처음으로 시작을 했고, 일단 UDK로 개성적인 세계(stylized environment)를 만들 생각이었습니다. 당시까지만 하더라도 언리얼 엔진 4가 지금처럼 무료화나 개방적인 정책을 펴고 있지 않았던데다, 저 역시 기존에 다른 프로젝트를 할 때도 썼던 UDK가 손에 더 익었기 때문입니다. 그리고 이번 프로젝트에서는 직접 손으로 페인팅해서 배경을 만들 것이었기 때문에, 실사 수준의 그래픽이나 물리 기반 렌더링도 (아직은) 그다지 쓸모가 없었습니다.

저는 전체 프로젝트를 크게 두 부분으로 나누고, 먼저 환경 조성의 블록아웃부터 시작했습니다. 모델은 Maya로 만들고 도시 구역을 구성할 때에는 모듈식으로 접근을 했습니다. 이런 방식은 갈수록 작업하기가 편해졌는데, 프로젝트 자체가 지금까지 손대본 적이 없을 정도로 컸던데다 시간을 아낄 수 있다는 점은 무슨 일을 하든 아주 큰 장점으로 작용하기 때문입니다. 

시작할 당시만 하더라도 저는 제가 어떤 결과물을 원하는지 대강의 개념 정도는 가지고 있었고, 도시의 기초가 잡혀가던 즈음에는 중세 분위기가 물씬 풍기는 배경을 만들어 보자는 확실한 생각이 잡혔습니다.

또 엔진으로 배경을 조성할 것이어서 일단 그 대략적인 스케일을 작업 시작부터 잡아야 했고, 그 스케일에 맞는 다른 요소들을 얼마나 만들어야 할 지 견적도 잡아야 했기 때문에 블록아웃을 최대한 빨리 시작하는 것이 매우 중요했습니다. 이 프로젝트에 임하는 인원은 저 혼자였기 때문에, 저는 모델 제작과 컨셉 결정, 세계 조성 등 프로젝트 진행에 필요한 일들에 시간을 매우 효율적으로 분배해야 했습니다. 물론 제가 먼저 작업하고 싶은 부분을 마음대로 골라 손댈 수 있는 자유는 있었지만, 어쨌든 머리 하나로만 생각하다보면 창의적인 생각이 좀 부족하다는 단점도 있었습니다. 다행히 이 부분은 주변 친구들과 선생님들이 레벨 디자인을 할 때부터 많이 도와준 덕분에, 플레이어에게 더욱 흥미로울 수 있는 환경의 수직적인 설계도 이루어질 수 있었습니다. 

며칠 정도 작업하고 나니 대강이나마 좀더 수직적으로 설계한 환경 디자인을 완성했습니다. 저는 이 과정에서 Maya로 만든 간단한 모델들이나 BSP 및 UDK 라이브러리의 기본 오브젝트들을 조합해 만든 모델들을 배치해 작업을 굉장히 빠르게 끝냈습니다.

스케일을 조정하고 약간 뒷정리를 하자, 플레이어들도 끊임없이 산을 타며 모험을 할 수 있을만큼 다양한 장소와 재미가 널려있는 좋은 블록아웃이 되었습니다. 저는 이를 벤치마킹의 기반으로 삼아, 필요한 만큼 확장하고 미술적 요소를 채우는 등의 레벨 디자인을 해나갔습니다.

 

배경을 통한 플레이어와의 소통

이 프로젝트로 실제 게임을 만들 것은 아니었지만, 그래도 저는 사람들이 정말로 탐험을 하고 싶어할만한 배경을 만들고 싶었습니다. 배경 아티스트라면 단순히 예쁜 배경만 만들어내는 것이 아니라, 플레이어들에게 정말로 필요한 스토리나 가이드 등 각종 정보들을 시각적으로 전달해줄 수 있어야 하기 때문입니다. 이런 성격의 정보 전달에서는 게임 플레이나 컷씬, 혹은 대화 같은 직접적인 방법은 아무것도 사용할 수 없기 때문에, 배경 아티스트와 레벨 아티스트는 오로지 자신이 의도하는 장소에 플레이어가 오고싶게끔 만드는 방법밖에 없습니다. 저는 이런 유도 장치들을 프로젝트의 블록아웃 단계부터 확실하게 만들어놓았습니다.

아마 게임의 플레이어가 이 배경에서 처음으로 보게 될 것은 바로 절벽을 잇고 있는 거대한 다리일 것입니다. 이게 바로 목표입니다. 이 다리에 도달하는 길은 오로지 하나 뿐이며, 그 길은 바로 산 위로 올라가야 하는 길입니다. 이 다리가 게임의 진행에 득이 될지 해가 될지는 아무런 단서도 없지만, 플레이어들은 분명 이 다리를 따라가는 것에 뭔가 보상이 주어지리라는 것을 깨닫게 됩니다. 어쩌면 일단 다리 건너편에 가보면 뭔가 앞으로에 대한 다른 정보를 더 얻을 수 있을지도 모르죠. 이 모든 생각은 플레이어들로 하여금 배경을 탐험하게 만드는 동기를 부여해줍니다.

다리를 비롯한 랜드마크 성격의 구조물의 경우에는 의도적으로 스케일을 키워서, 플레이어들이 지금 자신들이 세계의 어느 지점에 있는지 판단하거나 어느 방향으로 갈지 기준으로 써먹도록 만들었습니다. 이는 특히 레벨 디자인이 더욱 거대해지거나 게임의 진행이 선형적이지 않을 때 특히 유용하겠죠. 예를 들어 거대한 아치 꼴의 구조물들은 플레이어들로 하여금 자신들의 목표(다리)로 가는 유일한 길이 산을 타고 올라가는 것임을 잘 보여주는 장치입니다. 또한 여행을 끝마치고 되돌아올때에도 유용한 표식으로 써먹을 수 있겠죠. 이런 작업이 배경을 조성하는 과정에서 반복적으로 진행된다면, 여러분은 딱히 의식적인 설명 없이도 게임을 진행하려면 어디로 가야 하는지 플레이어들에게 설명할 수 있게 됩니다. 여러분이 창작자의 입장에서 그 이점을 최대한 살린다면, 훨씬 복잡한 배경을 만들어 놓아도 플레이어들도 자신이 길을 잃을까봐 겁먹지 않고 마음껏 여행할 수 있는 지형을 만들 수 있습니다.

위에서 제시한 사례처럼, 시선을 멈출 정도로 거대한 건축물은 주변 환경이 아무리 복잡하고 온갖 통로가 뒤섞여 있더라도, 자신의 위치를 확인하고 진행방향을 다시 설정할 수 있는 이정표가 되어줍니다. 이런 규칙을 따르고 라이팅과 실루엣, 그리고 기타 다른 미술 이론들이 실제로 끼치는 영향을 잘 이해한다면, 당신은 플레이어들로 하여금 자신들이 굉장히 똑똑한 모험가처럼 느껴지게끔 만들 수 있습니다. 따라서 위 규칙들에 충실하게 따라 오픈 월드를 만들어낸다면, 플레이어들은 지도처럼 게임의 진행을 보조할 수 있는 추가적인 수단도 필요없이 오로지 당신이 만들어낸 배경만 보고 게임을 진행해나갈 수 있게 됩니다.


언리얼 엔진 4로 갈아타다

이 프로젝트는 스케일이 너무 커서 학업 기간동안 총 2부분으로 나누어서 작업을 해야 했습니다. 앞부분은 일단 게임 엔진 내에 제가 원하는 배경 전체를 블록아웃 해놓고 대부분의 모델들을 배치해놓은 다음, 배경에 알맞은 전반적인 분위기를 조성하는 것이었습니다. 일단 이 작업을 끝낸 다음, 저는 인턴쉽 프로그램에 하나 참가하고 다른 수업들도 들으면서 프로젝트에서 반 년 이상 손을 뗴고 있었습니다. 어쨌든 이 프로젝트는 남는 시간에 짬을 내서 손을 댈 수 있는 스케일이 아니라 전력으로 작업에 임해야 할 물건이었기 때문에, 저는 차라리 잠시 손을 떼고 머리도 완전히 식히면서 업계에서 다른 경험도 쌓아서 마무리를 짓는게 낫겠다고 생각했습니다. 

그렇게 작업을 다시 재개할 즈음에는, 언리얼 엔진 4도 많이 바뀌어있었습니다. 무엇보다도 3월 15일의 무료화 선언 덕분에 GDC에서는 무료로 다운로드받아 사용할 수 있더라고요. 게다가 동료 아티스트들이나 친구들 역시 새로운 엔진으로 갈아타는 광경을 보고, 아무래도 최신 엔진에 익숙해지는 것도 좋은 학습 경험이 될 수 있겠다는 생각이 들었습니다. 언제나 최신 경향을 배워야 하는 아티스트로써, 저는 UDK를 완고하게 붙잡고있어봤자 프로젝트를 완성하려면 앞으로도 6개월은 더 필요할텐데, 그러다간 제 프로젝트에 한 물 갔다는 인상을 심어줄 수도 있겠다고 생각했습니다. 

그 당시만 해도 언리얼 엔진 4는 언제나 미래형 엔진이다, 실감나는 렌더링에 특화가 되어있다, 신형 PBR 워크플로우가 있다는 식으로 광고가 되는 바람에, 저는 과연 이 엔진이 제가 지향하는 스타일의 배경 조성과 잘 맞을까 하는 회의감이 들었었어요. 하지만 결국 언리얼 엔진은 제 비전을 실현하는 데에 방해가 되기 보다는, 잘만 연구하면 제 머릿속의 구상을 제대로 실현하는데 큰 도움이 될 거라는 생각이 들었습니다. 저는 아티스트로써 제게 주어진 도구들로 최고의 능력을 발휘하면서, 제가 원하는 효과를 낼 수 있는 방법을 찾아봐야 하는 것이니까요. 그래서 저는 아무래도 신제품으로 갈아타서 훨씬 나은 결과물을 만들어 내는 것이 낫겠다고 빠르게 결정을 내렸죠.

 

백지 상태

그 전까지만 해도 저는 언리얼 엔진 4를 사용해본 적이 없었지만, 그래도 UDK 구 버전의 파일을 새 엔진에 그대로 불러올 수 없다는 점은 쉽게 깨달았습니다. 하지만 제 마음은 이미 엔진을 갈아타는 것으로 굳어져 있었기 때문에, 결국 옛날 버전 개발 툴보다는 결과물이 훨씬 나아질거라는 희망만 품은 채 배경을 처음부터 다시 작업하는 수밖에 없었습니다.

다행히도 옛날 툴셋을 썼던 경험이 이번 최신 엔진에서도 많은 도움이 되어주었습니다. 애셋 라이브러리는 사용하기도 훨씬 간편해졌을 뿐더러 에디터에 내장된 탐색기는 3D 프로그램을 사용해본 사람이라면 누구나 쉽게 쓸 수 있도록 설계되어 있었습니다. 언리얼 엔진 4는 아직도 .fbx 확장자를 읽어들일 수 있어서, 저는 제가 지금껏 작업했던 라이트 맵 UV나 콜리전 모델 등 예전 애셋들을 제 라이브러리로 불러올 수 있었습니다. 언리얼 엔진 4는 작업자의 모델, 텍스처와 머티리얼 등을 매우 수월하게 저장하고 또 찾아낼 수 있도록 도와줍니다. 그래서 정신을 차리고 보니 어느새 제 배경 세계를 다시 만들어낼 준비가 완전히 끝나있더라고요.

프로젝트의 전반 작업을 다시 준비하는 일은 꽤 성공적이었습니다. 뭐 배경은 다시 만들어 올려야 했지만, 이미 UDK 내에 괜찮은 레이아웃을 잡아둔 상태였기 때문에 언제든지 벤치마킹해서 쓸 수 있는 것은 물론, 이제 와서 보기에 문제가 있어 보이는 부분도 자유롭게 고칠 수 있었습니다. 거기다 반 년을 투자해서 만들었던 물건에 얽매이지 않고 많은 부분에서 새로운 시작을 할 수 있다는 사실은, 완성품을 만들어내는 데에 보다 편안한 마음가짐으로 작업에 임할 수 있는 원동력이 되어주었습니다.  

 

모듈화 작업

저는 프로젝트 초기에 어떤 모듈화 요소를 어느 정도로 쓸지 견적을 잡아둔 상태였습니다. 이 정도 스케일의 배경을 혼자서 작업하고 있었으니, 건물 구역 조성 같은 큰 결정을 내릴 때는 굉장히 현명한 선택을 내려야 했습니다. 안 그랬다간 이런 스케일의 프로젝트는 완성할 엄두도 못 낼 테니까요.

저는 이런 한계를 잘 알고 있었기 때문에, 배경 속에 구현할 건물 구역의 크기와 양을 신중하게 결정했습니다. 저는 배경 안에 마을을 하나 통째로 구현해놓고 다양한 모양의 집들을 만들어야 한단 사실을 잘 알고 있었습니다. 그래서 널빤지 하나 벽 하나씩 올려가면서 건물들을 짓기보다는, 다양한 모양의 커다란 건물 부품들을 몇 개 만들어 놓고 이것들을 조합해서, 서로 많이 닮지는 않은 건물들을 만들어낼 수 있었습니다. 그렇게 전체 건물 하나가 완성되면, 저는 창문이나 굴뚝같이 작은 건축 부품들을 또 만들어 붙이면서 세부적인 장식을 꾸며 개성의 차이를 크게 벌렸습니다. 이를 통해 플레이어들의 눈에는 똑같은 건물이 하나도 없는 것처럼 보일 수준으로 건물들에 개성을 부여할 수 있었습니다. 

자연 환경 요소들을 배치할 때에도 같은 방법을 사용했습니다. 뭐 식물이나 바위 같은 경우에는 살짝 회전만 주어도 굉장히 달라보이기 때문에 처리하기가 훨씬 편했습니다. 그래서 바위와 나무, 식물같은 경우에는 별로 큰 사이즈의 애셋 라이브러리 없이도 생생하고 실감나는 자연 환경을 조성할 수 있었습니다.

 

애셋의 모듈화를 통해 아낀 시간은, 훨씬 많은 창의성을 요구하는 작업들에 투자할 수 있게 됩니다. 물론 팀이나 프로젝트의 스케일에 따라 모듈화와 장인정신 사이의 밸런스는 알아서 잘 맞춰야 하겠지만 말입니다.


머티리얼

저도 PBR 시스템을 사용해보고 싶어서 몇 번 테스트를 돌려보기는 했지만, 그런 시험을 통해 얻은 결론은 결국 제가 선택한 그래픽 스타일이 실감나는 머티리얼 세팅을 만들기에는 잘 맞지 않는다는 점이었습니다. 그래서 저만의 텍스처를 새로 구성하여 일일이 페인팅했고, 이 배경에 다른 실사 머티리얼을 쓰고 싶지는 않았습니다. 제가 가진 머티리얼 정보 대부분은 컬러 맵에 이미 존재하고 있는 것이어서, 디퓨즈나 노멀 맵으로만 존재하는 머티리얼들에 대해서는 아주 간단한 해결책을 사용했습니다.

금속이나 반사광이 필요한 부위가 있는 모델들의 경우, 그 부위를 마스크드 아웃처리하고 일정값의 메탈릭과 러프니스 효과를 준 다음 약간의 반사 효과를 부여하되, 제가 원하는 핸드 페인팅 효과를 망치지 않을만큼만 부여했습니다. 

물론 어떤 모델들은 특유의 개성 때문에 더 많은 정성을 들여야 했습니다. 다행히 머티리얼 노드 에디터가 굉장히 사용하기 쉬운데다 “바람”같은 특수한 요소들에는 전용 노드도 있어서, 손쉽게 움직임을 부여한 다음 제가 원하는 대로 모델이 일렁이는 모습을 바로바로 확인할 수 있었습니다.

 

터레인

언리얼 엔진 4에 내장된 터레인 형성 기능을 사용해 보니, 엔진에서 가장 강력한 기능 중에 하나처럼 느껴지더군요. 특히나 제가 배경을 다시 블록아웃하던 단계에서, 터레인의 레이아웃을 잡는 것은 굉장히 빠르게 진행이 되었습니다. 물론 저는 이미 UDK 버전의 블록아웃을 가지고 있어서 이것만 따라서 길과 산을 조성하고 식물 툴로 나무와 식물, 그리고 바위들을 배치하면 되었지만요. 이 작업 단계는 너무나 빨리 진행되는데다 상호작용성도 높았고, 방금 지형을 막 바꿨다고 생각하면 어느새 식물 툴이 각 위치에 알맞는 환경 소품들을 자동으로 배치해놓고 있더라고요. 이렇듯 먼저 진행된 작업물에도 거의 변형을 가하지 않고 추가적인 작업을 할 수 있던 덕분에, 세세한 디테일까지 신경쓸 필요 없이 더 큰 그림에 집중해서 프로젝트를 끝마칠 수 있었습니다. 

터레인의 텍스처 같은 경우에는 랜드스케이프 머티리얼을 만들어서, 머티리얼을 지형 위에 곧장 페인팅했습니다. 이런 방법으로 절벽과 오솔길, 그리고 잔디밭을 만들어서 플레이어들이 어떤 길로 나아가야 할지 파악하기 쉽게 했습니다. 이 단계에서는 머티리얼들에 굉장히 간단한 설정만 해놓고 바로 노멀 맵으로 넘어갔는데, 지면에 딱히 노이즈를 넣어봐야 나머지 배경 때문에 주의만 산만해졌기 때문이죠. 장면의 배경에 따라 대략 3~5개 가량의 텍스처들을 다양한 랜드스케이프 머티리얼에 추가해놓고, 에디터 내부에서 터레인 위에 페인팅을 하기 시작했죠. 

 

결론

언리얼 엔진 4로 갈아탄 것은 정말 많은 것을 배울 수 있었던 경험인 동시에, 콘텐츠 제작에서 새로운 경향에 따르는 것은 결코 두려워할 일이 아니라는 사실을 절실하게 느낄 수 있는 기회이기도 했습니다. 이런 거대한 프로젝트 전체가 단 한 명의 아티스트에 의해 만들어지는데도, 엔진 자체가 굉장히 안정적이고 반응성도 높다 보니 전체 제작 속도와 워크플로우의 진행도 빨라졌을 뿐더러 별달리 큰 문제 없이도 이런 거대한 오픈 월드를 만들어낼 수 있었습니다. 제가 구상한 거대한 배경이 이렇게 시각적으로 구현된 것을 보니 굉장히 기쁘네요. 엔진에 관해 정말 많은 정보를 얻은 덕분에, 나중에는 더 멋진 프로젝트를 만들 수 있을 것 같습니다. 물론 배울 것이 아직 많기는 하지만요 :)

이번에 제가 쓴 블로그 포스트를 보고, 여러분도 한 명의 배경 아티스트이자 학생이 언리얼 엔진 4를 가지고 어떤 경험을 했는지 간접적으로나마 느끼셨다면 좋겠습니다.

다들 재미있는 창작 합시다.
Tobias

www.tobiaskoepp.com