[유나이트] 최적화된 AI 모델을 어디에서나, '유니티 센티스'

게임뉴스 | 윤서호 기자 |



최근 몇 년 사이, AI가 게임 개발자들 사이의 화두로 떠올랐다. 알파고 등으로 친숙한 머신러닝은 물론, 키워드만 제시하면 그에 맞춰 결과물을 만들어내는 생성형 AI까지 여러 AI를 게임 개발 과정에서 활용하기 위한 R&D가 급속도로 진행되고 있다.

이에 맞춰 유니티는 지난 2023년, AI 솔루션 '뮤즈'와 '센티스'를 베타테스트 버전으로 공개했다. 그중 '센티스'는 유니티가 그간 연구해왔던 인공 신경망 기술을 활용한 솔루션으로, 런타임에서 구동해 그 자체로 더 향상된 퍼포먼스를 보여주는 것은 물론 개발자가 여러 외부 AI 모델을 유니티에서도 쉽게 사용할 수 있도록 해주는 기술이다. AI가 화두가 된 시대, 센티스가 과연 개발자들에게 어떤 편리함과 놀라움을 보여줄지 유나이트 2024 세션을 통해서 짚어볼 수 있었다.




만일 실시간으로 대사에 맞춰 입술이 싱크되어 움직이는 모바일 게임을 구현한다고 가정해보자. 전통적인 모델들은 감정이 실리지 않거나, 혹은 다이나믹한 움직임을 일일이 구현하기 위해 여러 차례 모션 캡쳐가 필요했다. 그러나 이제는 실시간 AI 모델을 적용, 비교적 간단하게 이런 기능을 구현할 수 있게 됐다.

그렇지만 단순히 쉽게 구현할 수 있다는 것만으로는 해결되지 않았다. 유니티는 그 AI 모델을 어떻게 좀 더 쉽고 빠르게 가져올 수 있을지 고민해왔다. AI 모델을 유니티에 적용하기 위해서는 먼저 모델을 이를 유니티에 가져오거나 연동하고 게임에 배포하게 된다. 그 과정에서 기존 클라우드 서버 추론은 네트워크에 연결이 되어야 하고, 레이턴시 문제가 필연적으로 발생한다. 또한 배포 과정에서도 클라우드 서버 비용이 발생한다. 파이썬 서버 기반은 로컬로 구동할 수 있지만 파이썬 서버가 요구되며, 유니티의 시스템과 통합하기 어렵다. 또한 파이썬 인터프리터가 필요하기 때문에 PC에서만 활용할 수 있다.

그래서 유니티는 유니티 엔진 런타임에서 구동할 수 있는 인공 뉴런망 '센티스'를 구축해왔다. 이번 시연에서 보여준 데모는 유니티와 협력 관계를 맺고 있는 허깅 페이스의 AI 모델와 유니티의 ML 에이전트에 센티스를 활용, 유니티 안에서 빠르게 최적화해서 적용할 수 있게끔 했다. 이러한 사례가 센티스 발표 초기에 보여줬던 NPC, '오브'였다.



▲ 클라우드 서버 기반은 대규모 AI 모델을 활용하긴 좋지만 레이턴시 등 문제가 있고



▲ 파이썬 서버 기반 추론은 서버 문제를 비롯해 플랫폼 범용성에서 뒤쳐지는 만큼



▲ 그런 제약 없이 런타임에서 바로 AI 모델을 도입하는 인공 신경망 '센티스'를 발전시켰다

스피치 인코더, 디코더 모델과 웨이브폼 인코더인 휴버트를 사전에 훈련시켜서 ONNX로 전환한 이후에 유니티로 임포트, 마이크로 들어오는 오디오를 인풋한 뒤 스킨 메시 렌더러 블렌드 셰이프로 아웃풋이 되도록 추론 모델을 씬에 적용했다. 해당 과정에서 클라우드나 파이썬 기반이 아닌 유니티 런타임 기반의 센티스가 바탕이 된 만큼, 유니티가 지원하는 웹 및 모바일까지 모든 플랫폼에서 지원이 됐다.

또다른 사례로는 캘리포니아 대학교 산타바바라 캠퍼스에서 연구 중인 VPU 장치가 언급됐다. VPU는 실시간으로 렌즈로 담은 현장을 대뇌에 전기 신호로 바로 전달, 인식할 수 있도록 하는 장치다. 실시간 환경을 100% 렌더링해서 보여주기에는 아직 소형 기기로 한계가 있기에 AI 모델이 카메라의 영상을 분석, 중요한 정보를 추려서 그것만 바로 전달해주게 된다. 예를 들어 정지 표지판이 있으면 표지판 전체를 보여주는 것이 아닌, 'STOP' 이 글자만 바로 보여주는 방식이다. 앞에 사람이 지나가거나, 자동차가 다가오고 있는 것을 보여주기 위해서 좀 더 윤곽을 선명하게 대조하는 등, 후처리 과정도 요구됐다.

