УДК 004.946
ОСОБЕННОСТИ ПРОГРАММНОЙ РЕАЛИЗАЦИИ СИСТЕМЫ МОДЕЛИРОВАНИЯ ПЕРЕМЕЩЕНИЯ АВАТАРА В ВИРТУАЛЬНОЙ СРЕДЕ
© 2012 г. Д.В. Гринченкое, Д.С. Ситалов
Южно-Российский государственный South-Russian State
технический университет Technical University
(Новочеркасский политехнический институт) (Novocherkassk Polytechnic Institute)
Рассмотрены особенности программной реализации системы моделирования действий оператора в современных обучающих тренажерах, построенных с использованием технологий виртуальной реальности. Изложены практические аспекты создания трехмерной модели человека, которая может эффективно использоваться в составе разработанного программного обеспечения для визуализации действий оператора.
Ключевые слова: тренажер; моделирование движений человека; геометрическое моделирование человека; виртуальная реальность.
The article describes the features of implementation system software for operator motion modeling in modern training simulators, that was built with using virtual reality technology. Presented practical aspects of creating three-dimensional human model, which can be used effectively in the composition of the developed software to visualize operator actions.
Keywords: simulator; modelling of human actions; geometrical modelling of human; virtual reality.
Подготовка космонавтов к работе на Международной космической станции, осуществляемая посредством тренажных систем, является одним из важнейших этапов обучения, поскольку позволяет привить космонавту те навыки, которые ему необходимы при работе на орбите, где цена ошибки чрезвычайно высока. Одним из современных средств подготовки космонавтов являются тренажерные и моделирующие комплексы, построенные с использованием технологий виртуальной реальности. В этих системах воспроизводится индуцированная виртуальная среда космической станции, в которой работает оператор. Одним из перспективных направлений совершенствования обучающих систем данного типа является разработка и внедрение системы моделирования и визуализации действий оператора путем включения в виртуальную среду образа оператора (аватара).
Разработка и исследование математических моделей движения аватара представлены в работах [1 - 3]. Для обеспечения присутствия в виртуальной среде моделируемого объекта образа оператора создан пакет прикладных программ, реализованный на языке С++ с использованием следующих программных средств и библиотек:
- Microsoft Visual Studio 2008 - интегрированная среда разработки;
- Microsoft DirectX - графическая библиотека, используемая для визуализации модели аватара;
- NVidia PhysX - библиотека моделирования физических процессов, используемая для формирования движения аватара в оперативном пространстве на основе кинематики и динамики манипуляторов;
- Lua - язык описания сценариев, применяемый для реализации выполнения аватаром заданной программы действий.
Комплекс прикладных программ моделирования перемещения аватара реализован в виде набора динамических библиотек .dll и имеет следующую структуру [4 - 7]:
- AvatarModel.dll - библиотека, содержащая весь необходимый функционал моделирования аватара;
- Utils.dll - библиотека, содержащая вспомогательные функции;
- DXUtils.dll - библиотека, содержащая вспомогательные функции для работы с графической библиотекой DirectX.
Программные модули построены таким образом, что модель аватара обеспечивает функционирование системы как на современных, так и на устаревших графических ускорителях, что в значительной степени расширяет область применения разработанного программного обеспечения. Программная реализация модели аватара предусматривает два варианта ее работы:
- на устаревших графических ускорителях нет возможности аппаратно рассчитывать параметры геометрической модели (с использованием шейдерной технологии). В данном случае вычисления производятся на центральном процессоре, что в некоторой степени замедляет как пересчет и визуализацию модели аватара, так и визуализацию окружающей виртуальной среды, поскольку занимает ресурсы центрального процессора;
- вычисления с использованием аппаратных возможностей современных графических ускорителей: аппаратной обработки вершин и технологии шейде-ров. В данном варианте обеспечивается наиболее высокое быстродействие.
Ориентация частей тела аватара относительно родительского элемента, а также ориентация аватара в виртуальной среде задается с помощью нормированных кватернионов. Для задания ориентации не используются более естественное представление в виде углов Эйлера, поскольку в этом случае может возникнуть ситуация взаимного компенсирования поворотов (также называемая GimbalLock), что может привести к некорректному выполнению вращения элементов. Применение математического аппарата кватернионов позволяет предотвратить данный эффект.
Программное обеспечение модели аватара построено с использованием объектно-ориентированного подхода. Иерархия классов, реализующих моделирование и визуализацию аватара, представлена на рис. 1 и 2.
Рис. 1. Иерархия классов системы моделирования перемещения аватара в виртуальной среде
Подсистема моделирования определенных движений аватара с использованием технологии анимации реализована следующим образом. В классе аватара создан массив со всеми доступными анимациями. Элемент массива - структура, содержащая имя анимации и указатель на соответствующий набор анимации ID3DXAnimationSet в ID3DXAnimationController. Этот массив индексируется перечислением eAvatar
AnimationIndices для удобства доступа к анимациям. При загрузке геометрической модели аватара из .х файла выполняется перебор всех элементов массива и поиск, соответствующий анимации. При перемещении аватара выполняется проверка на соответствие требуемой и текущей анимации. Если требуемая и текущая анимации совпадают, то продолжается воспроизведение текущей анимации. Если отличаются, то выполняется проверка - найдена ли анимация для данного действия. Если найдена, то воспроизводится заданная анимация и она объявляется текущей. Если же анимация не найдена, то воспроизведение анимации останавливается и текущей анимацией объявляем aNone.
Геометрическая модель аватара не является строго предопределенной. Существует возможность создать другую геометрическую модель аватара со своими реализациями анимаций определенных движений и затем настроить математическую модель аватара для работы с ней.
В качестве формата файла для хранения геометрической модели аватара удобно использовать стандартный формат .х-файла DirectX, поскольку он обладает следующими преимуществами:
- данный формат является стандартным для библиотеки DirectX, поэтому существенно упрощается загрузка модели из файла, а также ее обработка и визуализация;
- формат файла DirectX позволяет хранить информацию о структуре скелета аватара;
- создание геометрической модели и иерархической структуры скелета аватара можно осуществить в инструментальном комплексе трехмерного моделирования и затем экспортировать созданную модель для применения в программных средствах моделирования аватара, что, в свою очередь, позволяет использовать уже существующий экспортер. Используя инструментальный комплекс трехмерного моделирования, например, Autodesk 3D Studio Max, можно задать не только основные параметры геометрической модели (координаты вершин, нормали, список полигонов и другие), а также и дополнительные параметры (веса связи вершин с элементами скелета), необходимые для реализации скелетной анимации.
1
сAvatar Command_ Wait cAvatarCommandBase cAvatarCommandRotation
* *
cAvatarCommand_Move cAvatarCommand MoveToPoint <- cAvatarCommand_LookAt
сAvatar Command_ RouteToGraph Vertex
Рис. 2. Иерархия классов подсистемы выполнения очереди команд
Ввиду особенностей реализации инструментария создания анимированных персонажей в Autodesk 3D Studio Max и использования формата файлов DirectX для хранения данных модели, при создании геометрической модели аватара необходимо придерживаться следующих рекомендаций:
- для представления скелета аватара необходимо использовать объект Biped;
- наборы анимаций должны реализовывать определенные движения и иметь соответствующие названия. При этом реализация всего набора определенных движений не является обязательной;
- для придания фотореалистичности модели допускается использование только текстуры diffuse, что определяется ограничениями экспортера и формата .х-файла;
- связь между скелетом аватара и геометрической моделью поверхности тела человека необходимо осуществлять с использованием модификатора Skin.
В настоящее время представлено несколько плагинов для Autodesk 3D Studio Max, позволяющих осуществить экспорт геометрической модели аватара в формат файла DirectX. Наиболее функциональные из них Panda Directx Exporter и kW X-porter, которые позволяют сохранить все данные, необходимые для моделирования аватара, а именно:
- параметры геометрической модели (вершины, полигоны, нормали);
- параметры текстурирования полигональной модели (текстурные координаты);
- иерархию скелетной структуры аватара и параметры всех его элементов (длина элемента, его положение и ориентация относительно родителя);
- параметры привязки вершин к элементам скелета, необходимые для реализации технологии скелетной анимации.
Таким образом, использование любого из вышеописанных плагинов позволит корректно экспортировать геометрическую модель аватара из инструментального комплекса трехмерного моделирования в формат файла DirectX для последующего ее применения совместно с разработанным пакетом программ для моделирования движений аватара.
Скелет аватара представляет собой древовидную структуру, общий вид которой представлен на рис. 3. Для формирования такого дерева в памяти компьютера каждый элемент скелета содержит три указателя: указатель на родителя, указатель на первого потомка и указатель на следующего (ближайшего) соседа в иерархии. Поясним вышесказанное на примере фрагмента иерархии данных скелетной структуры руки аватара, на которой графически показаны описанные связи между элементами (рис. 4). Использование такой организации связей позволяет создавать деревья с эффективным использованием оперативной памяти, поскольку потомки каждого узла формируются динамически, а не занимают заранее выделенное ограниченное количество ячеек.
Рис. 3. Структура скелетной модели аватара
Для моделирования перемещения аватара в виртуальной среде каждый элемент скелета содержит набор данных (таблица), необходимый для реализации указанных функций.
Модель аватара имеет интерфейс (рис. 5), реализующий схему взаимодействия модели аватара с устройствами ввода, включающий команды перемещения аватара и взаимодействия с объектами виртуальной среды. При макетировании сцены, в которой была реализована процедура перемещения аватара, принята следующая система команд:
- идти вперед/назад/влево/вправо;
- поворот влево/вправо;
- присесть/встать;
- перейти в заданную позицию на сцене (обходя препятствия);
-движение в зоне оперативного пространства -перемещение руки аватара в заданную точку (моделирование нажатия кнопок, переключения тумблеров).
Клавиатура, манипулятор «мышь» и джойстик реализуют управление аватаром похожим образом: функции интерфейса команд распределяются между кнопками устройства. Различен только доступ к устройству для считывания информации о нажатых клавишах.
Система трекинга (СТ) и перчатка данных (ПД) имеют принципиально другой способ задания движения: информация с датчиков, определяющих положение и ориентацию частей тела оператора (реального человека), применяется непосредственно к скелетной модели аватара. Поэтому СТ и ПД имеют отдельный командный интерфейс (как показано на рис. 5), задачей которого является восстановление конфигурации аватара по данным, полученным с датчиков СТ.
Моделирование поведения аватара с помощью искусственного интеллекта (ИИ) на основе своей внутренней логики генерирует управляющие команды для модели аватара и посылает их в интерфейс команд в определенные моменты времени, что позволяет поместить в виртуальную среду аватара, которым не управляет оператор. Сетевой интерфейс взаимодействия с удаленными операторами выполняет согласова-
ние положения нескольких управляемых операторами аватаров в одном модельном мире в случае проведения комплексной тренировки, когда операторы, размещенные за разными рабочими местами, осуществляют одновременную подготовку на одном моделируемом объекте.
Разработанный пакет программ реализует модели и алгоритмы моделирования движения аватара,
предложенные в работах [1, 3], и позволяет визуализировать действия оператора в виртуальной среде, в которой воспроизводится работа виртуального оборудования с имитацией действий одного или нескольких операторов. Такие системы могут эффективно использоваться в тренажерах для подготовки операторов к управлению сложными техническими объектами.
Рис. 4. Фрагмент иерархии данных скелетной структуры руки аватара с изображенными связями между элементами
Структура данных, описывающая элемент скелета аватара
Имя поля данных Назначение
Указатели на родителя, первого потомка и ближайшего соседа в иерархии Необходимы для организации связей между элементами скелета, т. е. для объединения элементов скелета в дерево
Имя элемента скелета Используется для идентификации элемента скелета
Длина Длина данного элемента скелета
Матрица перехода Определяет положение и ориентацию данного элемента скелета относительно родителя
Матрица преобразования Определяет положение и ориентацию данного элемента скелета в системе координат аватара
Указатель на объект, хранящий информацию о геометрической модели данного элемента скелета Контейнер полигонов, моделирующих кожу аватара
Начальная ориентация Начальная и конечная ориентации элемента скелета, используемые для генерации движения аватара в оперативном пространстве
Конечная ориентация
Ограничения на движения в суставе Определяют допустимые углы поворота данного элемента скелета относительно родителя вокруг трех координатных осей
Ограничивающий параллелепипед (BoundingBox) Ограничивающий параллелепипед минимального размера, включающий все вершины геометрической модели аватара, связанные с данным элементом скелета
Клавиатура «Мышь»
_| Джойстик
Моделирование поведения с помощью ИИ
Сетевой интерфейс взаимодействия с удаленными операторами
Рис. 5. Интерфейсы управления моделью аватара
Возможности разработанного программного обеспечения позволяют построить траекторию перемещения аватара в заданную точку виртуального пространства тренажера из произвольного начального положения, воспроизвести плавное движение аватара по вычисленной траектории, а также моделировать взаимодействие аватара с заданным объектом виртуальной среды.
Результаты работы получены при поддержке Минобрнауки РФ в рамках государственного задания на проведение НИОКР, шифр заявки № 7.12.
Поступила в редакцию
Литература
1. Ситалов Д.С. Упрощенная модель руки для решения обратной задачи моделирования аватара // Изв. вузов. Сев.-Кавк. регион. Техн. науки. 2010. № 6. С. 15 - 18.
2. Ситалов Д.С. Проблемы моделирования действий оператора в современном тренажере // Программные продукты и системы. 2010. № 4 (92). С. 137 - 140.
3. Ситалов Д.С. Оптимизационная модель решения обратной задачи моделирования движения аватара в оперативном пространстве // Программные продукты и системы. 2011. № 3 (95). С. 114 - 117.
4. Свидетельство о регистрации программы для ЭВМ № 2011613005 «Модель аватара» / Д.С. Ситалов. Зарегистрировано в реестре программ для ЭВМ 14.04.2011.
5. Свидетельство о регистрации программы для ЭВМ № 2011618253 «Программный модуль моделирования поведения аватара» / Д.С. Ситалов. - Зарегистрировано в реестре программ для ЭВМ 19.10.2011.
6. Свидетельство о регистрации программы для ЭВМ № 2011618252 «Программный модуль моделирования определенных движений аватара» / Д.С. Ситалов. Зарегистрировано в реестре программ для ЭВМ 19.10.2011.
7. Свидетельство о регистрации программы для ЭВМ № 2011618510 «Программный модуль моделирования недоопределенных движений аватара» / Д.С. Ситалов. Зарегистрировано в реестре программ для ЭВМ 31.10.2011.
22 мая 2012 г.
CT пд
Интерфейс CT
Z 4 \ 7
Модель аватара
Гринченков Дмитрий Валерьевич - канд. техн. наук, доцент кафедры «Программное обеспечение вычислительной техники Южно-Российского государственного технического университета (Новочеркасского политехнического института).
Ситалов Дмитрий Сергеевич - аспирант кафедры ПОВТ, Южно-Российский государственный технический университет (Новочеркасский политехнический институт), инженер-программист, Донской филиал Центра тренажеростроения. Тел. 8-908-197-80-80. E-mail: [email protected]
Grinchenkov Dmitriy Valerievich - Candidate of Technical Scince, assitant professor of department software of computing of South-Russian State Technical University (Novocherkassk Polytechnic Institute).
Sitalov Dmitriy Sergeevich - post-graduate student, department «Software Engineering», South-Russia State Technical University (Novocherkassk Polytechnic Institute), engineer, Donskoy Centre Simulator Building Ph. 8-908-197-80-80. E-mail: [email protected]