▲ 박준석 오토데스크 부장

[인벤게임컨퍼런스(IGC) 발표자 소개] 박준석 오토데스크 부장은 오토데스크에서 샷건 엔지니어 및 테크니컬 스페셜리스트로 활동 중이다.

한 때 게임 내에서 풀 3D 그래픽으로 구현한 동영상이 나왔을 때 유저들이 놀라움을 금치 못했던 적이 있었다. 지금의 일부 대작 게임은 단순히 게임의 영역을 넘어서 영화나 실사 영상의 자리까지 노리는 것처럼 보이기도 한다. 실제로 영화에서 CG 그래픽을 만들 때 게임 엔진을 사용하는 경우를 보았을 때, 가능성이 없는 허황된 이야기처럼 들리지는 않는다.

그 이면에는 다양한 분야의 전문가들의 노력이 뒷받침되어야 한다. 이미지 원화를 처음으로 그려내는 원화가, 3D 모델링을 구현하는 모델러, 모션과 애니메이션을 담당하는 애니메이터, 음향 및 배경음악을 담당하는 음향 디렉터 중 하나라도 없으면 유저가 기대하는 수준의 작품은 나오지 않기 때문이다.

다양한 분야의 협업이 이루어지고, 각 분야의 작업량 자체도 방대해진 지금의 게임 업계에선 좀 더 효율적으로 업무를 처리하는 방안에 대해 고민하고 있다. 이에 박준석 오토데스크 부장은 오토데스크에서 제작한 파이프라인툴인 'Shotgun'을 통해서 파이프라인을 통한 분업 프로세스가 얼마나 업무 효율성을 높여주는 지에 대해서 설명하고자 한다.


※본 강연 기사는 내용 전달 및 편집의 용이성을 위해 강연자의 시점에서 서술했습니다.




최근 3D 게임들, 특히나 '대작'이라고 불리는 게임들 중에는 흡사 영화와 같은 퀄리티의 그래픽을 보여주고는 한다. 비단 그래픽뿐만 아니라 애니메이션이나 모션도 옛날에 비하면 보다 부드럽고 자연스럽게 처리가 되었다.

위와 같은 3D 그래픽 작업을 진행할 때 주로 사용되는 툴들은 3ds Max나 마야다. 국내에서는 주로 3ds Max를 사용하지만, 외국에서는 마야를 사용하는 빈도가 상당히 높다. 3ds Max와 마야 중에서 어느 것이 좋다, 라고 단적으로 말할 수 없는 것이 3ds Max와는 다른 마야만의 장점이 있기 때문이다.

마야의 특징으로는 애니메이션 플레이백이 가능하다는 점이다. 위 기능은 뷰포트 2.0이 나오면서 가능해진 점인데. 이에 따라서 애니메이션을 플레이백하면서 세부적으로 다듬기가 용이해졌다. 또한 Parallel Rig Evaluation 기능을 통해서 캐릭터 리그 컨트롤 속도가 향상되었다. 뿐만 아니라 3D 캐릭터를 위한 다양한 툴셋이 제공되고, API를 활용해 게임 파이프라인을 간소화하고 효과적인 워크플로우를 제작하는 것이 가능하다. 그 외에도 마야는 비교적 열려있는 편이기 때문에 개인에 맞춰서 커스터마이징하기도 용이하다.


3ds Max의 경우는 노드 기반의 MCG workflow를 통해서 대규모의 모델링을 빠르게 제작 및 수정할 수 있는 기능이 뒷받침되어있다. 또한 기존에 구축된 모델링 방식이 다양하기 때문에, 이를 토대로 빠르고 다양하게 모델링을 할 수 있다는 장점도 있다. 또한 파이선(Python), .Net을 활용해서 커스텀 툴을 제작하는 것도 가능하다.


