Научная статья на тему 'ВНУТРЕННЕЕ УСТРОЙСТВО КРОССПЛАТФОРМЕННОГО КОНВЕЙЕРА АНИМАЦИИ АВТО СГЕНЕРИРОВАННЫХ АНИМАЦИОННЫХ ФАЙЛОВ'

ВНУТРЕННЕЕ УСТРОЙСТВО КРОССПЛАТФОРМЕННОГО КОНВЕЙЕРА АНИМАЦИИ АВТО СГЕНЕРИРОВАННЫХ АНИМАЦИОННЫХ ФАЙЛОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
30
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЖЕСТОВЫЙ ЯЗЫК / АНИМАЦИЯ / UNITY / МОДЕЛИРОВАНИЕ / ВИЗУАЛИЗАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кулаков Д.Г., Егоров М.С., Павлов И.Р., Иванов С.И.

В данной работе описывается разработка и внутреннее устройство работы кроссплатформенного конвейера анимации авто сгенерированных анимационных файлов с использованием графического движка Unity в рамках проекта разработки интерпретатора жестового языка, рассматриваются другие графические движки, их недостатки.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE INTERNAL STRUCTURE OF THE CROSS-PLATFORM ANIMATION PIPELINE OF AUTO-GENERATED ANIMATION FILES

This paper describes the development and internal structure of the cross-platform animation pipeline of auto-generated animation files using the Unity graphics engine as part of the sign language interpreter development project, discusses other graphics engines and their shortcomings.

Текст научной работы на тему «ВНУТРЕННЕЕ УСТРОЙСТВО КРОССПЛАТФОРМЕННОГО КОНВЕЙЕРА АНИМАЦИИ АВТО СГЕНЕРИРОВАННЫХ АНИМАЦИОННЫХ ФАЙЛОВ»

УДК 004.946

Кулаков Д.Г., Егоров М.С., Павлов И.Р., Иванов С.И.

Внутреннее устройство кроссплатформенного конвейера анимации авто сгенерированных анимационных файлов

Кулаков Дмитрий Геннадьевич, студент 4 курса бакалавриата факультета цифровых технологий и химического инжиниринга e-mail: dimacreator1998@gmail.com;

Павлов Илья Русланович, студент 4 курса бакалавриата факультета цифровых технологий и химического инжиниринга, e-mail: ilyapavlo667@gmail.com;

Егоров Матвей Сергеевич, студент 4 курса бакалавриата факультета цифровых технологий и химического инжиниринга, e-mail: m.voroge@bk.ru;

Иванов Святослав Игоревич, к.т.н., руководитель отдела разработки #3 ООО "КристалД" Российский химико-технологический университет им. Д.И. Менделеева, Москва, Россия.

В данной работе описывается разработка и внутреннее устройство работы кроссплатформенного конвейера анимации авто сгенерированных анимационных файлов с использованием графического движка Unity в рамках проекта разработки интерпретатора жестового языка, рассматриваются другие графические движки, их недостатки. Ключевые слова: жестовый язык, анимация, Unity, моделирование, визуализация

The internal structure of the cross-platform animation pipeline of auto-generated animation files

Kulakov D.G., Egorov M.S., Pavlov I.R., Ivanov S.I.

Russian University of Chemical Technology named after DI. Mendeleev, Moscow, Russia.

This paper describes the development and internal structure of the cross-platform animation pipeline of auto-generated animation files using the Unity graphics engine as part of the sign language interpreter development project, discusses other graphics engines and their shortcomings.

Keywords: sign language, animation, Unity, modeling, visualization

Введение

Интерпретация естественной речи — это технология, которая существует уже некоторое время и позволяет машинам понимать и интерпретировать человеческую речь. Однако эта технология не подходит для глухих и слабослышащих, которые полагаются на язык жестов. Чтобы восполнить этот пробел, был разработан кроссплатформенный конвейер для обработки автоматически сгенерированных анимационных файлов в язык жестов.

Задачу визуализации данных берет на себя графический движок Unity - кроссплатформенный движок от компании Unity Technologies [1], в качестве языка программирования в нем используетя язык C#, также в более ранних доступных версиях есть поддержка языка JavaScript, это самый независимый от платформы графический движок среди всех существующих на рынке, способный запуститься на большинстве платформ, что очень критично при разработке программных продуктов для большой потенциальной аудитории, именно поэтому он был выбран в качестве технологии визуализации. Но на рынке довольно много графических движков.

На рынке довольно много графических движков, далее будут перечислены самые популярные:

Unreal Engine - кроссплатформенный игровой движок от компании Epic Games, имеет отличную визуальную точность и может создавать потрясающие визуальные эффекты, но требуется

высокопроизводительный компьютер для запуска и разработки программ, а также имеет меньший спектр поддерживаемых платформ.

Source - игровой движок от компании Valve, в качестве языка программирования использует язык C++, имеет еще более меньший спектр запускаемых

платформ, меньше готовых решений и закрытый исходный код.

Термины

• Сцена - Визуальное пространство, где расположены все объекты.

• Проект - представляет собой папку, в которой хранятся все файлы исходного кода и программные ресурсы, такие как модели, изображения и звуки.

• Vector3 — это структура данных, состоящая из 3 дробных чисел, описывающих положение объектов в сцене.

• Окно инспектора Unity - предоставляет соответствующую информацию о любом объекте сцены.

