로그인

회원가입 | ID/PW 찾기
/special/nboard/75/?n=21231 주소복사

(영상) 마비노기2를 위한 애니메이션 시스템

데브캣의 실시간 헬퍼-조인트 시스템 GDC 2011 강연

새로운 MMORPG를 만들 때 개발자라면 누구나 기존 게임과 다른 차별성’을 추구한다차별화를 위한 첫 단추는 기술을 연구하고 개발 기반을 갖추는 일. 넥슨 데브캣에서 <마비노기 2>를 개발하는 M2 팀도 이러한 고민과 도전을 하고 있다.

 

그 결과물이 지난 4일(현지기준) GDC 2011에서 발표됐다. 우리나라 게임업체가 GDC에서 비즈니스 세션이 아닌, 전문 개발 세션에서 강연하는 일은 지금까지 거의 없었다. 그것도 데브캣 개발자 2인이 직접 영어로 발표를 진행해 의미를 더했다. 참고로 이번 강연의 내용은 작년 KGC 2010에서 ‘M2 프로젝트의 절차적 캐릭터 리깅 시스템이라는 주제로 발표된 적이 있다.

 

데브캣은 그것을 1시간 분량으로 요약하고, 슬라이드를 영문으로 다시 만들고, 데모 영상을 새롭게 제작해 GDC 무대에서 선보였다. <마비노기 2>를 위해 데브캣이 어떤 노력을 하고 있는지 정리했다. /샌프란시스코(미국)=디스이즈게임 이재진 기자


 

김주복은 2001년 넥슨에 입사해 <마비노기> 리드 프로그래머와 프로그래밍 팀장을 맡았고,

지금은 <마비노기 2>의 테크니컬 디렉터로 일하고 있다.

김충효는 2001년 넥슨에 들어가 <마비노기> 3D 아티스트로 개발에 참여했고,

지금은 <마비노기 2>의 테크니컬 아트 디렉터를 맡고 있다.

 

 

■ 사전제작 애니메이션 데이터의 한계와 단점

 

<마비노기 2>를 만드는 데브캣 M2 팀은 기술적으로 그래픽과 애니메이션의 완성도를 최대한 높이는 데 주목했다. 카툰 렌더링으로 캐주얼한 느낌을 냈던 1편과 완전히 다른 2편을 만들기 위한 노력이다.

 

그렇게 나오게 된 GDC 2011 ‘실시간 헬퍼-조인트 시스템강연은 캐릭터 애니메이션의 한계를 깨려는 시도에 대한 이야기다.

 

M2 팀은 3D 캐릭터의 구현과 동작을 더 발전시키고 싶었다. 보통 3D 캐릭터는 골격 구조의 뼈대를 움직여서 동작을 바꾸는 Skeletal 애니메이션’ 방식을 쓴다. 뼈대를 다양하게 활용해서 캐릭터의 미세한 동작 변화를 구현하는 방법이다.

 

하지만 이 방식은 관절의 수가 너무 적다. 캐릭터의 손목이 꼬이는 등 부자연스러운 동작이 나올 위험성도 있다. 과거와 같은 관절 수준으로는 차세대 게임을 만드는 데 무리가 따른다. 그래서 팔의 보조 관절이 손의 회전에 따라 조금씩 도는 트위스트 관절을 쓰기도 한다. 보조 관절을 덧붙여서 해결하는 방식이다.

 

기존 방식의 한계(위)를 극복하려는 시도가 트위스트 본(아래) 방식이다.

 

그런데 보조 관절을 늘릴수록 애니메이션 데이터의 규모도 늘어난다. 사전제작(Pre-Baked) 애니메이션을 사용하는 기존의 방식은 유연성이 떨어진다. 게임을 만들다가 동작을 조금만 바꿔도 애니메이션 데이터를 다시 구워야한다. 보조 관절을 늘려도 마찬가지 상황이 벌어진다.

 

만에 하나 클로즈 베타테스트에서 유저들이 동작이 어색해 재미없다고 지적하면 이를 개선하기 위해 해야 할 일이 산더미처럼 쌓인다. 다양한 코스튬에 따른 특화 동작을 구현하는 일도 큰 부담으로 다가온다. 요즘 MMORPG는 코스튬도 많고, 용량도 큰데다 자주 바뀌기 때문이다.

 