어느 것을 사용하든, 게임을 제작하기 위해서는 필연적으로 에셋이 필요하다. 규모가 작은 게임이면 에셋이 많지 않지만, 방대한 규모의 게임에서는 그만큼 다양한 에셋을 요구한다. 일례로 월드 오브 워크래프트에서는 스킬과 아이템, 버프 등이 굉장히 다양하다. 이를 표기하기 위한 아이콘의 에셋들은 일일이 세는 것이 힘들 정도로 많다. 포르자 모터 스포츠 등 레이싱 게임의 경우에도 시리즈가 지나면서 차량들을 추가했고, 그에 따라서 차량 에셋들도 놀랄 만큼 많아졌다. 이는 그만큼 구현해야 하는 것들이 많아졌고, 작업량도 많아졌다는 것을 의미하는 것이기도 하다.

▲ 월드 오브 워크래프트의 스킬, 아이템, 버프 에셋은 나열하면 마치 모자이크처럼 보일 정도로 많다

▲ 레이싱 게임도 에셋이 이제 차량 몇 대 정도로 끝나지 않는다

당연한 일이지만 이 작업을 혼자 하는 것보다, 서로 분업하는 것이 훨씬 더 빠르다. 그리고 분업을 할 때, 그 과정이 원활히 이루어지면 이루어질수록 작업의 효율도 높아진다. 보다 분업을 좀 더 빠르고, 원활하게 이루어지게 하기 위해서 다양한 툴들이 만들어지고 있다. 지금 소개하는 'Shotgun' 또한 그 일환으로 만들어진 툴이다.

'Shotgun'은 클라우드 베이스로 만들어진 파이프라인 툴이다. 클라우드 베이스인 이유는 내부에서의 분업 외에도 외주를 준 업체와의 협업을 용이하게 하기 위함이다. 파이선을 기반으로 하기 때문에 확장성이 용이하고, 따라서 협업을 할 때 호환성의 문제도 최소화시켰다.

기존의 클라우드 기반의 서비스들이 있음에도 클라우드 기반의 파이프라인 툴을 새로 고안한 이유는 단순하다. 기존 클라우드 시스템의 경우 에셋을 수정하고자 할 때, 공유하고 있는 인원 중 누군가가 해당 에셋을 수정하고 있으면 그 작업이 끝날 때까지 수정 작업에 관여할 수 없다. 그런 클라우드 시스템의 문제점을 보완하는 파이프라인에 대한 수요가 발생했고, 이에 맞춰서 'Shotgun'이 나오게 된 것이다.

에셋의 수정 외에도 Shotgun이 나오게 된 계기는 또 하나 더 있다. 업무 프로세스를 체크할 때 주로 사용하는 엑셀 등의 파일은 업무가 진행됨에 따라서 용량이 기가바이트 단위로 올라가게 된다. 파일이 방대해진 만큼 업로드와 다운로드할 때 시간이 소모되며, 이에 따라 제때 제때 신속하게 체크하기 번거로워진다. 이를 개선하면 업무가 좀 더 효율적으로 진행될 것이라 파악했기에 Shotgun이 만들어진 것이다.

Shotgun에서 데이터가 저장되는 방식은 기본적으로 클라우드 방식이다. 따라서 클라우드에 올라온 데이터를 개인 PC에 저장하는 것도 가능하고, 다운로드와 인스톨이 별도로 필요하진 않다. 보안에 있어서는 사이트에 로그인하는 방식으로, 데이터 자체가 HWS 형식로 저장되며 Shotgun은 별도의 서버를 통해서 운용된다. 서버 자체에도 2중 보안이 되어있으며 투팩터 인증 및 IP Whitelist, IP 제한 등 다양한 보안 시스템을 구비했다. 다만 액티브X 및 인터넷 익스플로러는 지원하지 않는다.

▲ 인터넷 익스플로러와 액티브X는 지원하지 않는다

Shotgun은 기본적으로 플랫폼으로 작동한다. 즉 데이터를 받고, 저장하고, 불러오고, 시연하는 방법에 대한 코어 구조를 갖고 있다. 그 위에 기능에 따라 다양한 모듈을 채용함으로써 원하는 기능을 맞춤식으로 사용할 수 있도록 구현해두었다. 그와 같은 방식으로 구현했기에 필요로 하는 기능들이 많아지면, 모듈을 확장하고 수정하면서 업데이트를 진행하기 용이했다. 그래서 지금도 꾸준히 수정하면서 업데이트가 진행되고 있다.

