Payload Manager SDK
Если ваш корабль сделан в виде dll-модуля, использование Payload Manager SDK позволит превратить его в корабль-носитель и обеспечить возможность конфигурирования полезного груза. В первую очередь это будет полезно при разработке моделей РН.

Концепция

Любой корабль (vessel) является классом - наследником базового класса VESSEL (или VESSEL2). SDK предоставляет новый базовый класс VesselWithPM, который также является наследником VESSEL2, но добавляет к нему весь функционал, связанный с моделированием полезной нагрузки. Поэтому разработчику достаточно просто отнаследоваться от класса VesselWithPM.

Документация

SDK подробно документирован. Вся документация на английском языке. В состав пакета включен готовый пример корабля-носителя вместе с исходным кодом. Исходный код снабжен подробными комментариями.


Сравнение с технологией CVEL-GPDS

В CVEL-GPDS полезная нагрузка имитируется добавлением к кораблю-носителю визуальной модели (mesh) корабля-груза. При этом визуальная модель груза выглядит именно так, как она описана в файле .msh. То есть вся анимация, определенная в модели, будет в положении "по умолчанию". Это приводит к некоторым проблемам. Например, DeltaGlider по умолчанию имеет выпущенные шасси и именно в таком виде он будет присоединен к кораблю-носителю, сделанному на основе CVEL-GPDS. Представьте, что "Буран" подвешен к "Энергии" с выпущенными шасси... Некрасиво. Возможны и другие проблемы, особенно в случае сложных кораблей, у которых визуальная модель динамически меняется и использует несколько файлов .msh.
Есть и другие ограничения, накладываемые на модель корабля-груза, из-за которых CVEL-GPDS не совместима, например, со знаменитым DeltaGlider-IV.
Сам корабль-груз, как объект симуляции, создается только в момент отделения от корабля-носителя. Это не дает возможности управлять кораблем-грузом, пока он не отделится от носителя. Влияние поведения груза на носитель также отсутствует в принципе.

Payload Manager реально присоединяет корабль-груз при помощи технологии Attachment points. Корабль-груз остается объектом симуляции и вы можете перевести фокус управления на него. Выполняя полет вы можете действовать как от лица пилота корабля-носителя, так и от лица пилота корабля-груза, т.е. пассажира :)
Все параметры полета носителя (скорость, высота, воздействие атмосферы и т.п.) аккуратно передаются на корабль-груз. Воздействие от корабля-груза также передается на корабль-носитель, влияя на динамику его полета (моменты, возникающие при включении двигателей корабля-груза, изменение его массы, площади миделя и т.п.).

Добавление технологии Payload Manager в готовый корабль - операция не сложная, требует вставки всего нескольких строк кода. В большинстве случаев это можно сделать за считанные минуты.


Payload Manager

Конструктивно Payload Manager состоит из двух частей:

1. Модуль, обеспечивающий присоединение, сброс полезной нагрузки, а также реалистическое поведение носителя в связке с ПН (например, передача воздействия на носитель со стороны работающих двигателей ПН).
Модуль является дальнейшим развитием тех участков кода в проектах ENERGY project, Delta Tug и Space Tugs, которые отвечали за присоединение грузов. В основу положено использование механизма Attachment points.

На скриншоте показано воздействие на РН "Энергия" от работающих двигателей полезной нагрузки - трех кораблей Deltaglider. Обратите внимание на вектор тяги РН, автопилот компенсирует паразитный момент от двигателей ПН.


2. Редактор размещения ПН на носителе. Представляет собой расширение редактора сценариев (Scenario Editor), встроенного в Орбитер-2006. Payload Manager позволяет выбрать любой корабль в качестве ПН и правильно расположить его на носителе. Работа Payload Manager производится в режиме реального времени симуляции (возможна также работа в режиме паузы).


При помощи Payload Manager можно создавать многоступенчатые конструкции, например, вот такой "поезд":


В настоящее время Payload Manager SDK проходит тестирование и используется в текущих бета-версиях проектов ENERGY project, Space Tugs, Vulkan и TX.

На основе Payload Manager SDK создается проект Cargo Deck, цель которого - дать возможность использовать Payload Manager в любом корабле симулятора Орбитер - без программирования.

Payload Manager выпущен. Страница для скачивания.