Создание и настройка визуальной модели: основы основ

Создание и настройка визуальной модели: основы основ

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

Тема разработки 3D-моделей для железнодорожных симуляторов — отдельная большая тема для разговора, и, я уверен, гораздо лучше её раскроет мой коллега Роман Бирюков (Ромыч РЖДУЗ), когда присоединится к написанию документации.

Я буду говорить только о том, каким требованиям должна удовлетворять модель с точки зрения программиста, работающего над DLL-модулем.

Для создания моделей в RRS могут быть использованы в равной степени эффективно как Autodesk 3dmax, так и уверенно набирающий обороты Blender — редактор с открытым исходным кодом. Для меня удобнее Blender, поэтому дальнейший материал я буду излагать с использованием этого редактора. В нем я сделал вот такую простейшую «тушку» нашего локомотива, без претензий на высокую художественность

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

Итак, вне зависимости от того редактора, в котором делалась модель, она должна удовлетворять следующим требованиям

  • Продольная ось локомотива направлена вдоль оси Y, рабочая кабина находится на положительной половине этой оси;
  • Нижние точки кругов катания колесных пар находятся на нулевом уровне;
  • Ось Z располагается на равном расстоянии от осей автосцепок локомотива (секции локомотива, вагона и т.п.);
  • Все детали, для которых предполагается анимация должны быть выполнены как отдельные объекты и иметь осмысленные имена на латинице, без пробелов.

Вообще, осмысленные имена стоит давать всем объектам в сцене — это золотое правило аккуратной работы. Что касается данной модели, то вот список объектов, из которых она состоит

Body — это кузов локомотива; Bogie-1, Bogie-2 — передняя и задняя тележки, а Wheel-1,…,Wheel-6 — колесные пары.

Каждый элемент, выделенный в отдельный объект может быть в дальнейшем анимирован.

Если модель удовлетворяет этим требованиям, то можно экспортировать её из 3D-редактора. Для Blender существует специальный плагин, который можно скачать тут. Плагин устанавливается стандартным для Blender способом.

Для экспорта модели переходим объектный режим, выделяем все элементы модели, и в меню File -> Export выбираем QSG Model (.osgt).

Для того, чтобы модель была найдена симулятором, в папке data/models создадим каталог с именем, например, simple-loco

и уже в этот каталог помещаем сконвертированную модель и папку с её текстурами. В нашем случает текстуры отсутствуют, поэтому в каталоге будет лежать только модель в формате OSGT

Что дальше? А дальше нам остается прописать в конфиг vehicles/simple-loco/simple-loco.xml еще один параметр

<ExtModelName>simple-loco/simple-loco.osgt</ExtModelName>

то есть указываем путь к модели относительно каталога data/models/. Запускаем симулятор

Модель успешно загрузилась, но… колеса опущены ниже уровня рельс! Почему так происходит.

Это происходит из-за несовпадения начала координат, от которого отстраивается модель в 3D-редакторе с нулевым уровнем в маршрутах, которые, как уже говорилось ранее, без изменения взяты из ZDSimulator.

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

<ModelShift>0.0 0.0 0.311</ModelShift>

Данный параметр задает вектор, на который необходимо сместить модель относительно начала координат в локальной системе, связанной с траекторией перемещения центра модели. Ось Y этой системы координат всегда направлена по касательной к оси пути, ось Z — вверх, а ось X — вправо. Параметр ModelShift содержит три числовых компонента, разделенных пробелами: первое число указывает смещение вдоль оси X, второе — вдоль оси Y, третье — вдоль оси Z.

Запускаем симулятор снова

Высота h = 0.311 метра подобрана экспериментально исходя из анализа геометрии моделей элементов пути, содержащихся в маршрутах.

Теперь все в порядке, но при попытке поехать мы видим другой непорядок — колесные пары локомотива не вращаются.

О том, как настраиваются анимации моделей в RRS мы поговорим в следующей главе.

Назад Вперед
Содержание