취미로 게임을 만들면서 시나리오상의 심각한 난관에 부딪힌 차, 기술적인 부분이라도 재검토해보고자 언리얼엔진4 관련 강좌글을 씁니다.
비정기적이고, 그다지 필자가 전문적인 사람이 아니라서 아마 본격적이고 진지하게 엔진을 다뤄보고싶다면 언리얼엔진 관련 서적을 구매해보시는 것이 더욱 현명할 듯 합니다. 해당 게시글은 돈없는 사람들을 위한 언리얼엔진에 본격적으로 입문하기위한 포석을 까는 글이라고 보면 되겠습니다.
다소 필력이 부족하고, 저 역시 전문적으로 게임업계에 종사하시는 분 처럼 뛰어난 실력을 가지고 있지는 못하기 때문에, 약간약간의 미숙한 부분이나 틀린 점이 있을 수는 있겠습니다만 최대한 줄이고 고치도록 하겠습니다. 발견시 충고 및 조언 부탁드립니다. 또한, 저는 알만툴보다는 언리얼엔진을 더 오래 다뤘기때문에, 알만툴을 예로들때 불완전하거나 아예 틀려버린 것들이 좀 있을수도있습니다. 아무래도 크고작은 차이는 있기마련이라... 이 경우엔 그냥 시크하게 무시해주시면 감사하겠습니다._(_ _)_
뱀발로 제가 아방스 언리얼엔진 부문 강좌로서는 영광스러운 첫 타자로군요(...).
이번 글에 대해서는 본격적인 작업과정이나 블루프린트까지 나가지는 않고, 간단히 소개하고 언리얼엔진을 시작하기 전에 알아두면 좋을 내용들을 소개하고자합니다.
1.개요
Unreal Engine serise. 에픽게임스라는 회사에서 개발한 게임개발엔진, 의미상 차이가 다소 있습니다만 크게 중요한 것은 아니니 『알만툴 시리즈』의 심화버전이라고 보면 되겠습니다. 역사는 유구하지만 사실 게임을 만드는데있어서 엔진만 있으면 되지 굳이 역사까지 알아야할 필요는 없겠죠. 정 궁금하다면 리그베다 위키나 위키피디아의 자료를 이리저리 흝어보시면 훨씬 자세한 정보를 얻으실 수 있을겁니다.
버전은 상당히 많은 편이고, 버전마다 완벽하게 똑같지 않고 차이점이 있으니 모두 다루긴 힘들고, 또 필자의 안타까운 경력부족으로 인해 모두를 전부 설명할 재간이 되지않으니 중점적으로는 언리얼엔진4를 다뤄보도록합니다. 언리얼엔진4가 제일 편하고 최적화가 잘 되어 있어요. 무엇보다 가격이 쌉니다.
2.가격
본격적인 설명에 들어가기앞서서, 아마 새롭게 3D게임제작에 관한 꿈과 희망을 지닌분들이 가장 궁금한것, 아마 가격이겠죠.
가격은 월 2만원으로, 매달 2만원씩을 지불해야하는 정액요금제입니다. 타 엔진이나 모듈에 비해서는 굉장히 싼축에 속하고, 때문에 진입장벽이 꽤 낮은편이지만, 그럼에도 일반인분들이 아무것도 바라지않고 비상업적목적으로 사용하기에는 다소 무리가 있을법한 가격입니다.
▲매달 찾아오는 강탈. 자동결제라서 소리소문없이 빠져나간다. 안당해본사람은 알수가없다.
은근히 강조하지만 "매달" 2만원씩입니다. 한번 2만원내고 땡이 아니에요. 때문에 정말로 진지하게 3D관련작업을 좋아하시거나 관심이 있는 분이 아니면 섣불리 시도하기 힘들기도합니다. 하지만 한번 사면 돈이 아까워서라도 계속 해보게되고, 노력해보고, 시도하면서 힘들고 노곤해지지만 빠른속도로 터득하게 되기는 합니다.
3.기능
언리얼엔진의 기능은 무궁무진합니다. 가장 대중적ㅇ으로 알려진 건 아마도 UDK(Unreal engine Development Kit)이나, UE3, 혹은 현재 압도적인 선두체제를 달리고있는 UE4, 즉 언리얼엔진4입니다. 눈보라 엔터테인먼트나 하늘림의 자회사인 베쎄네스다 소프트웍스의 경우엔 대부분 스스로 개발한 엔진을 쓰기는 합니다만, 개개인이 하기에는 힘든일이고, 굳이 귀찮은 짓을 할필요가 없기때문에, 대부분 엔진시스템을 사용하죠. UE4의 기능을 중점적으로 다뤄보기는 하겠으나, UE4가 어떤면에서 우월하고 압도적인지, 또 진입장벽이 어째서 백배는 더 낮은지, 자세한 고찰을 거쳐봅시다. 쓸부심
UE3와의 간략한 비교를 해보자면, 많은 사람들이 꼽는것은 일단 그래픽적인 진화일겁니다. 앞서서말하지만, 그래픽의 진화가 언리얼을 택하는 원인이 된다고는 보기어렵습니다. 곁가지 이유가 등재될수있는데, 첫번째로는 많은 사람들이 하는 오해인 『버전이 올라갈수록 그래픽도 좋아진다』에서 비롯되는 이유입니다. 재차 강조하지만 그건 사실이 아닙니다. UE4로도 얼마든지 2D의 게임을 찍어낼수있고, 그래픽 디자이너의 역량이 좋지않다면, UE4라는 엔진으로도 하프라이프 미만의 똥그래픽을 뽑아낼수있습니다. 혹은 모바일을 겨냥할경우 의도하에 그래픽을 하향시키기도합니다. 반대로 UE3, 즉 상대적으로 넘버링이 낮은 엔진에서도 뛰어난 그래픽을 만들어낼수있고, 정말로 실감나는 연출과 묘사를 거칠수도있어요. 엔진은 작동시키는 도구일뿐, 게임 자체의 역량과 성과, 즉 결과를 좌우하지는 못합니다. 그건 전부 제작자의 몫에 달렸다고 볼 수 있죠. 두번째로, 언리얼엔진4로 만드는 뛰어난 그래픽은 유니티라던지, 다른 툴로도 충분히 만드는것이 가능합니다. 언리얼만의 독보적인 점수라고는 보기힘듭니다.
물론, 언리얼엔진4로 들어오면서 『뛰어난 그래픽을 만들 수 있는 조건과 기능』들이 향상된것은 맞습니다. 광원처리나 그림자효과, 파티클 처리등이 많이 유능해진것은 사실이죠.
이것도아니고, 저것도아니라면, 왜 굳이 UE4가 선택할만한 가치가 있을까요? 첫번째로는 UE4의 심장이라고 할 수 있는 블루프린트에 있습니다. 블루프린트는 게임개발자의 입장으로보자면 정말로 독보적이고, 압도적이라고밖에 할 수가 없습니다. 기존, 즉 UE3까지 사용되었던 기능은 키스멧(Kismet)라는 프로그램이었습니다. 프로그래밍언어를 알아야하고, 안다고하더라도 메모장에 쌩자로 갖다가 때려박아야되는, 아주 번거로운 툴이었죠. 키스멧도 물론 대단한 기능임에는 이견이 없습니다만, 우리같이, 세상을 좀 더 예술적이고 충혈된 눈으로 보지않기를 바라는 사람들의 경우에는 난감하다고 볼 수 밖에 없었습니다. 대표적인 사례로, 만약 개발자분이 정말 형이상학적으로 날갯짓해대는 완벽한 용가리를 만들어냈다고 가정합시다. 하지만 용가리가 세계관에 하나만 있으리란 법은 없겠죠. 다양한 용을 만들고싶다면 개발자는 일일히 용가리를 구성하는 코드데이터를 한줄씩복사해서 갖다붙여야만했습니다. 아마 용의 계곡같은걸 기획중이라면 해탈했겠죠.
하지만 UE4에서는, 블루프린트라는 기능이 나옵니다. 그것도 키즈멧보다 백배는 우월한 기능을 가진채로요. 키즈맷과 호환되는 파일들을 만들지는 않습니다만, 블루프린트에는 구 키즈멧에서 갖고있던 모든 기능을 전부 포함하고있습니다. 만약 원한다면, 키즈멧시절의 기능으로 돌아갈수도있겠죠. 하지만 블루프린트의 가치는 여기에서 국한되지않습니다. 무엇보다도, 블루프린트를 사용하는데에는 수학적 지식과 변수의 종류를 판독하는 능력, 그리고 정리능력과 문서작업능력만 있으면 됩니다. 코딩능력이나, C++나 ruby, java같은 프로그래밍 용어가 필요하지가 않습니다. RPG2K의 변수나 조건분기를 초월적으로 강화시킨 기능이라고 보면되겠습니다. 그렇다면, 블루프린트로 만들어지는 성과는 프로그래밍에 비해 불완전한가? 그렇지않습니다. 블루프린트의 기능중 소분류로 제공되는 메모탭등, 프로그래밍에서 만드는 기본적인 문법적구성내용을 모두 포함하고있기에, 뒤쳐지지않습니다.
물론 프로그래밍언어와 병용해서 사용할수도있고, 이 경우 시너지효과로인해 단연 압도적인 속도와 강력하고 포괄적인 내용을 한번에 다루는 기능도 무리가 아니게 됩니다만, 프로그래밍 언어는 배우는데에 오랜 기간이들고, 전문적인 지식을 요하기때문에 일단 이정도 선에서 만족합시다(...).
정리하자면, 첫번째 이점과 UE4를 구매하고 동시에 도전해볼만한 가치는 3D를 전문용어없이 만들수있다정도가 되겠네요.
두번째로는 블루프린트가 가진 특이한 구조에 있습니다. 그 쉽다는(비교적 상한선에서) 알만툴도 이벤트를 열어보면 지독한 줄글식 소이벤트로 나뉘어져있죠. 아이템의 추가, 커먼이벤트 불러오기, 변수조작 등. 하지만 블루프린트는 이러한 기능과 심지어 코딩까지 모두 마인드맵으로 처리합니다. 원인과 결과로 나뉘어서 특정조건을 취하면 결과가 나온다, 예를들어 마우스를 클릭하는 원인이 입력되면, 결과로 에네르기파가 나간다,와 같은 처리를 모두 마인드맵으로 이용할 수 있다는거죠. 그리고 원인과 결과사이에는 전기코드처럼 실들이 있고, 원인에서 결과로 넘어가는 "이벤트"가 작동되면 개발자의 눈이 보다 안정적이되게끔 직접적으로 실이 빛나는 등의 작동을 취하여 블루프린트 작업을 용이하게끔 합니다. 때문에 에러수정이나 버그리포팅, 자신이 만든 이벤트가 작동이 잘 되는지를 판단하기가 아주 쉬워집니다.
▲예를 들기위해 현재 필자가 작업중인 게임의 블루프린트 일부를 캡쳐했다. 각각의 박스가 원인 및 결과를 나타내고, 실들은 이 둘을 잇는 연결고리쯤으로보면된다. 실들의 색깔에도 의미가있으나, 이건 나중에.
익숙해지기만한다면 확실히 압도적으로 편리한 기능이기는 합니다만, 사실 어느정도의 영어단어실력이 필요하기는 합니다. 한글화가 되어있어도 기능부분은 한글화가 되어있지 않기때문에 각 단어들이 의미하는 중의적인 의미정도는 알아두어야 하긴해요.
너무 블루프린트에 대한 자랑과 더불어서 언리얼엔진4의 홍보 스폰서짓을 한거 같기는 합니다만, 다른 용이점과 편리성을 설명하자면 글이 천문학적으로 길어지고, 후에 강좌드릴 기능에 대한 설명까지 잡아먹어서, 분량확보를 위해 부차적인 기능과 용이성 및 편리함등을 소개하는것은 이후 강좌에서 차차 설명하도록하겠습니다.
4.기타
■기본적으로 UE4는 3D제작툴입니다. 고사양3Dㄱ게임쯤은 무리없이 돌릴만한 컴퓨터사양이 필요합니다. 제 작업환경은 GTX780 / Ram32GB / 64비트 / i7-4790 @ CPU 3.60GHz이고, 여기서 현재 무리없이 작동하는 것을 확인했지만, 멀티태스킹 도중에는 역시 간혹 렉이 걸리기도 할정도로 엄청난 메모리 소모를 자랑합니다. 물론 이건 사용자설정에 따라 최대한 메모리 사용을 줄일수있습니다만, 아무래도 기본적인 사양은 필요하겠죠.
■엔진을 만진다고 만사해결이 아닙니다. 3D모델링제작과 기타 원화작업에 소요되는 시간이 엄청납니다. 제 경우엔 시나리오 완료후 팀을 기획해서 제작할 생각입니다만, 자신이 모델링과 그래픽작업에 조예가 깊다할지라도, 하나하나하는데에 소요되는 시간이 뼈빠지므로 마음맞는 사람을 잘 만나는것이 중요합니다. 말했듯이 엔진은 도구일뿐이고, 게임의 성망은 개발자의 역량에 좌우됩니다.
■근성이 없다면 OUT. 3D를 만지는 만큼 입체적인 설정이 중요합니다. 같은 짓을 몇번이나 반복해야하기도하고, 지루함을 견디고 사명감과 의무감에 도취될줄도 알아야합니다. 오랫동안 의자를 혹사시킬 자신이 없다면 2만원은 돈날리는거나 진배없습니다.
■처음부터 복잡한걸 시도하지마세요. 아케이드나 3D를 이용하여 간단한 조립게임등을 만들어서 배포하고, 버그가없는지 검토하세요. 지속적으로 반복하다보면 눈에띄게 진화합니다.
■막히고 어렵고, 이해안되는건 누구나 그렇습니다. 거기서 멈추면 다른 걸 시도해도 똑같을뿐입니다!
5.사담
이미 글 중간중간에 스파이로서 심어둔 사담이지만, 따로 분류하자면 해당 게시글은 여러번 수정될 요지가 있다는 점을 공지하기 위함입니다.
글을 장기간쓰다보니 써야될말을 까먹기도하고 검열도 제대로안된탓인지 두서없고 많이 따글따글합니다. 글을 지속적으로 검토하면서 글을 추가하기도 하고 삭제하기도할겁니다. 사진자료 역시 계속 추가될예정이구요. 더이상 변경할게없다 싶으면 다음 강좌로 넘어가겠습니다. 조언 및 충고에 대해서도 감사하게 받습니다 :)
개인적인 소망으로는 3D강좌게시판도 아방스 프론트페이지에 실렸으면 하는 바램이 있습니다(...)