▲ 유니티 알렉산드르 리바드 리드 엔지니어(좌) 빌 컬린 수석 PM(우)

최근 게임 개발에서 AI하면 생성형 AI가 주요 사례로 언급되고 있다. 생성형 AI가 유저도 직접 눈으로 볼 수 있는 영역에서 적용되고 있고 전문 지식이 없어도 사용하기도 비교적 쉬웠던 만큼, 그 파급력은 이전에 여러 AI 기술과 비교할 수 없을 정도로 크기도 했다.

그러나 생성형 AI 외에도 게임 개발 과정에서는 머신러닝을 비롯해 다각도로 AI가 연구되고 있었다. 개발 기간을 단축하고 프로세스를 효율화하기 위해서는 애셋을 빠르게 제작하는 것도 필요하지만, 런타임의 최적화나 다양한 기능을 최대한 단순한 방식으로 구현하는 등 개발자들이 해결해야 할 문제들은 산적해있다.

유니티에서는 생성형 AI 외에도 이를 돕기 위한 차원에서 여러 AI 기술을 연구해왔다. 그 중 하나가 인공신경망과 런타임을 연계하는 '유니티 센티스'다. 유나이트 2023부터 클로즈 베타로 제공된 이 툴은 개발자들에게 어떤 도움을 줄 수 있을지, 유니티 빌 컬런 수석 PM과 알렉산드르 리바드 리드 엔지니어는 여러 사례를 제시하면서 설명해나갔다.


통상의 게임 엔진의 구조는 그 디테일은 각각 다르지만, 각 영역마다 인풋-아웃풋이 병렬적으로 이루어지는 구조다. 물리 엔진, 애니메이션, 사운드 등 게임을 구성하는 다양한 요소들을 구현하기 위해서 각각 입력해야 하는 자료의 양식이나 제작 방식이 제각각 다르기 때문이다. 이러한 영역에 AI와 뉴럴 신경망을 도입, 좀 더 유연하고 효율적으로 구축해나가는 방법을 유니티는 고민해왔다.

그러나 통상의 AI 모델이나 뉴럴 신경망을 유니티에 바로 호환하기엔 몇 가지 문제가 있었다. 우선 유니티는 파이썬 기반이 아니었기에 외부 AI 모델이나 신경망을 그대로 쓰기엔 어려웠다. 또한 그 방식은 유니티가 지원하는 모든 플랫폼에 맞춰 전개하기엔 한계가 있었고, 좀 더 빠른 프레임 레이트를 끌어올릴 필요도 있었다.

이를 위해서 서버 기반 아키텍처가 아닌 유저 디바이스 기반으로도 AI 추론을 하는 유니티 센티스를 구축하고 있다. 유니티 센티스는 유니티6에 기본 AI 추론으로 적용할 예정이다. 유니티 센티스는 유니티의 현존 시스템인 잡, 프로파일러 등을 활용하며, 외부 AI 모델을 유니티로 임포트하거나 튜닝 및 학습을 거쳐 런타임 플랫폼에 전개할 수 있도록 지원한다.


해당 사항은 클로즈 베타로 전개했던 작년 유나이트에서도 한 차례 간단히 소개가 됐던 내용인 만큼, 지난 4개월 동안 어떤 변화가 있었나도 관건이었다. 우선 유니티 센티스와 관련한 자료들은 최근 오픈 소스 커뮤니티 '허깅 페이스'에 등록, 그곳에서 다양한 강화 학습 모델을 임포트해올 수 있게 됐다. 또한 센티스는 파이썬 기반의 오픈소스 머신러닝 라이브러리 '파이토치'에 대응하도록 작업해왔기 때문이었다. 한 발 더 나아가 파이토치에서 센티스로 바로 익스포트가 가능하도록 작업을 진행.중이다.

또한 실수형 변수를 정수형 변수로 변환하는 양자화 과정을 적용, 기존 대비 75%까지 메모리 사용량을 줄였다. 또한 동적 메모리 할당과 NMS로 불필요한 영역까지 훑어보는 비율을 줄이면서 한층 더 효율을 높였다.

▲ AI 모델 오픈소스 커뮤니티 '허깅 페이스'에서 센티스에 활용할 수 있는 다양한 모델을 임포트해올 수 있다

▲ 파이썬 기반 오픈소스 머신러닝 라이브러리 '파이토치' 대응은 물론



▲ 최적화 및 효율을 높이기 위해 다각도로 개선해왔다

컬런 수석 PM과 리바드 리드 엔지니어는 이를 직접 보여주기 위해 유니티 센티스를 활용한 세 가지 데모를 현장에서 시연했다. 처음으로 시연한 데모는 브라질의 인디 개발팀 시포트리스에서 올해 10월 출시를 목표로 개발 중인 핸드 트래킹 기반 플랫포머 '플리니오 니즈 어 핸드'였다.

