Ubisoft изучает применение искусственного интеллекта в играх
Как стало известно, один из самых известных разработчиков и издателей компьютерных игр, компания Ubisoft, взяла на работу Дэниела Холдена (Daniel Holden). На днях вместе с двумя своими коллегами из Эдинбургского университета он опубликовал статью с описанием применения машинного обучения в т.н. скелетной анимации. Речь идет о компьютерном моделировании движущихся трехмерных объектов (преимущественно человеческих персонажей) — таким образом, чтобы это движение выглядело максимально реалистично.
Скелетная анимация в играх применяется по меньшей лет девятнадцать, начиная с Half-Life (1998). Попытки реалистичного воспроизведения движения двухмерных объектов предпринимались и раньше, например в Prince of Persia (1989). Впрочем относительно реалистичным движение людей в трехмерных играх стало относительно недавно, хотя и остается не вполне идеальным.
В скелетной анимации используются разные техники, которые сводятся в основном к тому, что с помощью захвата многочисленных движений человека, облаченного в специальный костюм с кучей датчиков, создается набор различных образцов движения «на все случаи жизни», и затем на их основе разработчики создают анимацию. Дело это очень непростое и кропотливое — и тут на помощь как раз и приходит машинное обучение. Его принципиальное отличие от традиционных методов состоит в том, чтобы на базе захваченных движений обучить трехмерный персонаж самостоятельно (но, конечно же, по заданному игроком направлению) двигаться в новой для него среде. Это подразумевает, что не надо захватывать движения «на все случаи жизни» — недостаток движения в новых трехмерных сценах восполняется навыками, приобретенными на основе захваченных движений. Очевидно это позволит либо уменьшить минимально необходимый объем данных с захватом движений живой модели, либо улучшить качество анимации с уже имеющимся объемом данных.
Созданная Холденом и его коллегами технология называется Phase-Functioned Neural Networks (PFNN) — нейронная сеть с фазовой функцией. Фазовой в данном случае называется циклическая функция, которая генерирует веса регрессионной сети, используя в качестве входных данных фазы двигательного цикла. Под фазами подразумеваются, грубо говоря, позы движущегося объекта в отдельные моменты времени — из набора этих фаз и складывается цикл движения (повторяющийся набор движений). Согласно авторам разработки, их модель имеет ряд преимуществ перед применявшимися ранее. Так, в отличие от сверточной нейросети (CNN) структура PFNN лучше подходит для генерирования движения в режиме реального времени, а в отличие от авторегрессионной (RNN) более стабильна и способна генерировать продолжительное и качественное движение в сложном окружении. Нейросеть с фазовой функцией работает достаточно быстро (расчет очередного движения занимает миллисекунды) и занимает мало памяти (требуется всего несколько мегабайт, даже если обучение проходило на гигабайтах данных). При этом обучение персонажа в треуголке (см. видео снизу) заняло чуть больше суток (30 часов) на старенькой видеокарте GeForce GTX 660. Её производительность составляет 1.8 терафлопс — в шесть раз меньше, чем у GeForce GTX 1080 Ti.
Несмотря на впечатляющую демонстрацию, авторы технологии признают её несовершенство. Разработка не учитывает мелкие, с высокой детализацией, помехи в сцене — впрочем решением этой проблемы может стать введение дополнительного контрольного слоя поверх нынешней модели. Также PFNN пока не умеет работать со сложным взаимодействием с трехмерной сценой, особенно когда требуются точные движения руками. Например, при подъеме на слишком крутой склон движения трехмерного персонажа становятся неестественными. Кроме того, продолжительность обучения (30 часов) авторы разработки считают неудовлетворительной (хотя приемлемый результат был получен уже через два часа). Наконец, в отличие от предварительно запрограммированной анимации, результаты обучения сложнее отредактировать.
Вместе с тем констатация недостатков нынешней модели подразумевает, что её авторы планируют заняться их исправлением, а интерес Ubisoft внушает надежду на финансирование соответствующих разработок.