지금까지 사용된 방식은 캐릭터의 동작을 수정할 때 할 일이 너무 많다.

 

사전제작 애니메이션 데이터의 캐릭터가 물리효과에 따라 움직일 때 비현실적인 동작이 나올 위험성도 높다. 한마디로 사전제작 애니메이션 데이터는 수정이 너무힘들다. 고칠 때마다 다시 구워야 하니까.

 

 

■ 애니메이션을 실시간으로 굽는 데 도전하다

 

그래서 M2 팀은 미리 굽지 않고온라인게임의 클라이언트에서 구현되는 애니메이션 시스템을 원했다. 답은 하나였다. 미리 굽지(Pre-Baked) 않고 실시간으로 클라이언트에서 굽는 것이다. 시중의 미들웨어를 찾아봤지만 없었다. 그래서 직접 연구하고 만들어 낸 결과물이 실시간 헬퍼-조인트(Helper-Joint) 시스템이다.

 

M2 팀은 미리 구운 애니메이션이 없어도 되는 실시간 헬퍼-조인트가 필요했다.

 

M2 팀은 헬퍼-조인트 시스템을 갖추면 애니메이션 데이터의 용량이 줄어들고, 작업 과정이 유연해지고, 각종 상황에 따른 애니메이션 반응이 자연스러워질 것으로 기대했다.

 

물론 눈앞에는 넘어야 할 첩첩산중이 펼쳐졌다. 기술적인 문제가 많았다. 무엇보다 애니메이션 데이터 사전제작에 쓰이는 3D MAX Maya 같은 제작툴의 주요 기능을 <마비노기 2> 클라이언트에서 구현하는 일이 만만치 않았다.

 

 

■ 실험과 도전의 연속, 헬퍼-조인트의 탄생

 

기존 방식이 캐릭터의 동작을 사전에 조립해서 게임에 적용했다면, M2 팀은 데이터를 게임 안에서 실간으로 조립하는 방식을 원했기 때문이다. <마비노기 2> 클라이언트가 3D MAX나 마야(Maya) 같은 제작툴의 기능도 갖춰야 한다는 이야기였다.

 

넘어야 할 산이 많았다. 일단 이런 경험도 없었고,

강력한 제작툴의 기능을 클라이언트에서 구현하는 일도 까다로운 작업이었다.

만일 구현에 성공한다고 해도 많은 유저가 접속하는 MMORPG에서 성능의 저하로

이어질 가능성이 있었다. 모든 것이 숙제였다.

 

헬퍼-조인트를 위해 <마비노기 2> 클라이언트에서 구현해야 할 기능들의 최종 목록.

 

연구 단계에서는 인체에서 구현하기 어려운 부위에 집중했다.

가장 까다로운 여성의 어깨 동작을 해결하면 다른 부위의 동작 구현이 수월해지기 때문이다.

 

김충효 테크니컬 아트 디렉터가 직접 모델이 되어 어깨의 움직임을 연구했다.

 

최적화는 가장 큰 이슈였다. 오늘날의 캐릭터는 보통 100~200 개의 뼈를 갖고 있다.

즉 사전제작 애니메이션이 아니라, 게임 클라이언트에서 실시간으로

애니메이션을 구울 경우 부하가 걸릴 위험성이 높아진다.

그러나 기술적인 문제에 끈질기게 도전한 결과, 퍼포먼스가 나오기 시작했다.

 

 

■ 데모로 보는 실시간 헬퍼-조인트 시스템

 

M2 팀은 숱한 연구와 시행착오 끝에 ‘리얼타임 헬퍼-조인트 시스템’을 만들어 냈고, 게임 속에서 실시간으로 애니메이션을 굽고 싶다는 꿈을 실현시켰다. 영상으로 확인해 보자.

 

 


※ 이 영상은 <마비노기 2>의 개발을 위한 연구(R&D) 과정에서 만들어진 것입니다. 기술적인 면에서는 향후 서비스 버전과 연관이 있을 수 있지만, 콘텐츠 면에서는 앞으로 완성될 <마비노기 2>와 다를 수 있습니다. ‘헬퍼-조인트 시스템의 결실이 어떤 것인지, <마비노기 2>에 쓰일 기술이 어떤 느낌을 주는지 확인하는 정도로 생각해 주시기 바랍니다. /편집자 주


 

