작성자

  • 장민욱 (Graphics AI Lab)
  • 배우는 걸 좋아합니다.

이런 분이 읽으면 좋습니다!

  • 애니메이션 제작 단계를 효율화하는 AI 기술이 궁금한 분

이 글로 알 수 있는 내용

  • 광학식 모션 캡처 후보정 기술 소개 및 실무에 적용하기 위해 고려했던 요소


NC Research는 AI를 통해 게임 제작 과정을 효율화 할 수 있는 방법이 있을지 사내 여러 부서와 함께 방법을 의논합니다. 사내 부서의 요청으로 시작되어 현재 사내에서 사용하고 있는 기술 중 하나가 바로 “광학식 모션캡처 데이터 후보정 자동화 기술”입니다.

AI를 하셨다면 보통 Vision이나 Speech, 자연어 데이터를 다루셨을 겁니다. 그렇다면 Graphics AI Lab에서 다루는 얼굴/몸의 애니메이션 데이터 혹은 3D 데이터는 생소하실 거라고 생각합니다. 이 글에서는 모션 캡처에 대한 전반적인 설명과 어떤 어려움이 있는지 소개하겠습니다. 그리고 이 기술을 실무에 적용하기 위한 노력과 협업의 과정에 대해서도 공유하겠습니다.


고품질 애니메이션을 만들기 위한 모션캡처

이미지1. ‘블레이드 & 소울’ 각성 업데이트 트레일러에 적용된 모션캡쳐 촬영 원본 데이터(좌)와 후작업을 거친 최종 결과물(우)

게임에 사용되는 캐릭터들은 모두 움직입니다. 대부분의 움직이는 애니메이션 데이터는 모션캡처 데이터를 이용하여 제작됩니다. 모션 캡처는(이하 모캡) 인체에 센서를 달아 움직임을 추적하여 3차원 데이터를 얻는 기술입니다. 사람의 미세한 움직임을 얻기 쉽고, 실제 사람의 움직임을 추적하기 때문에 물리적/해부학적으로 자연스러운 데이터를 얻을 수 있습니다.

이미지2. 엔씨소프트 모션캡처 스튜디오

엔씨는 총 100대의 카메라가 있는 150㎡ 규모의 자체 모캡 스튜디오를 운영하고 있습니다. 엔씨에서 개발하는 모든 게임과 콘텐츠는 이 모캡 스튜디오에서 촬영되기 때문에, 매일 대량의 모션 데이터가 생기고 있습니다. 애니메이션 분야는 공개된 데이터셋이 많이 없고, 데이터의 양이 부족하다는 점을 고려하면 AI 연구자로서 엔씨소프트는 매우 매력적인 환경이라고 생각합니다.


광학식 모션캡처 방식의 특징과 에러 유형

모캡 기술 중 가장 대표적인 방식은 광학식입니다. 적외선을 반사하는 점들(이하 마커)을 사람의 관절 주변에 부착합니다. 다수의 적외선 카메라를 이용하여 반사된 적외선을 촬영하고, 삼각측량을 통해 3차원 데이터를 얻습니다.

이미지3. 모션캡처 촬영 현장

광학식은 다른 캡처 방식과 비교하여 아주 정밀한 정확도의 데이터를 얻을 수 있다는 장점이 있습니다. 그러나 마커가 사람의 신체에 막히는 등 카메라가 제대로 마커를 추적하지 못할 경우 데이터의 품질이 떨어지기도 합니다. 광학식 모캡에서 발생하는 대표적인 에러는 아래와 같습니다.

표1: 다양한 종류의 노이즈와 발생 원인