• Компонент — это фрагмент кода, описывающий логику поведения и присваиваемый объекту через окно инспектора.

• Класс GameObject - доступный в библиотеке UnityEngine, включает методы и свойства для управления объектами сцены с помощью кода. Он содержит свойство преобразования, которое отслеживает положение, поворот и масштаб объекта в сцене.

• Класс MonoBehaviour - предоставляется библиотекой UnityEngine, используется для построения логики объекта и должен быть унаследован нашим классом, чтобы использоваться в качестве компонента для объекта в сцене [2].

Описание автоматически сгенерированного файла

Автоматически сгенерированные файлы анимации —это тип файлов, которые создаются с использованием компьютерных алгоритмов на основе заданных входных данных. Эти файлы содержат информацию о движении персонажей в сцене, и это движение можно использовать для создания анимации.

В рамках решаемой задачи файл анимации представляет из себя коллекцию, состоящую из наборов по 3 дробных числа, которые также являются сериализованной структурой Vector3, отвечающих за координаты положения точки в пространстве, количество таких наборов соответствует количеству анимируемых точек, и одного дробного числа, которое отвечает за время, которому соответствуют координаты.

Основные алгоритмы

Для начала необходимо объяснить понятие ключевой точки в модели. Ключевая точка модели относится к определенной точке скелета 3D-модели, которая перемещается в пространстве, вызывая смещение или искажение модели. Это создает сложные движения 3D-модели, позволяя выполнять задачи анимации.

Для отображения жестов рук на модели гуманоида необходимо отметить 21 точку для каждой руки, в том числе 3 для самой руки и 18 для ладони и пальцев. Этого достаточно для плавного и четкого отображения жестов.

Конвейер анимации принимает данные файла анимации в виде массива координат для каждой ключевой точки модели. Скорость отображения определяет, насколько быстро координаты ключевых точек перемещаются при интерполяции, сдвигаясь от одной точки массива к следующей по каждой оси, пока точки не закончатся. Этот процесс обеспечивает плавное отображение анимации жестов с помощью гуманоидной 3D-модели, которая хорошо подходит для отображения перевода простого текста.

На рисунке 1 представлена блок-схема алгоритма обработки файла анимации.

/ р - аггау от гтчас! рош1

/ Л ЯГГЯу ЛТ ЯГИГПЯМЛ С1№ГС|ПЯ1йЯ

Г I ' *>?■

1 3 тгяте гя1е

\ г -х-.'.-'' (ггтетте

V _

Lerp<A(i| A{t+iJ и. t)

РМг = 1»Ф(АИу.*(1И|.у,1>

рщ.г LCTJM;A]I) L A|r»l| z. [)

eöjseöTime

J+=1

Рис. 1. Блок-схема алгоритма.

Реализация решения

Для того чтобы реализовать конвейер в сцене, была расположена модель гуманоида с размеченными точками скелета. Именно эти точки будут перемещаться в пространстве сцены в соответствии с данными из анимационного файла. Для управления состоянием анимации, ее скоростью, воспроизведением и перемещением точек в пространстве сцены был написан класс AnimationHandler. Этот класс наследуется от класса MonoBehaviour и содержит поля, отвечающие за точки модели, они имеют тип Transform, который является описанием положения точки в пространстве, ее поворота и масштаба.

AnimationHandler также зависит от интерфейса IPhraseService, который отвечает за предоставление данных для анимации. В зависимости от реализации этого интерфейса, данные могут быть получены из интернета, с жесткого диска, пользовательского ввода и так далее. Например, в случае с использованием конвейера анимации в WEB браузере можно использовать клиент-серверный подход, храня в базе данных анимационные файлы и получая из Unity с помощью REST запросов через интерфейс WebClient, который представляет из себя классический HTTP клиент, как и в любых языках программирования.

Для того, чтобы интегрировать код в Unity движок, были использованы методы MonoBehavior, такие как Update и Awake. Метод Awake выполняется при старте программы и инициализирует все изначальные данные для работы конвейера, такие как скорость воспроизведения и изначальные точки модели, соответственно первому элементу в коллекции данных для анимации. А в методе Update, который срабатывает каждый кадр, рассчитывается время, прошедшее с прошлого кадра и в случае, если произведение анимации не поставлено на паузу, относительно этого времени происходит интерполяция точек модели относительно последующих друг за другом точек из коллекции данных до тех пор, пока точки в коллекции не закончатся, или не будет инициировано обновление источника анимации.

Таким образом, вся система работает совместно, обеспечивая плавное перемещение точек модели в пространстве сцены в соответствии с данными из анимационного файла.

На рисунке 2 представлен пример отображения анимации жеста моделью.

Рис. 2. Пример отображения жеста 3D моделью.

Вывод

Разработка кроссплатформенного конвейера для обработки автоматически сгенерированных анимационных файлов с использованием движка Unity — это значительный шаг вперед в производстве и обработки анимации. Использование этого конвейера может помочь сократить время и усилия, необходимые для создания анимации жестов, что критично в рамках разработки жестовых переводчиков, так-как жестов очень много и делать анимацию вручную занимает много времени.

Список литературы

1. Официальная документация Unity [Электронный ресурс]

2. URL: https://docs.unity3d.com/ScriptReference/

Р[|1 К - Atol К

imt-тг

еца-г ■ чО].г

i Надоели баннеры? Вы всегда можете отключить рекламу.