이러한 절차를 네트워크가 고르지 못한 환경에서 빠르게 처리해야 했던 만큼, 캘리포니아 대학교 산타바바라 캠퍼스 연구진들은 일찍이 유니티의 이전 세대 추론 라이브러리 '바라쿠다'를 활용해서 개발하고 있었다. 그리고 유니티 센티스로 발전하면서 센티스를 적용, 114MB의 용량에 90FPS으로 실시간으로 받아들이는 방대한 시각 정보를 편집해서 착용자에게 위협이 될 만한 정보를 빠르게 알려주고 있다.






▲ 캘리포니아 대학에서 연구 중인 시각장애인들이 시각적으로 위험을 인지할 수 있게 보조하는 장비

어디에서나 AI로 모션 캡쳐를 쉽게 적용할 수 있는 사례로는 스페인의 테트라볼 사가 제작한 '매직 미러'가 소개됐다. 원래 테트라볼 사는 키넥트 기반으로 모션 캡쳐 콘텐츠를 만들었지만, 키넥트가 윈도우에만 지원되는 건 물론이고 그마저도 2022년까지만 서비스를 지원하게 되어 그 대안이 필요했다. 그래서 허깅 페이스의 핸드 트래킹 및 페이스 트래킹, 바디 트래킹 모델인 블레이즈 모델 시리즈를 센티스로 적용, 안드로이드 환경에서도 추론 시간을 포즈와 얼굴, 손바닥에 각각 5.6ms, 6.4ms, 4.8ms 정도로 안정화된 퍼포먼스를 보여주고 있다. 또한 유니티6를 통해 웹GPU도 지원하는 만큼, 브라우저 환경에서도 구동이 되고 있다.

통상 컨트롤러와 VR 헤드셋만 있는 VR 게임으로 착용자의 아바타를 하체까지 완벽하게 애니메이션을 갖추기는 어려웠다. 모션 캡쳐로 하기 위해서는 수도 없이 많은 데이터를 요구하기 때문이다, 그렇지만 '임바디드 아바타'에서는 센서의 움직임을 토대로 AI가 앞으로 상체의 움직임과 그에 따라 움직이게 될 하체의 움직임을 예측, 그 루틴에 따라 움직이는지 여부도 빠르게 체크해서 하반신의 동작까지 표현하는 기법이 적용됐다. 머리와 손의 위치는 이미 정해진 만큼 이를 기반으로 상체의 움직임을 구현하고, 그에 맞춰 하체를 구현한 뒤 블렌딩하는 방식으로 제작한 이 기술은 추론 시간이 3ms로 준수하지만, 모호한 자세는 아직 완벽하게 맞추지 못한다는 한계점을 안고 있긴 하다.



▲ 헤드디스플레이와 컨트롤러 기반의 움직임만 구현하던 기존의 VR 게임에 AI를 도입, 하체까지 보여주고자 했다

그간 센티스에 대해 언급할 때마다 주로 모션 캡쳐 등이 언급됐지만, 그외에 다른 방향으로도 활용되고 있다. 플레이어를 대체할 AI 봇, 시뮬레이션 테스트 및 레벨 디자인, 그리고 이번에 타임 고스트 데모를 통해서 소개된 것처럼 캐릭터의 움직임에 따라 자연스럽게 옷구김과 주름을 표현해주는 기능 등이 그 예시였다.

AI 봇에서는 텍사스 홀덤의 사례가 언급됐다. 텍사스 홀덤은 개인패 2장과 모든 플레이어가 공유하는 커뮤니티 5장을 활용, 각자의 패를 만들어 공개한 뒤 가장 높은 카드 조합을 가진 플레이어가 승리하는 방식이다. 이미 만들 수 있는 패가 어느 정도 공개된 만큼, 이를 전략적으로 활용하기 위해서 블러핑 등 여러 심리적인 수가 오가고는 한다.