플리니오 니즈 어 핸드의 최우선 과제는 별도의 컨트롤러나 모션 캡쳐용 특수 장비 없이 웹캠이나 카메라만으로 핸드 트래킹을 적용할 수 있어야 한다는 점이었다. 캐릭터를 컨트롤러로 직접 움직이면서 맵 곳곳에 있는 오브젝트를 활용하는 것이 아닌, 유저가 직접 손으로 그 도구들을 갖다주거나 장애물을 걷어내면 어떨까 하는 아이디어에서 출발한 작품이었기 때문이다.

이미 AR 및 AI가 발전한 만큼 이런 솔루션을 찾는 것 자체는 어렵지 않았다. 실제로 플리니오 니즈 어 핸드에서는 구글블레이즈 팜, 구글 블레이즈 핸드 AI 모델을 적용해 카메라에 비친 손바닥과 손가락의 움직임을 트래킹하고 이를 게임 내에 적용하도록 구조를 짠 상태였다. 그리고 이를 파이썬 서버를 구축해 AI 모델을 서빙하는 방법을 채택했으나, 최적화 및 안정적인 프레임 레이트 그리고 타 플랫폼 대응 이슈로 유니티 센티스를 활용했다. 현재 공개한 데모 버전에서 두 AI 모델의 크기는 15MB에 불과하며, 인퍼런스 타임은 7ms, 프레임은 150fps를 유지하고 있다.

▲ 별도의 핸드트래킹 하드웨어 없이 카메라만으로 손을 인식해 각종 오브젝트를 움직여야 하는 상황

▲ 깃허브에 올라온 구글 블레이즈팜과 블레이즈핸드 모델을 센티스로 연결했다

다음에는 유니티에서 AI 모델을 연구하기 위해 제작한 데모, '보드 게임 오퍼넌트'였다. 여기에서는 AI가 규칙을 이해한 뒤 각 수의 승률 계산과 전체적인 판의 상황을 이해해 최선의 수를 두는 것을 넘어 각 난이도 설정에 맞춰 수를 다르게 두는 것까지 구현해야만 했다. 그리고 단순히 정통적인 오델로를 두는 것을 넘어서 타 게임에도 이를 응용하기 위해 새로운 요소를 도입할 때 이를 활용하게끔 학습시키는 과정까지 포함됐다. 이 데모는 센티스를 적용, AI 모델은 61MB에 인퍼런스 타임은 4ms, 프레임은 60fps을 유지하도록 설계했다.

마지막으로 유니티 팀에서 제작한 LLM 기반의 스토리텔링 게임, '타이니 스토리즈'가 소개됐다. 이 데모에서는 유저가 갖고 온 임의의 아이템을 소재로 화면 중앙에 있는 마법사가 즉석에서 주인공의 이야기를 만들게 된다.

그 이야기를 단순히 텍스트로 보여주는 것이 아니라 TTS까지 도입하는 것은 물론, 자연스러운 이야기를 즉석에서 만들어내기 위해서는 갑작스런 돌발 상황까지도 대비해야 했다. 일부러 아이템을 가져오지 않거나, 혹은 다 듣기도 전에 출구로 나가려고 할 때 이를 지적하는 것 또한 '자연스러운' 이야기의 진행을 위해 필요한 사항이었다. 이를 단순히 특정 조건에 반응하는 방식이 아닌, 그 상황을 인공 신경망을 거쳐 그때그때 필요한 반응을 생성하고 적절한 타이밍에 아웃풋을 내는 것이 '타이니 스토리즈' 설계의 핵심이었다.

이 과정에서 유니티 데모팀은 LLM 및 AI 모델은 허깅페이스에 있는 모델을 채용하는 한편, 아웃풋을 적절히 보여주기 위해서 인퍼런스 타임을 2초 단위로 끊고 결과 산출 중에 일부 비동기식으로 대기하는 등 분할 작업이 필요했다. 일반적으로 사람들이 전개하는 자연스러운 대화와 이야기는 일괄적으로 즉문즉답식으로 전개되지 않기 때문에, 이를 일괄적이고 통합적인 모델로 전개하지 않고 분할 뒤 레이어 통합, 양자화까지 유니티 센티스를 거쳐 구축했다.

▲ 월드에 있는 아이템을 마법사에게 가져다주면 그에 맞는 이야기를 바로 생성하는 '타이니 스토리즈'

▲ 게임플레이에 맞는 LLM은 물론

▲ 자연스러운 흐름을 위해 인퍼런스부터 게임플레이 기본 구조까지 AI모델을 적용하고

센티스는 현재 클로즈 베타 단계고, 이번 시연에서는 핸드 트래킹과 제스처 탐색/보드 게임 AI/스토리 생성 세 가지 영역을 중심으로 언급됐다. 컬린 수석 PM과 리바드 리드 엔지니어는 오브젝트 탐색, 강화학습, 스크립트 없이 작동하는 NPC, 뉴럴 렌더링 등 유니티 센티스를 활용한 사례가 더 있으며, 클로즈 베타 이후 정식 출시에서는 한층 더 개선된 성능과 더욱 다양한 활용도를 보여줄 것이라고 전했다.