Моделирование движения подвижного состава в среде Unity
Р.Б. Адаев
Российский государственный университет им. А.Н. Косыгина, Москва
Аннотация: Статья посвящена применению среды Unity для геометрического моделирования движения поездов по существующим направлениям в соответствии с заданным маршрутом по известному расписанию. В качестве объекта моделирования рассматриваются маршруты Московского железнодорожного узла. Полученные результаты предполагается использовать для исследования пропускной способности участков железных дорог и оптимизации расписаний движения подвижного состава. Ключевые слова: моделирование, геометрическое моделирование, транспортная модель, Unity, Unity3D, железнодорожный транспорт, Московский железнодорожный узел.
В работе рассказывается о результатах создания геометрической модели движения транспортных единиц Московского железнодорожного узла по заданному расписанию. Зачастую для решения практических задач строятся имитационные модели [1,2]. Разработка подобной модели обусловлена необходимостью повышения наглядности отображения текущего состояния движущегося подвижного состава в процессе прохождения индивидуального маршрута. Для создания требуемой модели оказалось целесообразным применить известную среду Unity, традиционно используемую для автоматизированного геометрического моделирования графических сцен в игровых программных приложениях и образовательных тренажерах.
Основные технологии моделирования можно применять и к созданию моделей железнодорожных узлов с целью использования их для создания расписаний, изучений потоков [3].
Для моделирования движения поездов выбран Московский железнодорожный узел — железнодорожный комплекс, сложившийся и функционирующий в масштабах Московского региона. До настоящего времени сохраняет основной объём пассажирских и грузовых перевозок. Московский узел — крупнейший железнодорожный узел в СНГ и один из крупнейших в мире.
В состав московского железнодорожного узла входят:
-радиальные направления от вокзалов Москвы;
-Малое кольцо Московской железной дороги (МЖД);
- Большое кольцо МЖД;
- соединительные линии и ветви между упомянутыми направлениями и кольцами [4,5].
Для моделирования объектов использована Unity — межплатформенная среда разработки компьютерных игр. Unity позволяет создавать приложения, работающие на различных операционных системах. На Unity написано множество игр и приложений, эта программа широко используется в приложениях с BD-графикой в реальном времени. Благодаря функциям, определенным с использованием языков программирования, можно выполнять большую работу, написав меньше кода [6].
Среда разработки Unity обладает понятным интерфейсом, возможно производить отладку модели в редакторе. Объекты подчинены системе наследования. Скрипты в редакторе присоединяются к объектам в виде отдельных компонентов [7].
Unity делает процесс производства приложения простым, предоставляя ряд возможностей для различных сценариев. Основными преимуществами Unity являются наличие визуальной среды разработки, межплатформенной поддержки, возможность замедлять или ускорять время анимации [7,8].
Существуют аналогичные работы, в частности, в статье [9] исследуется моделирование объектов, разработан программный комплекс для моделирования и оценки траектории движущегося объекта на основе дискретных моделей движения. Указывается, что результаты подобной работы могут найти применение и в других областях, например, при решении задач судовождения, робототехники, обработки сигналов.
В статье [10] описывается BD-объект, движущийся по определенной траектории. Для реализации движения автор создал несколько скриптов на языке С#, в том числе программно реализуется метод решения системы дифференциальных уравнений.
В Unity была загружена схема Московского железнодорожного узла. Именно по этой карте должны передвигаться поезда (рис. 3).
Поезда отображаются в виде сфер, такая форма помогает избежать загруженности центральной области, где расположены вокзалы. Сферы были добавлены в Unity с помощью пункта меню «Game Object - 2D Object -Sphere». Каждая сфера показывает один поезд. Все сферы имеют одинаковые геометрические размеры.
Для окраски сфер в соответствии с маршрутом, созданы материалы с разными цветами (рис. 1), например, синий цвет выбран для поездов одного направления, фиолетовый цвет выбран для поездов другого направления и т. д.
и J •J и И А И J
Р1 Р2 РЗ Р4 Р5 Р6 Р7 Р8 Р9
Рис. 1. - Материалы
Осуществлена привязка сфер к расписанию. Чтобы поезда следовали по расписанию и соблюдали заданный маршрут, созданы программные файлы, в которых содержится информация о точках пути и времени их прохождения. Расписание содержится в текстовом файле. Для составления расписания рассчитано время прохождения всех участков маршрута.
Пример расписания из текстового файла: 06:20 Фрязино Москва 07:50 Москва Фрязино
09:30 Фрязино Москва 11:50 Москва Фрязино 12:50 Фрязино Москва
Свойства одного из поездов приведены на рис. 2. К поезду подключён скрипт-файл С#. Параметр step, отвечающий за скорость проезда равен 0,1.
В модели присутствует камера, позволяющая наблюдать за движением поездов. В режиме просмотра анимацию можно растянуть на весь экран.
Работа модели представлена на рис. 3.
Движение осуществляется в соответствии с программным кодом. Координаты точек остановки/поворота заданы как объекты класса Vector2 (в качестве точки с нулевыми координатами взят центр Москвы), например: t1=new Vector2 (-5.07F, -0.8F); t2=new Vector2 (-5.18F, -1.21F);
Создана переменная Timer, определяющая время от 00:00 до 23:59 в виде количества минут.
Для следования поездов по расписанию информация из текстового файла читается с помощью функции ReadAllLines и помещается в двумерный массив с использованием разделителя Split.
По мере возрастания переменной Timer поезд движется. Следующий код отвечает за движение: Timer++;
if ((Timer>nachdv) && (Timer<=nachdv+4)) {
transform.position=Vector2.Lerp (t1, t2, progress1); progress1 +=step*10/4;
}
else if ((Timer>nachdv+4) && (Timer<=nachdv+8)) {
transform.position=Vector2.Lerp(t2,t3,progress2);
progress2 +=step*10/4;
}
О Inspector |
Vi M-Fryazevo □ Static
Tag Untagged ! Layer Default H
' ^ч Transform У i
Position X 9.96 Y 0.38 Z -9.1791
Rotation X и Y 0 Z 0
Scale X 0.75 Y 0.75 Z 1
Sphere (Mesh Filter) У S
</Mesh Renderer У n! o.
Materials
Light Probes Blend Pili bes 0
Reflection Probes Blend Pili bes 0
Anchor Override None [Transform^ О
Cast Shadows L On 0
Receive Shadows 0
Motion Vectors Pel- Object Motion •J
Lightmap Static □
Lightnnapping jetting; are currently
Ф disabled. Enable Baked Global Illumination or Realtime Global Illumination to display these settings.
Dynamic Occluded l^t ^ ?Sphere Collider Q li!
| A | Edit Collider
Is Trigger
Material None (Physic Mati О
Center
X 0 Y 0 Z 0
Radius 0.5
▼ я pFrya zevo (Script) У ~t
Script Fryazevo О
Step 0.1
Рис. 2. Свойства поезда M-Fryazevo
Перемещение осуществляется с помощью функции Lerp, параметр progress меняется, чтобы поезд равномерно следовал по участку.
В течение последних 10 лет широко распространились виртуальные образовательные пространства, которые могут моделировать поведение объектов реального мира в компьютерной образовательной среде и помогают учащимся овладевать новыми знаниями и умениями в разных сферах.
В качестве результатов работы стоит выделить изучение среды разработки Unity, инструментарий которой предоставляет широкие возможности для разработки графических приложений [11]. Была создана
М Инженерный вестник Дона, №11 (2022) ivdon.ru/ru/magazine/arcliive/nlly2022/8023
модель железнодорожного узла, включающая объекты, движущиеся по заданным траекториям. Эту модель можно дальше дополнять в среде разработки Unity.
Рис. 3. Скриншот анимации
Поставленная цель была достигнута, можно сделать вывод о возможности реализации движения объектов по персональным траекториям.
Результаты работы могут быть использованы при решении практических задач судовождения, робототехники, планирования маршрутов.
Литература
1. Новрузова Г. С. Системный подход, моделирование и имитационное моделирование как основа образовательных технологий // Историческая и социально-образовательная мысль. 2020. Т. 12. № 3. С. 120-131.
2. Советов Б. Я., Яковлев С. А. Моделирование систем: Практикум. М.: Высшая школа, 1999. 224 с.
M Инженерный вестник Дона, №11 (2022) ivdon.ru/ru/magazine/arcliive/nlly2022/8023
3. Даниленко А. И. Моделирование задачи рациональной организации и технологии работ по восстановлению верхнего строения железнодорожного пути // Инженерный вестник Дона, 2016, № 4 URL: http : //ivdon.ru/ru/magazine/archive/n4y2016/3861
4. Бородина Е. В., Дмитриев Е. О., Горбунов Г. Г., Алексевнин Е. А. Организация местной работы в Московском железнодорожном узле в условиях организации диаметрального движения пригородно-городских поездов // Вестник транспорта Поволжья. 2021. №1. С. 33-44.
5. Дранченко Ю. Н. Перспективы развития Московского железнодорожного узла // Вестник транспорта. 2013. № 10. С. 20-26.
6. Boyraz G., Kirci P. Constructing A 3d Game With Unity 3d Game Engine // Conference of Open Innovations Association, FRUCT. 2021. №28. С. 554-557.
7. Mazlan N. A., Kassim M., Suliman S. I., Ya'acob N. Rehabilitation hand exercise system with video games // International Journal of Advanced Trends in Computer Science and Engineering. 2020. № 1. - С. 545-551.
8. Документация Unity. URL: docs.unity3d.com/2020.1/ Documentation/ Manual/UIE-Events-DragAndDr op. html
9. Рогачев В. А. Разработка компьютерных игр в среде Unity: основные приемы работы и примеры их применения: учебное пособие. Волгоград: Волгоградский государственный технический университет, 2016. 60 с.
10. Семушин И. В., Цыганов А. В., Цыганова Ю. В. [и др.] Моделирование и оценивание траектории движущегося объекта // Вестник Южно-Уральского государственного университета. Серия: Математическое моделирование и программирование. 2017. № 3. С. 108-119.
11. Трохова Т. А. Компьютерное моделирование динамических объектов с использованием среды разработки компьютерных игр Unity // Агротехника и энергообеспечение. 2018. № 1. С. 100-108.
References
1. Novruzova G. S. Istoricheskaya i sotsial'no-obrazovatel'naya mysl'. 2020. T. 12. № 3. pp. 120-131.
2. Sovetov B. Ya., Yakovlev S. A. Modelirovaniye sistem: Praktikum [Modeling of systems: Workshop]. M.: Vysshaya shkola, 1999. 224 p.
3. Danilenko A. I. Inzhenernyj vestnik Dona, 2016, № 4. URL: http : //ivdon.ru/ru/magazine/archive/n4y2016/3861
4. Borodina E. V., Dmitriyev E. O., Gorbunov G. G., Aleksevnin E. A. Vestnik transporta Povolzh'ya. 2021. №1. pp. 33-44.
5. Dranchenko Yu. N. Vestnik transporta. 2013. № 10. pp. 20-26.
6. Boyraz G., Kirci P. Conference of Open Innovations Association, FRUCT. 2021. №28. pp. 554-557.
7. Mazlan N. A., Kassim M., Suliman S. I., Ya'acob N. International Journal of Advanced Trends in Computer Science and Engineering. 2020. № 1. pp. 545551.
8. Dokumentatsiya Unity. [Documentation Unity]. URL: docs.unity3d.com/2020. Documentation /Manual/UIE-Events-DragAndDrop.html
9. Rogachev V. A. Razrabotka komp'yuternykh igr v srede Unity: osnovnyye priyemy raboty i primery ikh primeneniya: uchebnoye posobiye. [Development of computer games in the Unity environment: basic techniques and examples of their application: tutorial]. Volgograd: Volgogradskiy gosudarstvennyy tekhnicheskiy universitet, 2016. 60 p.
10. Semushin I. V., Tsyganov A. V., Tsyganova Yu. V. [and others] Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta. Seriya: Matematicheskoye modelirovaniye i programmirovaniye. 2017. № 3. pp. 108-119.
11. Trokhova T. A. Agrotekhnika i energoobespecheniye. 2018. № 1. pp. 100108.
М Инженерный вестник Дона, №11 (2022) ivdon.ru/ru/magazine/arcliive/nlly2022/8023