다양한 형태의 에러를 수정하는 후보정 작업을 마커 클린업(Clean-Up)이라고 합니다. 이 과정은 많은 시간과 인력이 필요합니다. 예를 들어 어려운 모션의 경우 1분 분량의 데이터를 수정하는 데 4시간 이상의 시간이 소요됩니다. 액션 촬영을 위해 확보한 모션이 10분만 나오더라도, 클린업을 위해 40시간이 필요한 셈입니다. 게임 개발 부서는 촬영 후에 모션을 바로 사용할 수 없고, 클린업 되기까지 몇 주 기다린 후에야 데이터를 획득할 수 있습니다.

이 과정을 AI로 자동화하여 시간을 단축할 수 있다면 얼마나 좋을까요?


마커 클린업을 돕는 AI 기술

앞서 설명한 클린업은 아래와 같은 순서로 진행됩니다.

표2: 클린업 수작업 공정

저희는 사내에서 촬영한 모캡 데이터를 학습하여 노이즈를 제거하고, 자연스럽고 부드러운 마커 데이터를 생성하는 AI 기술을 개발했습니다. 클린업 단계 중 Cut Key와 Fill Gap 단계에 해당되며, 가장 많은 작업 시간이 소요되는 단계입니다. 모캡 편집 툴에 플러그인 형태로 사내 Motion Capture Studio에 기술을 배포하여 후보정 작업 속도를 높이고 있습니다.


Cut Key AI

동영상1. Cut Key, Fill Gap 기술 소개

Cut Key AI는 마커 궤적이 부드럽지 못하고 튀는 데이터를 잡아 제거합니다. (한 프레임의 데이터를 Key 라고 표현합니다.) 이 문제가 어려운 이유는 Jitter 노이즈와 실제 사람의 움직임이 쉽게 구분되지 않기 때문입니다. 마커의 궤적 그래프를 보면 사람이 발을 딛을 때 발에 충격이 가기 때문에 발생하는 그래프의 모양과 Jitter 노이즈가 발생한 그래프의 모양이 유사합니다.

모캡 엔지니어가 직접 편집한 데이터를 정답으로, NC의 모든 모캡 데이터를 사용하여 Jitter가 발생하는 패턴을 학습하는 AI 모델을 학습했습니다. 이 과정을 통해 그래프상에서 눈으로 보기에 떨리더라도, 인접한 모든 마커가 동시에 같은 패턴으로 움직인다면 정상 동작이라고 간주할 수 있게 되었습니다.

저희는 AI 모델의 결과(마커의 떨리는 정도)를 0~1 사이의 신뢰도로 표현하고, 이 신뢰도는 ‘민감도’라는 이름으로 사용자에게 제공하고 있습니다. 사용자는 모션에 따라 민감도 값을 조정하여 Cut Key의 정도를 조절할 수 있습니다.


Fill Gap AI

동영상2. Fill Gap 기술

Fill Gap AI 기능은 기존 프로그램에서 제공하는 솔루션과 비교할 때 큰 장점이 있습니다. 마커 에디팅 프로그램에서 제공하는 Fill Gap 기능은 주변 인접한 마커와의 관계(거리)가 일정하다고 간주합니다. 하나의 마커가 사라지면 최소 3개 이상의 인접한 마커를 사람이 선택하고 복구하는 방식으로 수작업이 진행됩니다. 그러나 실제로는 주변 인접한 마커와의 거리가 일정하다는 전제는 잘 유지되지 않기 때문에 부정확한 결과를 얻게 됩니다. 가장 거리가 잘 유지될 거라고 기대하는 허리 마커 4개의 경우에도 동작에 따라 2~3cm 이상 거리가 벌어지기도 합니다.

반면, AI 기술은 다량의 데이터로 학습하기 때문에 마커를 통해 사람의 동작을 유추하고, 동작에 따른 마커의 위치를 복구할 수 있습니다. 그리고 동작에 따라 마커 사이의 간격이 유동적으로 변화하는 Gap에 대해서도 잘 동작합니다. 마커의 위치를 잘 따라가면서도, 기존 솔루션과 비교하여 더 다양한 동작에 대해 유연하게 대응할 수 있게 되었습니다. 기존 논문들과 동일한 모션으로 비교할 때도 논문은 센티미터 단위의 오차가 발생했지만, Fill Gap AI는 밀리미터 단위의 오차를 달성했습니다.


