뉴스 > 온라인

[KGC] 강연을 통해 미리 만나본 마비노기2의 윤곽!

/ 1

넥슨의 데브캣 스튜디오와 마비노기는 매우 각별하다. ‘데브캣’이라는 이름을 걸고 세상에 등장한 첫 온라인 게임이자, 지금의 기틀을 갖추게 된 데 가장 큰 공을 세운 타이틀임은 누구도 부정하기 어려운 사실일 것이다. 그리고 현재 데브캣 스튜디오의 차기작으로 준비되고 있는 프로젝트 M2, 마비노기2(가칭)는 그들이 7년 동안 이어온 마비노기 브랜드의 새로운 기대작이다.

9월 15일 코엑스 컨퍼런스 홀에서 진행된 KGC2010 3일차에서는 세 명의 개발자가 강연자로서 현재 개발중인 프로젝트 M2를 토대로 다양한 노하우를 공유하는 시간을 가졌다. 넥슨 자체 개발자 컨퍼런스인 NDC에서 발표되었던 주제를 토대로, 공개적인 자리에서 그들이 공개한 개발 과정의 이야기를 함께 들어보자.


▲프로젝트 M2 개발에 참가중인 김충효(좌), 김주복(우) 디렉터


3Ds MAX의 애니메이션을 그대로 구현하고 싶어요!

애니메이션이란 실시간으로 실루엣이 변하는 것을 정의한다. 게임에서는 일반적으로 골격구조를 변화시켜서 캐릭터를 움직이고, 그 겉을 외형이 둘러싸고 있다. 현세대의 캐릭터는 폴리곤 수도 많고 유저들이 요구하는 수준도 높아 구현이 매우 난해하다. 그렇기 때문에 적은 수의 관절로는 차세대 게임의 캐릭터를 만들기엔 한계가 있다. 예를 들어 손목 같은 경우에도 손가락을 쥐거나 펴는 세세한 효과를 위해서는 세부 관절이 필요한 식이다.

그런데 만약 장기간 프로젝트, 혹은 프로젝트 막바지일 때 이러한 관절을 수정 및 새롭게 추가하면 어떻게 될까? 3Ds MAX에서는 문제가 없었던 부분들이 클라이언트 속에 구현한 애니메이션에 반영되지 못하는 문제가 생겨버리게 된다. 특히 온라인 게임과 같은 장기 프로젝트에서는 이런 부분들이 시간을 낭비하는 원인으로 작용하게 된다. 그래서 결국, 김충효 아트디렉터는 클라이언트에서도 3Ds MAX에서와 최대한 동일하게 구현할 수 있는 툴을 개발팀에 제안하기에 이르렀다.


▲애니메이터가 사용하는 3Ds MAX와
실제 클라이언트에서의 결과물을 일치시키는 것이 목표였다

 

직접 내 몸에 마커를 그리고 사진을 찍었다

김충효 디렉터는 일단 가장 정확하고 자연스러운 관절 구현을 위해 가장 문제가 되는 대표적인 관절 부분들을 추려냈다. 골반, 팔꿈치 등 그가 추려낸 다양한 부위 중에서 유난히 복잡한 골격은 바로 `어깨` 였다. 각도가 바뀔 때마다 근육이 부풀고 주변의 골격과 외형 ? 특히 가슴의 움직임에 다양한 영향을 미치고 있었기 때문이었다. 하지만 상상하는 것 만으로는 한계가 있는 법. 결국 그는 직접 자신의 몸에 마커로 뼈대를 그리고 관절과 근육의 움직임을 세밀하게 촬영하여 ‘사람의 어깨 관절’을 연구했다.


▲자신의 몸을 실제 연구 도구로 활용한 김충효 디렉터

연구한 결과를 토대로, 그는 3Ds MAX의 몇몇 기능들을 통해 팔의 움직임과 회전 각도를 측정, 이것으로 어깨의 위치와 다양한 관절들의 방향을 결정하는데 성공했다. 그리고 최종적으로 프로젝트M2테스트 클라이언트에서 동작시킨 모습을 촬영한 아래의 영상이 그가 집요하게 캐릭터의 관절을 리깅(캐릭터나 NPC모델에 애니메이션을 엮어주는 작업)한 결과물이다.


▲프로젝트 M2 캐릭터 애니메이션 시연영상

 

프로그래머 입장에서는 어떠했을까

그렇다면 프로그래머의 측면에서 이러한 애니메이션 구현은 어떤 노력이 필요했을까? 일단은 프로그래머의 입장에서 어떤 기능들을 구현해야 3Ds MAX 속 컨트롤러와 동일한 환경을 클라이언트에서 제공할 수 있을지, 애니메이터가 필요로 하는 옵션들과 그 구성을 하나씩 추려내는 것이 먼저였다. 애니메이션을 담당한 김충효 디렉터에 이어서, 그의 아이디어를 프로그래밍으로 구체화시킨 김주복 디렉터가 해당 내용에 대한 이야기를 풀어나갔다.

