2021년 11월 30일 화요일

AI가 게임 개발을 도울 수 있을까

이 글에서는 게임 제작을 지원하는 AI(딥러닝) 기술들을 소개하고자 한다. 게임 제작은 다양한 분야의 전문가들이 모여 출시까지 수 년을 공들이는 큰 규모의 프로젝트이다. 유니티와 언리얼 엔진 등의 상용 엔진 등의 도움으로 예전에 비해서는 동일한 개발 기간 내에서도 좋은 품질의 게임이 개발되고 있지만, 게임은 기간 단축과 비용 축소는 물론 플레이 경험의 개선 측면에서도 여지가 많이 남아있다. 게임 관련 기술 분야에서는 어떤 딥러닝 기술들이 연구 및 준비되고 있는지 살펴본다.

렌더링 관련 기술

렌더링은 모델링을 기반으로 사용자의 화면에 이미지를 합성해주는 과정이다. 높은 품질로 렌더링을 하기 위해서는 많은 연산을 필요로 하는데, 실시간으로 화면을 계산하고 출력해야 하는 게임의 특성상 그래픽 품질과 프레임 속도 사이에는 trade-off가 있을 수 밖에 없다.

2019년부터 엔비디아에서는 DLSS1(Deep Learning Super Sampling)라는 기술을 선보이며, 딥러닝을 활용하여 이 간극을 메우기 시작했다. 이미지의 해상도를 높이는 연구 분야를 Super resolution이라고 하는데, 이를 게임 데이터에 적용한 기술이다. 딥러닝을 학습하기 위한 데이터를 준비할 때는 실시간일 필요가 없기 때문에, 사전에 생성해두는 방식을 활용한 것으로 보인다. 또한, 엔비디아의 GPU 제품인 RTX 시리즈부터는 딥러닝을 가속하기 위한 텐서 코어(Tensor core)가 들어가 있는데, 이를 활용하여 속도를 향상시켰다. 그 결과 아래 그림과 같이 DLSS를 키면 FPS를 향상시키면서도 이미지 품질도 개선하는 효과를 가져왔으며, 4K 환경에서는 게임에 따라 최대 3배까지도 빨라진다. 현재 2.2버전이 릴리즈 되었으며, 계속해서 성능이 향상되고 있다. 이미 높은 사양을 요구하는 수십 개의 게임(배틀필드, 레인보우식스 등)에 적용되고 있으며, 딥러닝을 게임 서비스로 가져온 성공적인 사례로 꼽힌다. 완성도 높은 기술이지만 한계점을 꼽자면, 이 기술을 학습하기 위해서는 엔비디아의 슈퍼컴퓨터를 사용해야 할 정도로 막대한 컴퓨팅이 필요하다는 것과 게임에 따라 그래픽의 실사 수준이나 환경이 다르기 때문에 모델을 일반화하기 쉽지 않다는 것을 들 수 있다.

NVIDIA DLSS 예시. 더 높은 FPS로 향상된 그래픽 품질을 보여준다.

DLSS는 게임 산업에 딥러닝 기술이 실제로 상용화되고 있는 사례지만, 아직은 상용화된 기술보다는 연구 중이면서 큰 잠재력을 보이는 기술들이 대부분이다. 엔비디아는 최근에 게임을 이용한 GANcraft2라 불리는 흥미로운 연구를 발표했다. 이 연구에서 저자들은 마인크래프트의 블럭으로 된 월드를 실사화하는 기술을 보여줬다. DLSS는 게임 환경을 이용하여 실제 정답 이미지와 특징 등의 데이터를 얻을 수 있기 때문에 가능했다면, GANcraft는 정답 이미지가 존재하지 않음에도 딥러닝의 잠재력을 활용하여 학습한 기술이다. 영상을 보면 카메라의 시점에 따라 움직이는 이미지가 급작스럽게 변하거나 하지 않고 일관되게 합성하는 것을 볼 수 있다. 또한, 딥러닝 모델 내의 스타일 변수를 조정함에 따라 하늘과 빛 등이 자연스럽게 변환되는 것을 볼 수 있다. 이 기술을 통해 블럭 게임들을 실사화하여 플레이하는 등의 응용을 생각할 수 있지만, 아직 한계가 있다. 먼저 변환하는 것이 월드에 한정된다는 것이다. 실사화하여 플레이하기 위해서는 캐릭터나 아이템, 이펙트 등에도 적용되어야 하는데, 여기에는 동일한 방법을 적용하기 어려우며 완전히 다른 난이도의 기술을 필요로 한다.

GANcraft 변환 예시2
GANcraft 스타일 변환 예시2

그래픽스 관련 기술

그래픽스 분야에서는 창작 과정을 딥러닝이 도와주는 연구들도 진행되고 있다. 대표적인 예시로는 엔비디아의 GauGAN3과 구글 Stadia의 Chimera4 프로젝트가 있다. 게임에 더 초점이 맞추어진 Chimera를 살펴보면, 이 프로젝트의 목적은 사람이 간단한 밑그림을 주면 높은 품질의 크리처 이미지를 만들어주는 것이다. 이러한 모델을 학습하기 위해서는 크리처와 segmentation map 쌍으로 구성된 데이터가 필요한데, 이를 위한 데이터셋은 직접 제작했다고 한다. 다만 이렇게 제작하면 비용이 크기 때문에, 3D 모델로 제작하고 머리, 몸통 등으로 구분해 놓은 다음에 카메라 위치에 따라 여러 장을 만드는 등의 방법을 사용했다. 아직 품질 면에서는 많이 부족하지만, 사람의 개입 없이 새로운 합성 크리처를 만들기 위한 시도를 프로토 타입에 적용하려고 노력하는 등 게임에 실제로 적용하기 위한 노력을 기울인 바 있다. 안타깝게도 현재는 비용 문제로 자체 게임 개발은 중단되었다5.