▲ Shotgun의 기본 구조

Shotgun의 이 구조는 프로젝트 공정을 시작하게 하기 위한 기초적인 틀이다. 이 위에서 진행되는 프로젝트 공정은 사실 회사마다 용어도 다르고, 방식이 다 다르다. 그렇지만 공통적인 것은 있다. 일반적인 용어로 이를 설명하면 프로젝트를 하나 설정한 뒤, 그에 맞는 에셋을 준비하는 작업은 기본으로 거친다. 그리고는 에셋을 구성하기 위한 공정 과정을 거치게 된다. 에셋의 컨셉, 디자인, 모델링, 텍스처를 하나하나 갖춰가고, 그 각각의 요소마다 다른 버전들을 구비하고 각기 다른 버전들을 조합해감에 따라서 다양한 에셋을 만들어가는 것이 기본적인 프로젝트 공정 방식이다.

Shotgun은 이와 같은 작업을 분업화하는 데 도움을 준다. 비단 실무적인 부분 뿐만 아니라, 매니저와 슈퍼바이저 등이 작업 상황을 보고서 관리할 수 있도록 도움을 주는 메뉴들을 지원한다. 이에 따라서 좀 더 다양한 분야의 협업과 피드백을 가능하게 하고, 분업이 원활하게 진행하게 했다.

▲ 실무자 외에도 관리자 등도 작업을 보고 참여하기 용이하도록 추가된 메뉴들

다만 현재로서는 Shotgun의 DB 자체는 2byte 지원이 안 되기 때문에 메뉴 등은 한글로 나오지 않는다. 그러나 Shotgun DB가 아닌 외부 데이터는 한글로도 저장이 가능하다. 사진과 영상의 경우, 원본 파일의 용량이 클 경우에는 웹에 플레이할 수 있도록 트랜스코딩이 되어서 저장된다.

실무적인 부분으로 돌아가면, Shotgun에서는 에셋과 태스크의 작업을 배분하거나 레벨 단위를 바로바로 화면상에서 확인할 수 있도록 구성되어 있다. 또한 수정했을 때, 각 버전에 따라서 에셋이 달라진 것도 비교해서 확인할 수 있다.

한 업체에서 준 샘플을 보면, 해당 업체는 원화를 그린 뒤 3D 모델링을 위한 전반적인 작업을 외주로 맡겼다. 이 과정에서 외주 업체에게 파일을 일일이 보내지 않아도 원본 참고가 가능하고, 수정된 작업을 제때 확인하고 원본과 대조하는 작업을 거칠 수 있었다. 수정된 작업들은 스냅샷 형식으로 미리 볼 수 있기 때문에, 파일을 열거나 하지 않아도 버전에 따라 어떻게 바뀌어 가는지 파악하기 쉬워졌다.

▲ 한 업체에서 준 샘플, 왼쪽 상단 이미지가 원화다

▲ 다양한 에셋들을 스냅샷 형식으로 미리 체크가 가능하다

또한 수정 작업이 이루어졌을 때 인박스의 노트가 각자의 메일함으로 전달되기 때문에, 이를 바로바로 확인하고 피드백이 가능한 것도 장점이다. 확인을 못했더라도 에셋페이지, 작업페이지에서 누가 어떤 작업을 했는지 나와있기 때문에 업무 공유가 좀 더 용이하게 했다. 그 외에도 자기 계정의 마이 태스크를 통해서 자신에게 주어진 업무량이나 노트 등을 확인할 수 있도록 함으로써 업무를 보다 효율적으로 관리하는 데 도움이 되도록 했다.

전반적인 프로젝트의 진행 상태를 볼 때에는 리스트뷰를 통해서, 그 절차가 다르게 진행되는지 확인할 수 있다. 리스트뷰에는 각 파트 별로 구분이 되어있으며, 어떤 일이 진행되고 있고 누가 어느 일을 하는지를 좀 더 체크하기 편하도록 세션이 나누어져 있다.

▲ 리스트뷰에는 스테이터스를 표기하는 마크를 통해서 작업 상태를 확인하기 편해졌다

