Учебный тренажер водителя трамвая - Форум - Все для Unity3d

Все для Unity3d> Учебный тренажер водителя трамвая - Форум>
Страница 1 из 212»
Форум » Разработка » В стадии разработки » Учебный тренажер водителя трамвая (Проект предназначен для обучения первичным навыкам управлени)
Учебный тренажер водителя трамвая
astatДата: Суббота, 24.05.2014, 22:47 | Сообщение # 1
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline
Проект предназначен для обучения первичным навыкам управления трамвая,
расположению и назначению органов управления,
привитию тактильных навыков ученику водителя трамвая перед выездом
на реальной подвижной единице,
закрепления правил дорожного движения и должностных инструкций.

Учебный тренажер изготавливается под конкретный тип трамвая и конкретный маршрут движения.
При этом создается ситуация максимально приближенная к реальной панораме выбранного маршрута.
Рабочим местом обучаемого является пульт управления трамваем оборудованный штатными
органами управления тяговой и тормозной системами,
приборами и средствами индикации.

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

Добавлено (24.05.2014, 23:47)
---------------------------------------------
Первым делом решил начать с построения пути. Что бы не выдумывать велосипед, решил посмотреть как строят путь в редакторах популярных игр
на железнодорожную тематику (Microsoft train simulator, Train Simulator,
Trainz Railroad Simulator). Увиденное меня немного разочаровало, во
всех опробованных редакторах путь почему то строится ручками!? (выбираем
рельс - ставим, выбираем кривую - ставим) все бы ничего если бы путь
менялся только в одной плоскости, как по мне - особый вид садизма над
дизайнерами . Т.К. над проектом будут работать пара тройка человек, и то в свободное
время, буду генерить все что только можно - в том числе путь.

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

В следующем сообщении покажу что получилось.

P.S. Аспекты проекта которые не пересекаются с Unity3D:https://www.facebook.com/tramsimulator

 
devpilgrimДата: Воскресенье, 25.05.2014, 09:05 | Сообщение # 2
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
Если так разобраться, путь - это последовательность прямых и кривых у
которых есть определенный уклон, итого для исходных данных необходимо
будет подготовить два файла один с данными прямых и кривых, второй с
уклонами. В конечном итоге должны генерироваться контрольные точки пути к
которым подсунем рельсы, вдоль точек можно будет расставить столбы и
т.п объекты.
Давно уже никто не использует ручное моделирование дорог, столбов, рельс и т.д.
Все уже придумано за вас, на ассет сторе лежит куча инструментов под это дело.
Советую посмотреть на Antares Universe там есть встроенный редактор, ну и где-то на GIT валяются исходники его утилит (Antares Addon кажется называются), где как раз есть возможность построить линии по точкам, а потом присоединить к ним геометрию... Думаю как раз ваш случай smile
Ну и найти Неодропа и пообщаться с ним по русски по поводу того, как это работает, как адаптировать и т.д. - не составляет труда.


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Понедельник, 26.05.2014, 22:56 | Сообщение # 3
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline
Спасибо за советы, Antares скачал первым делом и почерпнул немало интересного, в
частности понятно по коду как дописать свой инструментарий для эдитор тайм, да
и вобще там немало интересного.

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







Следующим этапом планирую прикрутить камеру, которая будет перемещаться по пути, свое окно
списка объектов которые будут сортированы по типу - для быстрого выбора поиска и установки.
Идея состоит в том, что бы ставить объекты используя обзор от лица водителя трамвая.


Сообщение отредактировал astat - Понедельник, 26.05.2014, 23:11
 
devpilgrimДата: Понедельник, 26.05.2014, 23:28 | Сообщение # 4
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
А зачем камеру к пути прикручивать? Не проще прикрутить к путям трамвай, а к трамваю камеру???
А то, как бы не получилось, что трамвай на камере потом зависнет...


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Вторник, 27.05.2014, 13:15 | Сообщение # 5
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline

Цитата
А зачем камеру к пути прикручивать?

Резонный вопрос smile


Цитата
Не проще прикрутить к путям трамвай, а к трамваю камеру???

