Mio-tech-service.ru

Автомобильный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Space engineers как включить двигатель

Space Engineers скорость: команды Pos, Altitude, Speed, Accel, Gravity, StopDistance, StopTime.

Space Engineers скорость: команда Pos отображает положение в пространстве указанной ЖК-панели в одной строке.
Используйте PosXYZ , чтобы отобразить X, Y, Z на отдельных линиях.
Команда PosGPS для отображения положения в формате GPS.

Аргументы.
Без аргументов: отображает расположение ЖК-панели.
Первый аргумент: отображает местоположение первого найденного блока, соответствующего фильтру по названию.

Automatic LCDs 2: команда Altitude.

Automatic LCDs 2: команда Altitude отображает высоту корабля над землей.
AltitudeSea отображает высоту над уровнем моря.

Не принимает аргументов.

Водородный двигатель

В отличие от атмосферных, эти движки могут функционировать как в космосе, так и на планетах. Для питания используется водород, получаемый при переработке льда в генераторе O2/H2.

Водородные двигатели

Такие двигатели для работы должны быть соединены с источником водорода — водородным баком. В некоторых ситуациях это может быть очень неудобным. Согласитесь, что прокладывать десятки труб по всему кораблю то еще удовольствие. Еще одним недостатком является то, что водородные ускорители потребляют очень много водорода. Ввиду этого, если вы стартуете на планете и планируете подняться в космос — постройте несколько резервуаров с водородом. Желательно их полностью заполнить перед взлетом — ведь ты не хочешь, чтобы на высоте в 20-30 км у тебя закончился водород и твой корабль начал неконтролируемое падение?

Однако, этим движкам не нужна энергия. Таким образом, даже если на корабле закончится энергия — двигатели не перестанут работать. Все преимущества и недостатки можно выделить в такой вот таблице:

ПлюсыМинусы
Работает во всех средахНеобходимо соединять каждый двигатель с водородным баком
Быстрый разгонОчень прожорливы
Не требуют энергию

Как я строил гексапод в Space Engineers. Часть 1

Здравствуйте. Я хочу рассказать про проектирование и программирование системы управления конечностями в гексаподе, построенном в Space Engineers.

Забегая вперед скажу, что всё, что касается программирования в Space Engineer, будет в следующей статье. В этой я расскажу про обратную кинематику и покажу прототип на HTML Canvas в котором я занимался отладкой алгоритмов.

Предыстория и постановка задачи.

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

Вроде такого

Но я столкнулся с невозожностью его точно разместить на месторождении, так-как колеса часто соскальзывали вниз (проблема физики — большинство блоков (в том числе и колеса) имеют слишком малый коэффициент трения). Колесная платформа с цельноповоротными колесными модулями оказалась слишком громоздкой и страдала от периодических physics explosion. В результате было решено строить шагающего робота — а именно — гексапод, как самую стабильную шагаюшую платфрому.

С чего начнет строить гексапод нормальный человек? Наверное зайдет в игру и начнет строить тело робота с конечностями, а потом думать как это всё оживлять. Но это не наш метод (ц)

Я начал с теории

Для строения ноги была выбрана следующая схема:

Inner joint — внутренний сустав, качающийся по оси рысканья (yaw)
Mid joint и outer joint — внешние суставы, качающиеся по оси тангажа (pitch). Направление отсчета — от основания ноги к концу ноги.

Угол 0 для всех суставов означает, что нога полностью выпрямлена (прямую ногу будет проще строить в игре).

Задача — при заданной целевой точке найти такие углы поворота сустовов, что-бы конец ноги оказался в заданной точке. Значит время вспоминать тригонометрию.

Угол внутреннего сустава можно найти через арктангенс горизонтальных координат цели.

С двумя другими суставами посложнее. У нас есть длина всех суставов. Можно найти угол к горизонту и расстояние между средним суставом и землей, а так-же расстояние до целевой точки.

Дальше через теорему косинусов нужно найти углы треугольника по известным сторонам.

Так это выглядит в коде:

Движение

Далее. Робот должен ходить, верно? То-есть мы должны передавать N раз в секунду каждой ноге координаты заданной позиции. С учетом того, что ног 6 и 3 из них двигаются в противофазе получается как-то сложно. Нужно ввести новый уровень абстракции.

Читать еще:  Вскипел двигатель ваз как быть

А что если мы представим что нога движется по окружности и ей нужно передавать угол обозначающий позицию на этой окружности? Удаление в сторону становится постоянным и нужно передавать только один параметр, меняющийся циклично. Тогда целевые координыты находятся через синус и косинус.

Пока достаточно

Обдумывая как всё будет работать я понял, что задача слишком сложная для того, что-бы всё заработало с первого раза (с дебагом в Space Engineers всё плохо, но об этом в следующей части).

Поэтому я решил написать визуализатор. Мне хотелось его сделать без дополнительных библиотек и иметь возможность запускать его в один клик и без привязки к окружению.
Поэтому был выбран JS + HTML Canvas.

А сейчас нарисуем сову.

Шаг — структура данных для управления ногой:

Но для отрисовки понадобятся еще несколько классов:

Обертка над Canvas:

В классе Leg есть метод для получения текущих координат суставов. Вот эти координаты мы и будем отрисовывать.

Так-же я добавил отрисовку точек, в которых находилась нога в N последних тиков.

И наконец Worker, который будет запускать симуляцию:

Правда миленько?

Здесь видно, что траектория движения ног отличается от окружности. Движение по вертикали напоминает урезанную синусоиду, а движение по горизонтали линейно. Это должно уменьшить нагрузку на ноги.

Теперь несколько пояснений, что происходит в коде.

Как научить робота поворачивать?

Для поворота я рассмотрел 2 ситуации:

Если робот стоит — ноги двигаются по окружности.

Единственное но — движение именно по окружности сильно усложнило-бы код с текущей реализацией. Поэтому ноги двигаются по касательной к окружности.

Когда робот двигается нужно реализовать что-то вроде Ackermann steering geometry с дифференциалом.

То-есть длина шага ног, двигающихся по меньшему радиусу, — меньше. А угол поворота — больше.

Что-бы реализовать изменение угла поворота для каждой ноги я придумал следующий алгоритм:

1. Считаем угол от изначального положения ноги к центру робота:

2. Считаем угол от изначального положения ноги к (центру робота + смещение, которое отвечает за поворот — это изменяемый параметр):

3. Поворачиваем шаг на разницу этих углов:

Но это не всё. Еще нужно изменять длину шага. Реализация в лоб — домножать длину шага на изменение расстояния до центра — имело фатальный недостаток — внешние ноги слишком широко шагали и начинали задевать друг друга.

Поэтому пришлось усложнить реализацию:

1. Считаем изменение расстояния до центра для каждой ноги:

0.3 — магическое число

2. Находим отношение между минимальным и максимальным изменением

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

Вот как это работает (gif 2 мегабайта):

→ Поиграться с результатом можно тут

Для более пристального изучения рекомендую сохранить содержимое в html файл и продолжить в любимом текстовом редакторе.

В следующей публикации я расскажу как заставил всё это работать в Space Engineers.
Спойлер: в Programmable Block можно писать на C# почти последней версии.

Об этой игре

Space Engineers — игра песочница с открытым миром, основанная на творчестве и исследованиях

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

В игру можно играть как в одиночном, так и в многопользовательском режимах.

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

Читать еще:  Шкода суперб какой двигатель выбрать

Доступны три типа структур: малые корабли, большие корабли и станции. В зависимости от выбранного размера блоков создаются либо малые корабли, либо большие корабли/станции. Станцией структура становится если её блоки пересекаются с вокселями планеты или астероида.

Творческий режим игры [ править | править код ]

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

Режим выживания [ править | править код ]

В режиме выживания игрокам необходимо добывать, собирать и очищать различные ресурсы, чтобы создавать инструменты, оружие и блоки, а также производить электричество. Ресурсы можно добывать вручную с помощью ручного бура или с использованием кораблей с необходимым оборудованием. Чтобы избежать смерти, игроки должны следить за своим здоровьем, энергией и уровнем кислорода. Здоровье и энергия игрока могут быть восстановлены с использованием медицинского блока (отдельно энергию можно также восстановить в кабине пилота). Запас кислорода может быть восполнен в медблоке, если он подключён к генератору O2/H2, или при помощи кислородного баллона, заправляемого в вышеупомянутом генераторе. С недавних пор, в игре присутствует опция «Прогресс», позволяющая игроку постепенно открывать доступ к чертежам.

Планеты [ править | править код ]

12 ноября 2015 года были добавлены планеты. [2] На данный момент в игре присутствуют 5 планет : Земля, Марс, Чужая планета, Тритон Пертам и их спутники: Луна, Европа, Титан

Неизвестные сигналы [ править | править код ]

17 августа 2017 года в режим выживания были добавлены «неизвестные сигналы». [3] Эти сигналы появляются случайно в определённом диапазоне вокруг игрока и указывают расположение маленького зонда с помощью координат GPS. Каждый зонд имеет кнопку, которая при нажатии на неё, случайным образом выдаёт скин на снаряжения или на скафандр, либо не даёт ничего. Так же в зонде находится маленький контейнер с различными ресурсами или снаряжением полезными при строительстве. Скины на снаряжение или скафандр могут быть проданы или куплены на торговой площадке Steam.

Space Engineers: корабли — первым делом

А ведь речь пока затронула только маленькие корабли. Придется потратить немного больше времени и сил, но построить что-то мощнее и внушительнее вполне реально. Можно в Space Engineers строить и такие корабли, по которым можно ходить-бродить, вооружить ракетницами, очистителем и медицинским отсеком — плюс, можно построить космическую станцию с тем же набором. (ну или не тем же — здесь перечислены далеко не все возможности игры). И, несмотря на то, что инструменты кажутся довольно примитивными, корабли в Space Engineers (а также станции) можно делать не только полезными, но и красивыми.

Space Engineers: корабли