두 프로그램의 가장 대표적인 차이점은 애니메이션의 축이 되는 뼈대의 우선순위를 지정하는 컨트롤러에서 발견되었다. 3Ds MAX는 나름의 계산방식이 있었지만, 클라이언트에서는 이러한 부분이 제대로 갖춰지지 않았을 뿐만 아니라 이를 똑같이 구현하자니 계산식과 절차가 지나치게 복잡해지는 문제가 우려되었다. 결국 각 관절 별로 부모 뼈대와 자식 뼈대 식의 개념을 정의하고, 이를 따라 순차적인 계산이 이루어지도록 함으로써 비슷한 효과를 얻어낼 수 있었다. 또한, 계산식 사용 전 추가적인 연산이 필요한지에 대한 유무를 확인하게 하여 해당사항이 없는 관절부분에 대해서는 짧은 계산으로 빠르게 넘어갈 수 있도록 하여 최대한 연산시간 단축시키는 최적화를 이뤄냈다.


▲하나를 넘고 나면 또 다른 난관이 엉뚱한 곳에서 발생하고...

앞의 과정들을 통해 결국 그들은 3Ds MAX에서의 움직임과 가장 유사한 클라이언트 툴을 만들어냈지만, 이 기술이 차세대 MMORPG에 있어서 절대적인 해답이라 하기엔 단점도 아직 남아있다. 김주복 디렉터는 해당 툴을 사용한 퍼포먼스 결과를 표로 보여주며 “이러한 캐릭터 리깅 방식은 MMORPG에서 대량의 캐릭터에게 사용하기엔 성능상 부담이 있는 것이 사실이며, 모델러 혹은 애니메이터가 가진 지식의 폭이 매우 중요하다. 하지만 새로운 개념의 갑옷과 다양한 효과를 사실적으로 구현하기 위해서는 이러한 방식이 도움이 될 것이다”는 자신의 의견을 피력했다.


▲어쨌든 고생 끝! 3Ds MAX와 가장 비슷한 퍼포먼스를 보여주는
프로젝트 M2의 클라이언트가 완성되었다

 

마비노기2의 오류보고 시스템은 이렇게!

김충효, 김주복 디렉터의 발표시간 후 백승엽 M2 유닛장의 ‘개발팀용 오류보고 시스템’에 대한 발표가 이어졌다. 보통 오류보고 시스템이라 하면 현재 상용화된 게임에서 유저들에게 생긴 오류를 자동으로 전송해주는 부분을 떠올리기 쉽지만, 그가 발표한 이 시스템은 현재 개발중인 프로젝트 M2 개발팀용으로 사용된 사례였다.


▲다음 세션을 이어 진행한 백승엽 유닛장

프로젝트 M2 개발팀에 이러한 자동 오류보고 시스템이 사용된 것은 애초에 증상이 발생한 즉시 신속하게 이를 파악하고 수정하기 위함이었다. 작업 중 오류가 발생하면 해당 코드에 관련된 담당자의 메일주소로 메모와 함께 관련 내용이 전송되기에, 프로그래밍을 잘 몰라 오류가 발생하더라도 보고에 소극적이었던 아티스트들의 숨겨진 오류들을 효과적으로 파악할 수 있었다. 문제는 그들의 예상을 뛰어넘을 정도로 엄청난 양의 오류보고 메일이 쏟아졌다는 것이겠지만.


▲이러한 개발팀용 오류보고시스템은 추후 유저용 시스템으로 응용할 수도 있다
실제로 M2의 이런 시스템은 허스키 익스프레스의 유저용 오류보고 시스템으로도 사용되었다

그리고 각 오류에 대한 가이드라인과 기초 대처법을 프로그래머가 미리 도움말 형태로 입력, 오류발생창에 함께 뜨게 하여 프로그래머에게 쏠리게 될 업무량을 줄여나갔다. 도움말이 자세할 수록 스스로 오류를 일부 수정하거나 다른 팀원이 질문하러 오는 일도 줄어들면서, 프로그래머들은 자발적으로 오류창의 도움말을 더욱 친절하고 자세하게 작성해나가게 되었다.

 

중요한 것은 타인의 아이디어를 존중해주는 자세

지난 5월 말 개최된 NDC 행사에서 백승엽 프로그래머는 “오류통계서버를 만들어보면 어떨까?” 라는 제안을 발표 말미에 했었다. 그리고 그 발표가 끝난 후, 이를 들었던 다른 동료가 직접 그가 제안했던 오류통계서버를 만들어주어 데이터를 축적하기 시작했다 한다.

프로젝트 M2의 캐릭터 리깅부터 오류보고 시스템에 이르기까지, 이러한 결과물들의 발단은 타인의 ‘아이디어’를 흘려 듣지 않고 이를 존중해주는 것에서 출발하고 있었다. KGC에서 만나볼 수 있었던 프로젝트 M2는 매우 단편적인 부분이었지만, 데브캣의 독특한 아이디어로 채워질 새로운 ‘마비노기’에 대한 기대감을 채우는 데엔 충분한 시간이었다.

이 기사가 마음에 드셨다면 공유해 주세요
플랫폼
온라인
장르
MMORPG
제작사
데브캣스튜디오
게임소개
'마비노기 2: 아레나'는 '마비노기'의 후속작으로, 플레이어와 게임을 시청하는 관객이 게임 내에서 직접적으로 영향을 주고 받으며 함께 즐기는 'MMO-ARENA'라는 장르를 채택했다. '마비노기 2: 아레나'는... 자세히
만평동산
2018~2020
2015~2017
2011~2014
2006~2010
게임일정
2024
12