기존의 어떤 경우의 수를 따지는 방식만으로는 그렇게 블러핑하거나 레이즈 금액을 조절하고, 혹은 죽는 미묘한 수를 완벽히 구현하기 어려웠다. 그래서 들고 있는 카드, 가능한 패, 현재 들고 있는 자금 세 단계로 나눠서 각각 수마다 승률을 계산하는 파이썬 기반의 파이포크 모델을 적용하고, 여기에 각 상황에 따라 도발하거나 유저 피드백을 주는 요소까지 더해서 센티스로 들여왔다. 파이썬 기반을 로컬 파이썬 서버를 사용하지 않고 센티스로 들여왔기에 추론 시간이 32ms로 비교적 길지만, 패를 보고 신중하게 결정하는 홀덤류의 특성상 딜레이가 현 단계에서도 크게 문제가 되지는 않을 정도다.

레벨 디자인 및 시뮬레이션의 사례로는 스트라톤의 매치3게임 '주FO'가 소개됐다. 총합 2,000개 이상의 스테이지에 15,000개의 퍼즐 매칭을 생각해내는 것은 레벨 디자이너에게 굉장히 고된 일이다. 이미 매치3 퍼즐가 오래도록 대중화됐기 때문에 데이터 파일셋을 활용할 수는 있지만, 그 모델을 임포트해서 게임에 적용할 때 에러가 발생하는 일도 많았다. 그래서 자체 제작한 이미지 대 이미지 대응 AI 모델로 시뮬레이션을 했지만 완벽하지 않아 타 AI 모델과의 블렌드가 필요했다. 센티스 이후에는 AI 모델을 원활하게 적용하고 있다.



▲ 여러 심리 전략이 요구되는 텍사스 홀덤에 맞는 봇 설계는 물론



▲ 스테이지 설계, 시뮬레이션까지 여러 분야에서 AI가 활용되고 있다

마지막으로는 유니티6의 테크 데모 '타임 고스트'에서 언급됐던 옷 구김과 주름 관련 내용이 소개됐다. 캐릭터의 움직임에 맞춰서 옷이 접히고 구겨지는 디테일은 언뜻 보면 놓치기 쉽지만, 생각보다 구현하기 까다롭다.

옷의 애니메이션을 구현하기 위해서는 그간 크게 리깅, 피지컬 기반 애니메이션 두 가지가 활용됐는데 리깅은 파이프라인이 변동 없이 빠르게 적용할 수 있지만 수동으로 해야 하는 만큼 굉장히 시간이 많이 소요된다는 단점이 있다. 반대로 피지컬 기반은 애니메이션을 다시 할 필요 없이 디테일한 옷의 움직임을 보여줄 수 있는 반면, 굉장히 용량을 많이 잡아먹고 느린 데다가 불안정하다는 단점이 있다.

▲ 유니티6의 발전된 기술을 보여주는 테크 데모, '타임 고스트'



▲ 그곳에서 신경을 쓴 분야 중 하나가 옷 애니메이션으로, 그 디테일을 구현하기가 상당히 까다로운 분야다

유니티에서는 이를 해결하기 위해 인공 뉴런 신경망을 활용, 캐릭터의 버텍스 스킨을 잡고 의상에도 적용했다. 그렇게 기본 본 애니메이션을 유지하게끔 한 뒤, 본의 움직임에 따라서 옷의 버텍스들이 그에 맞춰 움직이고 접히는 모습을 계속 학습시키고 그 결과물을 계속 생성, 정교하게 다져나갔다. 즉 본의 쿼터니언이 인풋이 되고, 이를 AI 모델에서 런타임으로 받아들여서 옷의 버텍스에 아웃풋을 적용하는 방식인 셈이었다.

이 방식으로 구현한 모델은 47mb 용량밖에 되지 않았지만, GPU 추론이나 CPU 스케쥴링이 다소 느린 감이 있었다. 그래서 이를 좀 더 가속하기 위해서 그래프를 재조정하고자 기능성 API를 사용하고, 커맨드 버퍼까지 도입했다. 그 결과 CPU 스케쥴링에서는 특히 이전보다 70% 줄어든 0.32ms로 최적화가 진행됐고, 모바일에서도 적용할 수 있을 정도가 됐다.



▲ 그래서 옷 데이터를 학습시키고 본의 쿼터니언을 기반으로 옷의 버텍스가 움직이게끔 설계



▲ 일일이 옷의 주름을 구현하거나 혹은 피직스 기반으로 설계하지 않아도 더 가볍게 적용할 수 있었다

이렇듯 AI 모델을 클라우드 서버 없이 유니티 런타임으로 다양하게 활용할 수 있도록 하는 '유니티 센티스'는 오는 10월 17일, 유니티6와 함께 출시될 예정이다. 또한 유니티 센티스 등 유니티6의 다양한 기술을 활용한 테크 데모, '타임 고스트'도 동시에 공개된다.



댓글

새로고침
새로고침

기사 목록

1 2 3 4 5