헬퍼-조인트 적용 전과 후 (어깨와 무릎)

※ 플레이 버튼(▶)을 누르면 시작합니다.



 

미리 구운 몸/얼굴/손의 데이터를 헬퍼-조인트 시스템으로 돌리면

캐릭터의 신체 동작과 코스튬의 움직임이 실시간으로 계산된다.

 

코스튬 애니메이션에 적용한 헬퍼-조인트

※ 플레이 버튼(▶)을 누르면 시작합니다.




■ 헬퍼-조인트 구현으로 얻은 장점과 단점

 

실시간 헬퍼-조인트 시스템의 구축으로 M2 팀은 여러 가지 장점을 얻었다. 애니메이션 애셋(데이터)의 유지와 관리가 이전보다 훨씬 쉬워졌다. 헬퍼-조인트를 통한 동작의 완성도 향상도 수월해졌다. 하이 퀄리티의 코스튬을 만드는 일도 용이해졌다.

 

실시간 헬퍼-조인트 시스템의 구축으로 얻은 장점들.

 

또한, 위의 2번째 데모 영상에서 나온 것처럼 헬퍼-조인트 시스템은 말 같은 탈것이나 몬스터에 적용할 수도 있다. 이를 활용하면 몬스터의 개성 있는 동작을 만들 수 있어 다양성을 높일 수 있다. 끝으로 데이터의 패키지 크기가 줄어든다.

 

물론 약점도 있다. 일단 작업자들이 실시간 헬퍼-조인트 시스템에 더 익숙해져야 위의 장점들이 살아난다. 기존에 익숙한 상용 제작툴이 아니기 때문이다. 아울러 코스튬을 제작하고 관리할 때 헬퍼-조인트 시스템을 활용하기 때문에 관리가 까다로워질 수도 있다. 최적화할 수 있게 됐지만, 여전히 게임 성능(퍼포먼스)에 영향을 주는 부분은 무시할 수 없다.

 

상대적으로 극복해야 할 약점도 있다.

 

 

■ 세계 게임 개발의 중심에서 만난 반가운 강연’

 

GDC 2011에서 만난 한국 개발자들의 영어 강연은 신선했고 반가웠다. 김주복 디렉터와 김충효 디렉터가 번갈아 강연을 진행하면서 영어 발표임에도 흐름이 끊어지지 않고 자연스럽게 이어진 부분도 좋았다. 작년 KGC 2010 발표로 내용을 정리한 다음 얼마나 많이 반복해서 연습했는지 느껴지는 대목이었다. 참고로 GDC의 강연은 한참 전에 신청해야 한다. M2 팀의 경우 작년 9KGC 2010가 열린 시점에 이미 GDC 2011 강연 신청서를 냈다.

 

필자의 옆에서 강연에 완전히 몰입해 있었던 한 외국 테크니컬 아티스트.

 

아무래도 기술적인 내용이 많이 들어간 강연이다 보니 외국 개발자들도 대부분 그래픽 관련 기술진들이었다. 필자의 옆에 앉아 있던 한 외국 개발자는 강연 내내 아이패드에 꼼꼼하게 내용을 정리하며 집중했다. 강연이 끝난 후 소감을 묻자 그는 어려운 시도를 하고 그것을 해결하는 과정이 인상 깊었다. 그들이 만든 시스템의 데모 애니메이션이 아주 자연스러워서 감명 깊었다고 말하며 돌아갔다.

 

현장에서 함께 있었던 다른 국내 개발자는 준비한 노력과 열정이 느껴져서 보기 좋았다. 통역 없이 영어로 직접 강연해서 놀랐다. 솔직한 심정으로는 (이렇게 GDC에서 강연한 것이) 부럽기도 하고, 우리도 도전해 봐야겠다는 생각을 하게 됐다고 말했다.

 

GDC 2011 강연이 끝난 후 외국 청중의 질문에 대답하고 있는

김충효 테크니컬 아트 디렉터(위)와 김주복 테크니컬 디렉터(아래).

최신목록 1 | 2 | 3