후보정 자동화 기술을 실무에 적용하기 위해 고려했던 요소

앞서 소개해 드린 자동화 기술은 사내의 모든 모캡 데이터를 후보정할 때 사용되고 있습니다. 많은 AI 기술이 나오고 있지만, 실무에 적용하는 것은 다른 연구 개발 전략이 필요합니다. 그렇다면 저희는 어떻게 이 기술을 실무에 적용할 수 있었을까요? 적용의 관점에서 프로젝트에 큰 진보가 있었던 사례를 정리하여 3가지 중요한 요소를 꼽았습니다. 저희의 경험이 실무에 기술을 적용하기를 원하는 AI 연구자들에게 도움이 되길 바랍니다.


사용자가 실제로 당면한 문제는 무엇일까?

AI 연구자가 풀어야 한다고 생각하는 문제와 사용자가 당면한 문제는 다를 수 있습니다. ‘사용자가 처한 가장 중요한 문제를 파악하고 먼저 해결하자’는 판단은 프로젝트의 진행에 매우 중요한 결정이었습니다.

프로젝트의 시작은 Fill Gap 단계를 자동화하여 작업 시간을 단축하는 것이었습니다. 당시엔 Cut Key는 사소한 문제로 여기고 데이터가 없는 구간, 특히 어려운 동작을 생성하는 Fill Gap을 AI가 해결해 주어야 할 문제라고 생각했죠. 그리고 Fill Gap과 관련된 기존 기술도 휠씬 많았습니다. 최신 모델들을 활용하여 Fill Gap 기능의 프로토타입을 공유했습니다만, 반응은 차가웠습니다. 직접 작업하시는 걸 보니, AI가 만든 모든 마커 궤적을 지우고, 처음부터 다시 수정하시더군요.

구두로 설명을 듣고, 문서로 절차를 이해하고 추측하는 것보다 관찰이 더 실제와 가까운 정보를 주었습니다. 그래서 이때부터 모캡 엔지니어분들의 실제 작업을 관찰할 수 있도록 부탁드렸습니다. 그 결과, 저희의 예상과 달리 Cut Key 단계가 가장 오랜 시간이 소요되었습니다. 그리고 편집 난이도에 따른 비중을 확인해 보니, 쉬운 난이도의 모션이 거의 대부분이었던 것을 분석해냈습니다.

그래서 Fill Gap 기능은 후순위로 미루고 가장 큰 비중을 차지하는 쉬운 난이도의 모션에 대해, 가장 많은 시간이 소요되는 Cut Key 기능을 고도화하는데 좀 더 시간을 쓰기로 결정했습니다. 이게 중요한 결정이었다고 생각합니다. 프로젝트의 시작엔 가장 적은 비중을 차지하면서 가장 잘하기 어려운 문제부터 접근했으니까요.


사용자를 관찰할 때 생기는 일

“자연스럽지 않다.” 정량적 평가가 어려운 분야에서 사용자에게 피드백을 구하면 이런 답변을 받곤 합니다. 해석하기 어렵죠. 사실 사람이 스스로 자신의 판단 기준을 구체적으로 설명하기는 어렵습니다. 저희도 모캡 엔지니어분들께 판단 기준을 여쭤보면 ‘눈으로 보기에 자연스럽게’ 혹은 이건 ‘아티스트의 영역’이기 때문에 기술로 해결하기 어려울 거라는 답변을 받곤 했습니다.

저희는 이 답변의 실체를 파악하기 위해 사용자를 면밀히 관찰하며 판단 기준을 파악했습니다. 모캡 엔지니어분들의 실제 작업을 다양한 방식으로 관찰하고 Profiling 했습니다.

  • 특정 파일을 편집하도록 부탁하고 옆에서 작업 관찰
  • 편집 영상 녹화 후 같이 살펴보며 ‘왜 그런 결정을 했는지’ 질문
  • 모캡 엔지니어가 한 파일을 편집하는 데 사용한 Operation의 갯수 측정

이런 방식을 통해서 ‘아, 이런 모양이 나올 때 떨리는 게 아니라 정상 마커로 간주하는구나’, ‘Gap이 잘 채워지는 걸 볼 때 이런 데이터를 참고하는구나’ 등의 기준을 파악하고 분석할 수 있었습니다. 이렇게 파악한 요소들은 기술 구현에 반영되거나 AI 기술의 품질을 평가하는 데 사용했습니다.


연구가 잘 되고 있다는 시그널

연구를 진행하며 많은 가설을 세우게 됩니다. 여기서 중요한 건 그 가설을 검증하면서 무엇을 새롭게 바꾸고 개발할지를 발견하는 것입니다. 가설이 맞고 틀리고 여부는 핵심이 아닙니다. 저희도 실제로 사용자에게 피드백을 받을 때마다 가설을 계속 수정하고 개선하면서 실제 문제와 점점 가까워졌고, 사용자 만족도도 높아졌습니다. 사용자와 같이 만든다는 느낌도 들었습니다.

저희는 이처럼 빠르게 Prototype을 만들어서 사용자와 소통하고, 이를 빠르게 다시 반영, 개선하는 개발 방식을 기본 원칙으로 삼았습니다.

저희는 모캡 엔지니어가 사용하는 툴 안의 플러그인 형태로 기술을 제공했습니다. 플러그인은 사용자의 행동에 따라 제공할 기능과 순서가 결정되므로, 사용자 행동 가설과 검증 테스트를 반복했습니다. 예를 들면 모캡 엔지니어들은 Cut Key를 할 때 상체, 하체 등 몸의 단위를 나누고 눈으로 확인합니다. 이 방식을 따라 우리의 Cut Key 기능도 신체 단위를 제공할지, 결과를 확인할 수 있는 어떤 장치를 둘지, 민감도 조절을 어떻게 할 지 등 여러 테스트가 필요했습니다.

사용자 테스트를 하면 내부에서 여러 번 자체 테스트를 거쳤음에도 불구하고 저희의 예상과 다른 결과가 대부분이었습니다. 테스트할 때마다 늘 새로운 정보와 새로운 방향성이 생겼고, 그에 따라 기능과 사용 방식, UI/UX를 개선했습니다. 결국 사용자인 모캡 엔지니어분들과 함께 이 기술을 만들고 개선해 나가고 있다고 생각합니다.

이미지4. 사내 개발 컨퍼런스 발표

연구자로서 기술의 완성도나 품질도 중요하지만, 사용자가 어떤 사람이고, 어떻게 이 기술을 받아들이고 사용하는지에 따라 기술의 효과가 크게 달라질 수 있다는 사실을 체감했습니다. 프로젝트 진행 과정에서 얻은 노하우들은 사내 개발 컨퍼런스 NCDP에서 두 차례 발표하기도 했습니다. 모캡 엔지니어분들과의 협업과 피드백에 다시 한번 감사의 말씀을 드립니다.


앞으로

기술을 적용하기 시작했지만, 아직 개선해야 할 점이 많이 남아 있습니다. Cut Key AI가 정상 동작과 노이즈를 구분하지 못하는 케이스라든지 역동적인 동작의 경우 Fill Gap AI의 품질 개선의 여지가 있습니다. 앞으로 지속적인 업데이트와 함께 데이터가 점점 더 쌓이면, AI 기술을 통해 품질을 개선하고 새로운 연구를 통해 가치를 제공할 수 있을 거라 기대합니다. 그럼 다음번에도 의미 있는 실무 경험과 연구 노하우를 나눌 기회가 있다면 소개하겠습니다. 긴 글 읽어 주셔서 감사합니다.