프로세스의 진행 사항은 단순히 텍스처나 2D, 3D 모델링 외에도 애니메이션이나 영상으로 구현된 정보까지도 작업 과정이나 수정을 거친 버전들 하나하나 확인 가능하다. 또한 진척도, 스케줄 진척도 등도 그래프로 산출해 좀 더 직관적으로 알 수 있다. 다만 그래프의 경우는 아직 원그래프 등 다양한 형태를 지원하지는 않고 있으며, 이 점은 추후에 업데이트 될 예정이다.

▲ 작업 통계도 그래프로 산출된다. 다만 현재는 막대그래프 형태로만 표시된다

프로세스 확인 중에서 가장 번거로운 부분 중 하나는 애니메이션 파트다. 애니메이션은 하나의 고정된 형태가 아니라, 프레임에 따라 변화하기 때문에 움직임이 기록된 각 프레임을 체크하고, 해당 프레임의 정보를 수정해나가야 하기 때문이다. 그리고 이것이 3ds Max 등의 툴을 통하지 않고 다른 형식으로 저장했을 때, 어떤 식으로 구현되는지 확인하려면 일일이 익스포트해봐야 했다.

그런 번거로움을 줄이기 위해서 Shotgun에서는 익스포터를 지원하도록 해서 별도로 익스포트한 파일을 열지 않아도 출력된 형식을 파악할 수 있게 했다. 익스포터 창에서는 아웃풋만 가능할 뿐만 아니라, 지정된 프레임의 애니메이션만 익스포트하고 확인할 수 있도록 하는 기능도 갖췄다.

3ds Max에서 지원하는 복셀바인딩 기능도 지원해 애니메이션 과정에서 버텍스가 엉클어지는 현상도 최대한 방지할 수 있다. 레퍼런스를 위한 모션패스 기능도 지원이 되고, 파이선 스크립트를 사용해서 프로그래밍을 하듯 애니메이션 작업이 가능하다. 이렇게 해서 익스포트된 파일은 기본적으로 FDS 파일로 저장되며, 저장된 이후에는 뷰어를 통해서 마야나 3ds Max를 구동하지 않아도 파일을 확인할 수 있다.

▲ 복셀바인딩은 저렇게 애니메이팅을 하다 엉클어진 버텍스를 바로잡아주는 기능이다

그러나 더 세부적인 수정에 들어갈 때는, 프로젝트에 쓰는 툴 자체를 불러와야 할 때가 있다. 이와 같은 경우 때문에 Shotgun 데스크탑이 따로 존재한다. Shotgun 데스크탑은 샷건을 이용할 때, 프로젝트에 쓰는 툴을 같이 불러올 수 있도록 만들어진 또 다른 형식의 Shotgun이다.

▲ 툴 자체를 불러와서 작업할 수 있는 Shotgun 데스크탑

Shotgund 데스크탑 설치 이후에 3dx Max의 경우 실행했을 때, 자체적으로 Shotgun이라는 메뉴가 생긴다. 이 메뉴를 통해서 Shotgun에 있는 정보를 읽을 수 있고, 별도로 파일을 열지 않고 Shotgun에 있는 파일을 불러오거나 노트를 남기는 일도 가능하도록 했다. 또한 이를 통해서 작업하는 중에 변경 사항이 생겨도 노트를 통해서 신속하게 의사전달 가능하고, 수정이 가능해졌다. 저장할 시에는 섬네일도 생기고, 작업에 대한 디스크립션도 생기기 때문에 다른 사람들이 작업한 내용을 파악하는데 시간을 단축할 수 있게 되었다.

에픽게임즈의 파라곤은 Shotgun의 이 기능을 적극적으로 사용한 사례다. 파라곤의 에셋을 작업할 때, 에픽게임즈에서는 캐릭터 아트 파이프라인으로 Shotgun을 사용했다. 처음에 기초 모델을 작성한 뒤, 이를 바탕으로 모델링을 구현하고 텍스처를 하나하나 만들어갔다. 그리고 캐릭터가 어느 정도 완성이 되었을 때 배경을 작업하고, 배경과 배치된 모습을 프리뷰로 통해 확인하면서 수정할 점을 찾고 고치는 작업을 통해서 좀 더 빠르게 수정작업이 이루어졌다. 또한 캐릭터 스킨에 따른 바리에이션도 원본과의 대조를 통해서 작업과정을 확인할 수 있고, 수정 및 피드백도 쉽게 이루어졌다.

▲ Shotgun을 이용한 파라곤의 캐릭터 아트 파이프라인

또 다른 사례로는 EA에서 개발한 NBA 2K17가 있다. EA는 NBA 2K17 개발 중 특히 표정 애니메이션 작업에서 Shotgun을 활용했다. 애니메이션 작업 도중에 사정상 비주얼 컨셉에서 변화가 요구되었으며, 설상가상으로 경영진은 제작 기간을 단축하기도 했다. 따라서 EA 애니메이션팀은 빠른 리뷰 프로세스가 필요해졌다.

▲ NBA 2K17의 페이스애니메이션 제작 과정에서 Shotgun을 이용한 분업이 이루어졌다

기존의 모션 캡처 솔브 방식으로는 하드웨어의 리소스 관리를 빠른 시일에 하기에는 벅찼다. 모션 캡처 솔브로 진행하면서 비디오 트랙을 하게 되면, 트래킹 데이터를 푸는 과정이 필요하다. 트래킹 데이터를 푼 뒤에는 이를 게임에 쓰일 데이터 형식으로 변환하고, 이를 게임 내 마테리얼로 만든 뒤 애니메이션 형태로 만들어내는 것이다. 이렇듯 모션 캡처 솔브 방식은 현실의 모션을 토대로 사실감 있는 움직임을 보여준다는 장점이 있지만, 애니메이션 작업이 최종적으로 컨펌되지 않으면 처음부터 돌아가야 하기 때문에 빠르게 처리해야 하지 못한다는 단점이 있었다.

▲ 기존의 워크플로우는 이런 방식이었다

Shotgun에서는 이벤트가 올라가게 되면, 파이선을 기반으로 한 것이라면 자동으로 솔브가 이루어진다. 그리고 애니메이션은 컨버트되어서 Shotgun에 저장된다. 이를 통해서 솔브와 컨버트 작업을 일일이 할 필요가 없어서 작업 효율을 높였다. 또한 애니메이션의 등록과 Playblast의 업로드가 동시에 이루어지기 때문에 애니메이션과 Playblast의 비교와 리뷰도 쉽게 진행할 수 있다.

▲ 분업 과정에서 생기는 두 과정을 한 번에 할 수 있게 되었다

에셋의 스테이터스가 바뀌게 되면, Shotgun에서는 자동적으로 체크가 된다. 이 과정에서 관리자가 어프루브로 상태를 바꾸게 되면,어프루브한 시점에서 작업은 최종본으로 변환이 된다. 다만 이를 별도의 명령어로 알려주지는 않고, Shotgun 내 프로젝트의 디스크립션이나 디스플레이에서 나오는 방식으로 되어있다. 그렇지만 컨펌 후에 적용하고, 이를 알리는 절차까지도 자동화가 되었기 때문에 기존보다 빠른 업무 처리가 가능하게 되었고, 단축된 제작 기간 내에 완성하는 데에 도움이 되었다.

▲ 최종 컨펌 이후 알리고 적용하는 것도 일일이 파일을 받아서 하는 수고를 덜었다

Shotgun에 대해서 여러 가지로 설명했지만, 이 개념이 생소하거나 혹은 낯선 사람이 있을 수 있다. Shotgun은 하나의 툴이기 때문에 이 도구를 사용하지 않은 사람에겐 분명 생경한 것이 당연하기 때문이다. 그러나 인간은 불편함을 없애기 위해서 도구를 사용해왔다는 사실을 떠올려보자. 비단 Shotgun이 아니더라도 도구에 대한 이해도가 있고, 그리고 분업에 대한 이해가 있다면, 업무에서 느끼는 불편함을
해소하고 보다 효율적으로 일할 수 있을 것이다.