Ладно, теперь о грустном. Все вышеперечисленное пока и является всем, что игра может предложить. Space Engineers — корабли, космические станции и возня вокруг них. Но это не значит, что там больше нечего делать. Это же песочница, в конце концов. Можно вооружится хорошим другом, наклепать вдвоем кораблей в режиме онлайн и… сталкивать их вместе, наслаждаясь видом прекрасных взрывов. Корабли в Space Engineers — и станции, кстати тоже — имеют своеобразную динамику взрыва каждый раз, с каждой запущенной ракетой и можно «пробить» дыру в стенах космической станции да загнать туда небольшой корабль. Помимо этого мир полон летящих метеоров и метеоритов — что тоже добавляет к безудержному веселью. А еще ведь можно «врываться» в чужие игры или открытые игры, не говоря уж о возможности кооперативной игры — что тоже спровоцирует возникновение всяческих забавных ситуаций.

Space Engineers: ну куда же без старого доброго разрушения?

Space Engineers работает под Linux, и вы сможете в нее поиграть. Однако он работает только с мощью Proton, включенной в Linux-версию Steam. По этой причине нам нужно заранее узнать, как установить приложение Steam.

Читать еще:  Шум двигателя ep6 на холодную

Установить Steam

Чтобы начать установку Steam на вашем ПК с Linux, откройте окно терминала. Чтобы открыть окно терминала, нажмите Ctrl + Alt + T на клавиатуре. Или найдите «Терминал» в меню приложения и откройте его таким образом.

Когда окно терминала открыто и готово к использованию, следуйте приведенным ниже инструкциям по установке, которые соответствуют используемой вами операционной системе Linux.

Ubuntu

В Ubuntu вы сможете установить приложение Steam, используя команду Apt ниже.

Debian

В Debian Linux приложение Steam можно установить через загружаемый пакет DEB на ваш компьютер. Чтобы загрузить пакет Steam DEB на свой компьютер, используйте инструмент загрузки wget, чтобы загрузить его.

После загрузки последнего пакета Steam DEB на ваш компьютер с Debian Linux можно начинать установку Steam. Используя приведенную ниже команду dpkg, вы сможете запустить приложение Steam.

Если на вашем компьютере установлен пакет Steam DEB, вам необходимо выполнить приведенную ниже команду apt-get install -f, чтобы исправить любые проблемы с зависимостями, которые могли возникнуть во время установки.

Arch Linux

В Arch Linux приложение Steam легко установить с помощью следующей команды Pacman.

Fedora / OpenSUSE

Как в Fedora, так и в OpenSUSE Linux Steam можно установить из официальных источников программного обеспечения. Однако выпуск Steam Flatpak намного лучше работает с этими дистрибутивами, и по этой причине мы рекомендуем установить его вместо него.

Flatpak

Чтобы приложение Steam работало в Steam, первое, что вам нужно сделать, это включить среду выполнения Flatpak на вашем компьютере. Чтобы включить среду выполнения Flatpak на вашем компьютере, следуйте этому руководству по этому вопросу.

После настройки среды выполнения Flatpak на вашем компьютере вы должны настроить магазин приложений Flathub. Чтобы настроить магазин приложений Flathub, используйте следующую команду удаленного добавления ниже. Этот шаг очень важен, так как без него Steam не может быть установлен.

Теперь, когда магазин приложений Flathub настроен, можно установить приложение Steam. Используя команду ниже, установите Steam.

Установите Space Engineers в Linux

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

Шаг 1. Сначала откройте Steam и нажмите меню «Steam». Оттуда выберите «Настройки», чтобы получить доступ к области настроек Steam. Оттуда найдите область «Steam Play».

В области Steam Play установите флажки «Включить Steam Play для поддерживаемых игр» и «Включить Steam Play для всех других игр». Затем нажмите кнопку «ОК», чтобы применить изменения в Steam.

Шаг 2: Найдите кнопку «СОХРАНИТЬ» и щелкните по ней мышью. Затем щелкните мышью по полю поиска. В поле поиска введите «Space Engineers» и нажмите клавишу Enter, чтобы просмотреть результаты.

Просмотрите результаты поиска по запросу «Space Engineers» и щелкните его, чтобы просмотреть страницу магазина. Затем найдите зеленую кнопку «Добавить в корзину», чтобы купить и добавить игру в свою учетную запись.

Шаг 3: Откройте окно терминала. Как только окно терминала откроется, следуйте это руководство для установки Protontricks. Он понадобится вам для работы космических инженеров.

После установки Space Engineers сделайте следующее. Сначала нажмите зеленую кнопку «ИГРАТЬ», чтобы начать игру. Не волнуйтесь, если он не запустится правильно.

После запуска игры закройте ее. Затем перейдите в терминал и выполните следующую команду.

Выберите «Space Engineers» в графическом интерфейсе Protontricks. Затем выберите «dotnet48» и установите его. Затем перезагрузите компьютер.

Шаг 4: После перезагрузки компьютера перезапустите Steam и нажмите зеленую кнопку «ИГРАТЬ» второй раз. Поскольку Protontricks установил dotnet48, он должен работать правильно! Наслаждаться!

Исправление проблем

Нужна помощь в настройке Space Engineers на вашем ПК с Linux? Посетите страницу устранения неполадок ProtonDB за дополнительной информацией.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector