플레이어는 게임 속 캐릭터의 자연스러운 모션을 통해서 굉장한 몰입감을 가질 수 있습니다. 동물은 동물답게, 사람은 사람답게 움직이는 캐릭터 모션을 얻기 위해서는 '모션 캡처'를 진행하게 됩니다. 최근 인기를 끌고 있는 <어벤져스 : 엔드게임>의 빌런 '타노스' 역시 해당 역을 맡은 조슈 브롤린이 모션 캡처를 통해 열연해 화제가 되었죠.
최근 AI는 '목표 중심적인 AI'로 설계된다. 목표 중심적인 AI란 목표만 알려주면 과정보다도 이를 달성하는 데 최적의 결과를 내는 AI를 말한다. 대표적인 예로 구글의 알파고가 있다. 구글의 알파고는 '바둑에서 승리한다'라는 목표를 그 누구보다 성공적으로 수행했다. 인간의 인식 수준을 넘는 수를 보여줬다.
하지만, 유문원 연구원은 강화학습 기반 운동 모션을 예로 들며, 목표 중심적인 AI는 사람처럼 자연스럽게 행동하지 않음을 지적했다. 실제로 목표 중심의 AI가 행하는 운동 모션은 인간이 행하는 운동 모션보다 뛰어날 수는 있지만, '인간답진 않고' 이상했다. 그 AI에겐 '사람다움'이 부족한 것이다.
유문원 연구원과 Motion AI팀은 목표만 달성하는 AI보다는 사람이 자연스럽다고 느끼는 AI가 더 가치있다고 여겼다. 그들에겐 '사람다움'이야말로 고퀄리티(높은 품질)였다.
Motion AI팀은 모션 캡처를 사용하지 않고, 사람답게 느껴지는 모션을 개발하고자 했다. 고퀄리티 모션을 AI가 배우고, 학습된 AI가 이를 바탕으로 새로운 고퀄리티 모션을 만들면 좋겠다는 생각까지 이르렀다. 유문원 연구원은 구체적으로 '자연스럽게 절벽을 올라가는 모션을 만드는 AI'를 프로젝트의 목표로 설정했다.
사람도 책이나 참고서로 공부해서 지식을 얻듯, AI 역시 결과를 내기 위해서는 잘 정제된 데이터로 학습하는 과정이 필요하다. AI가 고퀄리티 모션을 만들기 위해서는 고퀄리티 모션 데이터로 학습해야만 했다. 좋은 AI를 위해서는 수 만 개의 데이터가 필요했지만, 현실적으로 많은 양의 모션과 관련된 데이터를 만들거나 구하는 것은 불가능했다.
당시 고민했던 유문원 연구원은 아이키네마(IKINEMA)의 상용 라이브러리에 있는 단 하나의 '등반 모션'을 이용하여 양질의 데이터를 추출했다고 밝혔다. 먼저, 하나밖에 없는 등반 모션에서 초기 위치 손, 발 4개와 나중 위치 손, 발 4개, 총 8개 위치 데이터를 추출했다. 이어, 이 위치 데이터를 기준으로 랜덤으로 변형하여 다양한 응용 등반 모션을 만들었다.
즉, 똑똑한 '복사-붙여넣기'를 통해 단 하나의 데이터에서 수만 개의 고퀄리티 데이터가 만들어졌다. 게다가 새로운 수많은 고퀄리티 데이터를 생성하는 과정은 대부분 자동화로 이루어졌다.
하지만, AI가 학습하는 데이터와 만들어야 하는 고퀄리티 모션은 차이가 컸다. AI가 배우는 데이터는 8개의 손ㆍ발 위치 데이터와 3차원 공간 위치를 포함하고 있지만, 출력하는 데이터는 실시간으로 움직이기 때문에 500개 이상의 데이터가 필요했다. 한글을 처음 배운 학생에게 논리에 맞게 5백자 글쓰기를 시키는 수준이었다.
유문원 연구원은 이런 문제를 해결하기 위해 하나의 문제를 두 개로 나눴다. '경로' 개념을 추가하여 손과 발만 자연스럽게 이동시켰고, 이동한 위치에 맞게 어울리는 포즈를 따로 출력시켰다. 하나의 AI가 아닌 두 AI가 처리하는 셈이었다. AI가 만들어낸 경로가 어색하지 않도록, 부드러운 곡선으로 경로를 보정하는 기능도 추가했다.
열심히 만든 AI가 게임에 영향을 줘서는 안 된다. 자연스러운 모션을 만들기위해서 실시간 게임 속 캐릭터의 행동이 끊긴다면 목표하던 구현이 아니었다. 인게임에 들어가기 위해서는 AI도 최적화가 필요했다.
유저 게임 환경에 영향을 최소화하기 위해서 AI에게 미리 학습을 시켰다. 고퀄리티 모션을 만드는 AI를 학습시키는 시간은 매우 오래 걸리지만, 학습된 AI 자체는 모션데이터의 양에 비해 굉장히 작은 크기다.
일반적으로 복잡한 AI는 GPU를 사용하지만, 게임은 GPU에 유휴자원이 없다. 그래서 Motion AI팀은 CPU에 남는 유휴자원을 이용하기로 결정했다.
또, 모션을 만드는 과정들은 숫자만 다르고 연산 구조가 같다. 따라서 AI가 한 명씩 백 번 계산하지 않고, 연산구조가 같기 때문에 백 명을 한 번에 계산하는 매트릭스 연산을 이용해 더 빠른 계산이 가능했다.
실제 게임에서 AI는 매프레임의 동작에 대해 자연스러운 포즈를 잡으며 적절한 경로로 절벽을 올라가는 모션을 만들었다. 동시에 백 개가 넘는 모션을 생성했지만, AI는 게임 내 병목현상을 만들지 않았으며 각 연산 시간은 1ms 이내로 매우 빨랐다.
이번에 개발한 AI가 고퀄리티 모션을 만들었지만 몇 가지 보완점이 여전히 있었다. 예를 들어 잡기 위한 타겟을 모두 점으로 파악하고 있기 때문에, 모션의 일부분이 벽면에 파고들기 쉽다. 벽면이 끊켰거나 현실적으로 존재하지 않는 벽을 올라갈 때 모션의 렌더링이 파괴된다.
유문원 연구원은 현재 AI보다 더 많은 데이터를 바탕으로 학습하면 해결되지 않을까 기대한다고 말했다. 또, 이런 고퀄리티 모션 생성 AI가 지금은 '벽을 올라가는 모션'에만 적용됐지만, 춤이나 액션 등 다양한 모션에 적용하기 노력 중이라 프로젝트 근황을 밝히며 강연을 마쳤다.