Chimera Painter를 이용한 크리처 생성4

모션캡처 관련 기술

3D 게임의 동작 애니메이션을 높은 품질로 만들기 위해서는 데이터를 확보해야 하며, 이는 모션캡처 스튜디오와 같은 고가의 장비로 구성된 제한된 공간에서 전문 배우가 특수한 의상 혹은 장비를 착용하고 촬영을 해야 한다6. 그런데 영상으로부터 사람이 취하고 있는 행동(포즈와 얼굴 표정 등)을 추적하고 추정하는 기술은 게임 분야로 특정하지 않더라도 컴퓨터 비전에서 매우 활발하게 연구되는 분야이다. 구글의 MediaPipe7 프로젝트는 관련 비전 기술들을 종합적으로 오픈소스와 함께 API로 제공하고 있다. 이 기술은 별도의 장비를 착용하지 않아도 스마트폰 카메라로부터 실시간으로 사람의 동작, 표정 등을 추적하고 추정한다. 디테일을 최대한 잘 살려내야 하는 게임에 위 기술을 직접적으로 적용하기는 어렵지만, 모션캡처 스튜디오의 장비를 활용하여 기존 방법보다 정밀도를 향상시키거나 유지비용을 축소하는 등의 응용이 가능할 것으로 기대된다.

구글 MediaPipe 기술 목록7

애니메이션 생성 기술

3D 게임에서 애니메이션을 위해서는 모션 캡처를 통해 다양한 움직임에 대한 데이터를 얻은 후에, 이를 정제하고 사용할 수 있는 애니메이션 DB로 만들고, 상황에 맞는 애니메이션을 찾고 선택하며 동작 사이의 연결을 주요 알고리즘을 통해 구한다. 또한, 사람의 움직임을 표현하는 모든 정보를 얻을 수는 없기 때문에 동작의 조합을 자연스럽게 연결해주는 기술이 필요하다. 기존에는 IK (Inverse Kinematics)와 같은 알고리즘을 사용했으나, 동작의 간극을 연결하기 위한 특정 관절의 움직임만 계산하여 적용하기 때문에 인체의 전체적인 균형과 자연스러움에서 한계가 있다.

EA는 이런 문제를 해결하기 위해 최근에 딥러닝을 활용하여 캐릭터의 다양한 움직임을 생성하는 연구를 진행하고 있다. 영상(링크)을 보면 애니메이션이 조작에 따라 매우 자연스럽게 생성되며, 기존 알고리즘에서 나타나던 실제에서 일어나지 않을 잔움직임들이 없는 것을 볼 수 있다. 또한, 딥러닝 기술은 자연스럽게 연결하면서도 조작에 상응하는 더 다양한 동작을 생성해낸다. 딥러닝을 활용한 애니메이션 생성 기술은 맵 환경에 따른 세부적인 움직임의 차이를 만들거나 다양한 충돌에 대한 사실적인 동작을 구현해내는 등 게임의 몰입감을 높이는 데에 있어서 주요한 기여를 할 것으로 기대된다.

Layering.png
EA의 모션 생성 기술 예시8

게임에서는 유저의 조작과 관련 없는 애니메이션도 있는데, 그 중에 립싱크 기술은 녹음한 음성에 상응하는 립 애니메이션을 생성하는 기술이다. 립 애니메이션은 녹음한 음성에 따라 달라져야 하는데 이를 모두 작업하기는 어렵다. 따라서 자동화 기술이 중요한데, 발음(음소)에 따라 입모양 DB를 만들어두고 이를 조합하여 활용한다. 하지만 이 방법은 이미 정해진 특정 발음 애니메이션을 연결하는 수준이기 때문에, 조합 간의 연결이 급격하게 변하는 등 부자연스럽고 유연하게 확장하는 데에는 한계가 있다. 엔비디아나 엔씨소프트에서는 이런 한계를 딥러닝을 이용한 립싱크 기술로 해소하고자 연구하고 있다9. 영상을 보면, 전체에 걸쳐 입 모양과 근처 근육이 발음에 맞추어 다소 자연스럽게 움직이는 것을 볼 수 있다. 하지만 사람이 발화 할 때에는 발음에 더해 감정, 음성에 따라서도 입 모양이 달라지기 때문에 앞으로 더 다양하고 자연스러운 애니메이션을 위한 기술이 연구될 것으로 보인다.

엔씨소프트의 3D 립싱크 기술 예시9

게임 개발 과정에서 딥러닝 기술이 어떤 도움을 줄 수 있는지 기술이 어느 단계에 진입해있는지 여러 분야를 살펴보았다. 직접적으로 바로 적용하기에는 아직 부족한 기술들이 많지만, 일부 분야에서는 곧 적용될 것으로 기대되는 기술들도 다수 있었다. 비록 딥러닝 기술이 게임 개발 기간을 혁신적으로 단축하거나 개발 비용을 크게 절감하는 것은 아직 어려워 보이지만, 게임의 품질을 높이는 방향으로는 여러 방면에서 개선하고 유의미한 결과들을 보이고 있다.

  1. DLSS
  2. GANcraft
  3. GauGAN
  4. Google Stadia Chimera
  5. Google is shutting down its in-house Stadia game development studios
  6. 붉은사막의 액션이 실제 같다고요?
  7. Google MediaPipe
  8. Neural Animation Layering for Synthesizing Martial Arts Movements
  9. NC Motion AI, LypSync using Deep Network

    Related Posts

    디지털 휴먼과 게임 속 AI의 미래
    ML 모델 도입을 위한 SageMaker의 효율성
    AlphaFold2와 GPT-3를 통해 보는 딥러닝의 잠재력

    Leave a Reply