СПИСОК ИСТОЧНИКОВ
1. Русскоязычное сообщество разработчиков на Unity. URL: http://www.unity3d.ru/ (дата обращения: 01.06.2016 г.).
2. Официальный сайт Unity3D. URL: http://unity3d.com/ru/ (дата обращения: 01.06.2016 г.).
3. Трансформации объектов в Unity. URL: http://docs.unity3d.com/ru/current/Manual/Transfor ms.html (дата обращения: 01.06.2016 г.).
4. Справочник API Unity. URL: http://docs.unity3d.com/ru/current/ScriptReference/i ndex.html (дата обращения: 01.06.2016 г.).
5. Джамбруно, М. Трёхмерная графика и анимация. - М. : Вильямс, 2002. - 640 с.
6. Торн А. Основы анимации в Unity3D. -М. : ДМК-Пресс, 2015. - 250 с.
7. Goldstone W. Unity Game Development Essentials - Packt Publishing Ltd., 2009. - 315 c.
Бочкарев Николай Алексеевич, студент УлГТУ, кафедра «Вычислительная техника. Молотов Роман Сергеевич, младший научный сотрудник НИО УНИ УлГТУ.
Поступила 16.08.2016 г.
УДК 004.946
С. Д. ЛИЗЯЕВ, Р. С. МОЛОТОВ
ОСОБЕННОСТИ СОЗДАНИЯ АНИМАЦИИ ПРИ РАЗРАБОТКЕ ОБУЧАЮЩИХ СИМУЛЯТОРОВ В СРЕДЕ UNITY
Рассматриваются особенности создания и редактирования анимации при разработке имитационных моделей транспортных средств в среде Unity.
Ключевые слова: unity, моделирование транспортных средств, симуляторы, создание анимации.
Введение
Современный образовательный процесс активно применяет программное обеспечение для обучения и контроля знаний. Помимо прочих информационных технологий, для обеспечения процесса обучения всё более активно используются обучающее симуляторы и тренажёрные системы. Их применение возможно на различных уровнях образования: как в учреждениях дошкольного и общего, так и среднего профессионального, высшего и дополнительного образования.
Симуляторы, использующиеся для подготовки специалистов в технической сфере, в большинстве своём содержат имитационные модели сложных машин, механизмов и их систем: транспортных средств (ТС), станков, инструментов, приборов и т. д. Все эти модели должны быть динамическими: обеспечивать визуализацию процесса работы пользователя и взаимодействия друг с другом в составе виртуальной среды
© Лизяев С. Д., Молотов Р. С., 2016
симулятора. Таким образом, перед разработчиком симулятора стоит сложная задача по реализации логики воспроизведения моделями (объектами среды симулятора) динамических свойств реальных объектов предметной области.
Среда разработки Unity, выбранная для иллюстрации решения подобных задач, содержит мощный инструмент для создания, редактирования и воспроизведения динамических моделей -анимации. Использование анимаций позволяет с помощью визуального редактора построить автомат динамической модели объекта: определить основные статические состояния, переходы и условия переходов между ними.
Далее предлагается рассмотреть реализацию анимации модели транспортного средства (на примере БМ 9К33М3 комплекса «Оса-АКМ»), которая будет интегрирована в обучающий си-мулятор военного полигона.
Создание анимации ТС
Для осуществления поставленной задачи предлагается использовать стандартные инструменты для создания анимации, такие как Animation,
Рис. 1. Пример создания анимации радаров на модели «Оса-АКМ»
using UnityEngine;
using System.Collections;
public class Radar turret Osa :
MonoBehaviour {
private Animator anim; public Transform radar; public int speed; void Start () {
anim = GetComponent<Animator>(); }
void Update() {
if (Input.GetKeyDown(KeyCode.E))
{
anim.SetBool("state",
!anim.GetBool("state")); }
}
}_
Листинг 1. Скрипт изменения угла наклона радаров ТС
Рис. 2. Очередность выполнения команд при создании анимации
Рис. 3. Автоматная модель анимации
вращения радаров Animator, AnimatorController и т. д. Также для создания правильных алгоритмов работы необходимо описать логику их работы с помощью скриптов (в Unity используется язык C#). Рассмотрим пример реализации поворота радаров на модели боевой машины ЗРК 9К33М3 «Оса-АКМ» (рис. 1).
Как видно из листинга 1, визуализация движения радаров происходит при нажатии пользователем кнопки «E»: происходит изменение угла наклона, и фиксируется его крайнее положение. Чтобы реализовать в имитационной модели такую анимацию, предварительно необходимо:
1. Непосредственно в Unity создать компонент Animator для объекта radars, который располагается справа, на панели Inspector.
2. Далее нужно перейти во вкладку Project, и через контекстное меню создать объект AnimatorController.
3. Следующим шагом нужно вернуться обратно в панель Inspector и в компоненте Animator добавить ранее созданный контроллер, просто перетащив его Drug&Drop в поле Controller.
4. Перейти во вкладку панели Animation и при нажатии на выпадающее меню создать новую анимацию.
В данном разделе нужно создать как минимум три различных анимации, каждая из которых будет отвечать за определённое действие (рис. 3). Первое состояние - исходное, которое используем по умолчанию у данного ТС: оно не будет содержать никаких изменений трансформации объектов радаров. Следующее состояние будет отвечать за изменение угла радаров, т. е. за поднятие их на заданную величину, ограниченную пользователем. И последнее состояние отвечает за переход в исходное положение - опускание радаров (рис. 2).
Для того чтобы задать определённое действие анимации, необходимо выполнить следующие шаги (рис. 2):
1) в поле Animation нажать на запись анимации;
2) затем задать исходное состояние в поле Rotation на панели Inspector;
3) задать конечные координаты, изменив поле Rotation.
Изменять трансформацию (вращение, перемещение и т. д.) объекта можно также с помощью соответствующих инструментов Translate, Rotate и Scale, выбрав один из них на панели инструментов (см. рис. 2).
После создания анимации и настройки состояний необходимо перейти в поле Animator, расставить анимации в том порядке, в котором они должны будут выполняться, и добавить условия перехода. Для этого нужно создать переменную типа bool, вызвать контекстное меню, выбрать пункт MakeTransition, и нажав на условие перехода, выбрать переменную, ранее созданную со значением true или false.
В данном примере переменная state=true отвечает за переход из исходного состояния в активное (radar_deftoradar_on), то есть поднятие радаров, переход (radar_ontoradar_idle) опускает радары в исходное положение, при этом state = false (листинг 1). Важно помнить, что в зависимости от типа анимации, следует включать и отключать параметр Looptime, отвечающий за циклическое воспроизведение анимации.
После построения автоматной модели анимации и разработки скрипта контроллера анимация полностью готова к использованию в составе динамической модели объекта среды симулятора.
Заключение
Авторами рассмотрены примеры реализации анимации транспортных средств в составе обучающих симуляторов. Продемонстриро-ванный визуальный редактор, встроенный в IDEUnity, позволяет значительно упростить, а в некоторых моментах и автоматизировать проектирование и разработку визуализации динамических моделей, входящих в состав среды симуляторов.
Автоматная модель, лежащая в основе создания анимаций, упрощает формализацию объектов и процессов предметной области, позволяет использовать накопленный нами научный опыт в теории автоматов.
Таким образом, Unity отлично подходит в качестве инструмента для разработки обучающих симуляторов, а наличие свободно распростра-
няемой версии и низкий порог вхождения упрощают его использование в учебных целях и студенческих исследовательских проектах, подобных этому.
СПИСОК ИСТОЧНИКОВ
1. Русскоязычное сообщество разработчиков на Unity. URL: http://www.unity3d.ru/
2. Официальный сайт Unity3D. URL: http://unity3d.com/ru/
3. Моделирование элементов ВС. Курс лекций/ под ред. Н. С. Куцоконя. - Ульяновск : Ул-ГТУ, архив каф. «ВТ», 2002.
4. Справочник API Unity. URL: http://docs.unity3d.eom/ru/current/ScriptReference/i ndex.html
5. Система планирования Олимпийских игр SOCHI-2014. URL: http://www.vizerra.ru/portfolio/ sochi-2014/
6. Галкин А. В., Аноприенко А. Я. Использование технологии Uity 3D при разработке универсальной плоскопанельной тренажёрно-обучающей системы // Материалы IV Всеукра-инской научно-технической конференции студентов, аспирантов и молодых учёных «Информационные управляющие системы и компьютерный мониторинг (ИУС КМ 2013)» - 24-25 апреля 2013 г. - Донецк : ДонНТУ, 2013.
7. Creighton, R.-H. Unity 3D Game Development by Example Beginner's Guide - Packt Publishing, 2010. - 384 c.
Лизяев Сергей Дмитриевич, студент УлГТУ, кафедра «Вычислительная техника». Молотов Роман Сергеевич, младший научный сотрудник НИО УНИ УлГТУ.
Поступила 16.08.2016 г.