Именно так я и делаю, просто не стал подробно описывать.
Если быть точнее, к пути прикручиваю тележки, по тележкам выставляется кузов а к кузову камеру.



Сообщение отредактировал astat - Вторник, 27.05.2014, 13:58
 
devpilgrimДата: Вторник, 27.05.2014, 13:37 | Сообщение # 6
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
Именно так я и делаю, просто не стал подробно описывать.
Взялся описывать, описывай подробно smile Кстати, только заметил, у тебя на стыках видны зазоры геометрии.
Ты просто привязываешь объекты к линии?
Не проще генерировать мешь? Шпалы можно вообще не делать геометрией, используй бамп материалы с картами нормалей под путями и поиграй с настройками камеры, из кабины вид будет как у настоящих. А если еще источник света на трамвай повесить, чтобы правильно нормал мап подсвечивать - вообще красота будет...

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

Ну а рельсы генерировать по пути готового сплайна, это минут на 40 работы программиста. Посмотри статейку с хабра там достаточно просто и толково все расписано.


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Среда, 28.05.2014, 00:28 | Сообщение # 7
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline

Цитата
Взялся описывать, описывай подробно

Буду стараться smile


Цитата
Кстати, только заметил, у тебя на стыках видны зазоры геометрии.
Ты просто привязываешь объекты к линии?

Опишу подробней структуру пути.
Путь изначально закладываю с ориентиром на различный рельсовый транспорт. Есть, незначительные, отличия структуры пути разного рельсового транспорта.

Самый сложный вариант можно разбить на основные части:



рельсошпальная решетка, балластный слой (5), обочина(3) и откос (6).
На пример в трамвайном пути, практически всегда отсутствуют откосы.

Как собираюсь реализовывать свой путь:


Правый, левый откос и обочина образуют призму, призму генерирую triangle strip'ами по сто метров из 6 треугольников, а т.к. в трамвайном пути откосов нет - triangle strip из 2 треугольников.


Цитата
Шпалы можно вообще не делать геометрией, используй бамп материалы с картами нормалей под путями...

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

Почему не стал генерировать рельсы? ... причина в простом создании путевого развития,



с такой структурой просто будет пристыковывать стрелки - когда укладываем стрелку, скрываются ненужные меши.  На данном этапе с путем пока так. Конечно же я вернусь к этому вопросу, есть пару идей, но позже.

За советы благодарствую, беру на заметку.


Сообщение отредактировал astat - Среда, 28.05.2014, 00:45
 
devpilgrimДата: Среда, 28.05.2014, 06:30 | Сообщение # 8
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
Почему не стал генерировать рельсы? ... причина в простом создании путевого развития,
Логично...


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Среда, 28.05.2014, 14:20 | Сообщение # 9
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline
Наткнулся на интересную статейку, может кому будет интересно:
Секреты гейм-девелопмента: 47 игровых механик
 
devpilgrimДата: Среда, 28.05.2014, 21:00 | Сообщение # 10
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
Наткнулся на интересную статейку,

Отличная статья. Спасибо.


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Пятница, 13.06.2014, 00:25 | Сообщение # 11
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline
Получилось немного продвинуть проект, делюсь.
Добавил два окна редактора - выбора объектов и навигации по пути.

Окно выбора объектов:


В самом верху горизонтальный ряд кнопок для выбора категории объектов,
кнопки создаются и подписываются в зависимости от количества папок по указанному пути.
Вертикальные кнопки - *.FBX объекты найденные в соответствующей папке.

Ниже кнопка "Установить" - устанавливает выбранный объект на путь, на расстояние указанное в .IntField.
В самом низу превью выбора объектов.


Окно навигации по пути:



По задумке
Цитата
к пути прикручиваю тележки, по тележкам выставляется кузов а к кузову камеру
соответственно передвигая трамвай - будет перемещаться камера вдоль пути, а именно с такого ракурса планировалась установка окружающих объектов.

Перемещение происходит кнопками "Шаг вперед", "Шаг назад" с шагом 4м или 100м.
Перемещение с заданной скоростью - кнопкой "Старт", скорость задается слайдером.

Пока это самый минимум который нужен для построения участка.
Наверняка, в процессе работы, добавится и(или) поменяется функциональность.

Следующим шагом планирую заняться физикой процессов трамвая.


Сообщение отредактировал astat - Пятница, 13.06.2014, 00:41
 
devpilgrimДата: Пятница, 13.06.2014, 04:55 | Сообщение # 12
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
Вертикальные кнопки - *.FBX объекты найденные в соответствующей папке.
Хм, объективно, лучше использовать префабы. Дело в том, что они клонируются, а если грузить модели, то создаются те-же префабы, только при каждой новой установке - новые. Зачем лишнюю память тратить?


Готов работать за деньги, или за очень большие деньги.

Сообщение отредактировал devpilgrim - Пятница, 13.06.2014, 04:55
 
astatДата: Пятница, 13.06.2014, 12:07 | Сообщение # 13
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline
Цитата
Зачем лишнюю память тратить?

Делаю так.
При выборе объекта, для превью создается объект
Код
mGoInstance = (GameObject)Instantiate(Resources.Load(objectName, typeof(GameObject)));

если выбирается другой объект, текущий удаляется а новый создается тем же макаром.
Если объект устанавливается, делаю клон  mGoInstance  а оригинал удаляю.

Код
GameObject.DestroyImmediate( mGoInstance, true );

(да, при таком маневре слегка напрягаю сборщик ресурсов, но т.к. частота установки объектов не большая, думаю не критично).

Можно было бы подгружать все временные объекты, расставить их чтоб не мозолили глаза и делать копии, но как то мне это не оч. нравиться.

Делаю проверку - ставлю два объекта, у одного из них меняю текстуру, текстура меняется на двух установленных объектах. Т.е. как я понимаю, GameObject действительно разные, а как иначе, но меши у них по одному указателю?

Добавлено (13.06.2014, 13:07)
---------------------------------------------
Да, префабы планирую использовать, но задача у них будет иная, если необходимо будет объединить несколько объектов в группу. Примером могут служить какие то часто используемые группы объектов (несколько домов, деревьев, дома с деревьями и.т.д).

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


Сообщение отредактировал astat - Пятница, 13.06.2014, 12:13
 
devpilgrimДата: Пятница, 13.06.2014, 13:50 | Сообщение # 14
Начинающий писатель
Группа: Проверенные
Сообщений: 196
Статус: Offline
Цитата astat ()
(да, при таком маневре слегка напрягаю сборщик ресурсов, но т.к. частота установки объектов не большая, думаю не критично).

Ну для PC - да, не очень... Я просто все время забываю, что у Вас тренажер и скорее всего будет использоваться именно для учебных целей, значит заранее известна конфигурация оборудования...
Цитата astat ()
Можно было бы подгружать все временные объекты, расставить их чтоб не мозолили глаза и делать копии, но как то мне это не оч. нравиться.

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


Готов работать за деньги, или за очень большие деньги.
 
astatДата: Пятница, 13.06.2014, 15:48 | Сообщение # 15
Новый писатель
Группа: Пользователи
Сообщений: 33
Статус: Offline

Цитата
Использование загрузки объекта как реализовано сейчас у Вас, будет напрягать
процессор и память в несколько раз сильнее, чем просто собрать уровни
без динамической подгрузки и расстановки объектов.


А вот тут момент, для меня, не очень понятный.
Уровни будут собираться в редакторе Unity3D, затем когда все собрано - компилироваться в игру, т.е. для собранного приложения режим редактора не предусматривается. (Конечно же периодически собирать проект необходимо, чтоб убедиться что все ок).
 
Форум » Разработка » В стадии разработки » Учебный тренажер водителя трамвая (Проект предназначен для обучения первичным навыкам управлени)
Страница 1 из 212»
Поиск:
Свернуть
Развернуть
Необходима авторизация
0
ТОП-5 САЙТА
НОВЫЕ ИГРЫ
ГОРЯЧИЕ ТЕМЫ
СЛУЧАЙНЫЕ ФАЙЛЫ