Space engineers сабироиды что это
Как я строил гексапод в 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 сабироиды что это
Обновление 01.103: Исправления багов и производительности, Исправлен взлом турели
В заключении, мы хотели добавить, что наша разработка сфокусированна все больше на новых обновлениях и функционалу, который мы намерены издать в ближайшем будущем.
П.С. Огромное спасибо Andrew Woodall за помощь в улучшении производительности G-меню!
— исправлен взлом контейнера с боеприпасами турели
— исправлена производительность турели
— небольшие улучшения FPS (особенное заметны при наличии нескольких крупных кораблей на большом расстоянии)
— исправлена работа G меню (благодарим Andrew Woodall за публикацию исправления на GitHub)
— исправлено игнорирование включения/отключения блоками (LCD панели, искусственная масса, генераторы гравитации)
— исправлена индикация красным кислородной фермы при размещении в креативе
— исправлена проблема с прыжковым двигателем при соединении с другой структурой
— исправлена блокировка действия включить/выключить у выбрасывателя
Обновление 01.104: Исправления багов, разблокировка обучения
В обновлении на этой неделе мы выпустили несколько новых багфиксов и улучшений, чтобы подготовить игру к выходу самого крупного обновления с момента выхода игры (и вы знаете, какого).
Кроме того, мы представляем важное изменение в обучении. С этого обновления обучающие сценарии работают по следующему принципу: последующий этап обучения разблокируется только после выполнения предыдущего, чтобы новички, и вернувшиеся после перерыва игроки смогли узнать обо всех базовых аспектах игры. Обучающие сценарии стали более информативными, и могут рассказать о возрождении и восполнении энергии в мед. блоке, а также функциях кокпита.
Помимо этого, теперь вы можете вращать любую структуру на 90 или на 1 градус, удерживая кнопку CTRL для вращения под прямым углом, и кнопку ALT для вращения на 1 градус.
— Разблокировка обучающих сценариев по порядку
— обновлен обучающий сценарий 1
— исправлены проблемы когда кислород заполняется не верно
— исправлен вылет при загрузке\выходе из игры
— исправлено падении скорости симуляции при присоединении шасси к кораблю рядом с астероидом
— экран в криокапсуле больше не показывает «горизонт» и «высоту»
— исправленн туннельный эффект от прыжка после выхода
— исправлена неработоспособность прыжкового двигателя при прыжке на минимальную дистанцию во время движения
— исправлена неактивная кнопка ОК в сценариях
— исправлены ошибки экрана в криокамерах
— исправлена ошибка, когда малая цистерна с кислородом имела емкость, схожая с большой
— добавлен создатель исследовательского контента от сообщества Dorian Flores в описание игры
— новые выдвижные двери
— компонент «суперпроводник»
— обновленное функционирование батарей
— обновленный кокпит дл малых кораблей
— добавлены водородный двигатель, цистерна и баллон для водорода
— изменена работа реактивного ранца в режиме выживания
— изменена работа гасителей инерции
Руководство по использованию батарей
С теперешнего дня все новопостроенные батареи будут иметь 30% от максимального заряда, однако при их разборке компонент «энергетические ячейки» будет превращаться в металлолом. Также батареи тепреь могут находится в одном из четырех состояний (не выбрано, только зарядка, только подзарядка, полу-автоматический):
— когда выбран режим «только зарядка» батарея будет только принимать энергию повышая свой заряд
— когда выбран режим «только подзарядка» батарея будет только отдавать энергию
— когда выбран режим «полу-автоматический» батарея будет переключаться между зарядкой и подзарядкой как и раньше
Водородные двигатели сильнее существующих ионных, но они требуют водород, поставляемый по конвеерным системам для работы. Кислородный генератор теперь производит водород и кислород из льда. Водородные двигатели являются наиболее эффективным способом покинуть атмосферу или придать мощное ускорение полету, но требует объемный бак, и конвеерное соединение. Вам также требуется использовать водород для питания реактивного двигателя на космонавте, питание с помощью баллонов в инвентаре. Игрок будет сжигать топливо в личном реактивном ранце быстрее при высокой гравитации. Мы также добавили возможность мододелам создавать новые виды топлива и новые виды двигателей, работающих на этом топливе.
Объяснение изменения механики работы гасителя инерции
Покинуть зону естественной гравитации планеты должно быть не так просто, а коррекция поведения гасителей инерции меняет модель полета корабля, в том числе и в атмосфере. Гасители теперь имеют такую же мощность, как и остальные двигатели. При малом количестве тормозных двигателей корабль будет останавливаться существенно позже. Малые корабли имеют модификатор х5 на гасителях для того, что бы они оставались более управляемыми, по-сравнению с большими кораблями. Мы также открыли возможность измениять модификатор, так что сообщество может сделать новое поведение кораблей, или вернуть старое.
Инструкция по переключению в Steam на бету версию.
Что бы получить доступ к ветки Бета, следуйте в свойства игры, вкладка бета-версий и выбирете старый билд под названием «old_multiplayer». Пароля не требуется.
— улучшения работы мультиплеера
— улучшения работы роторов
— исправлена проблема с появлением эффектов прыжка даже когда прыжковый двигатель не использовался
— исправлены пробле
Очистительный завод
Contents
Обзор
Очистительный завод это функциональный блок, доступный для больших кораблей и станций. Он служит для переработки руды в слитки. Может быть подключен к конвейерной системе через одby из своих разъемов, что позволяет автоматически загружать руду из присоединенных хранилищ, обрабатывать ее, и выгружать слитки по мере надобности во все подключенные сборщики. В отличие от Базового очистителя, Очистительный завод может перерабатывать все типы руд в игре, кроме льда, который должен обрабатываться в генераторе кислорода.
Использование
Эффективность
Кроме того, каждый вид переработки (Очистительный завод, Базовый очиститель) также имеет свои собственные коэффициенты эффективности для разных видов руд и скорость плавки. Эти факторы совместно определяют результирующий выход полезных материалов по каждому заданного количества руды разного вида:
Используя эти формулы мы можем, например, определить что полезный выход 50 кг Никелевой руды составит 16 кг обработанных Никелевых слитков, поскольку:
Коэффициенты переработки
Скорость переработки (для версии 1.080)
Дополнительные модули
Информация действительна для версии 1.089
Переработка без модулей имеет базовую эффективность 100% по всем трем параметрам (энергоемкость, эффективность, скорость). Когда вы пристыковываете дополнительные модули, на Контрольной Панели Очистительного завода будет видно скорректированные значения эффективности. Каждый Очистительный завод имеет восемь разъемов для подключения модулей, все на плоской серой стороне. Каждый модуль может занимать до двух разъемов.
Для очистительных заводов существуют три типа дополнительных модулей:
Таким образом, максимальный уровень производительности повышает скорость переработки чуть более, чем в 4 раза (а не в 5 раз).
Space engineers сабироиды что это
It looks. horrible. It’s every rip-off recycled «insectoid alien» idea that’s ever fouled a screen, all mushed together into a single, bland, boring, steaming pile.
Nice to be able to see what the artists have been spending their time on while they neglect the DX11 update they rolled out incomplete months ago.
there is also a human, or something
a DeerDoe, Spider, lazor and shielz
I’m thinking the animations from that space spider video are going to be used with this model.
http://steamcommunity.com/sharedfiles/filedetails/?id=503986375
there is also a human, or something
a DeerDoe, Spider, lazor and shielz
I’m thinking the animations from that space spider video are going to be used with this model.
http://steamcommunity.com/sharedfiles/filedetails/?id=503986375
How is it? its a real model that will be implemented into the game
How is it? its a real model that will be implemented into the game
It’s the creative equivalent of a fart.
It’s the creative equivalent of a fart.
You do relise that isn’t the final model? It will be changed before it is released.
Changed into what? Changed into a not lazy insectoid alien a la Starship Troopers (the movie) trope?
It’s trash. It’s a cliche of a cliche. It’s distracting, detracting, and falls far short of the quality level KSH is capable of; the quality level they could be maintaining if they focused on their goals instead of bouncing from player whine to player whine like a distracted squirrel. It’s a horrible waste of effort. all to appease the crowd who thinks that if there’s nothing to shoot, it’s not a game. Just to placate the apparently massive group of players who saw the game was first person and assumed it was a shooter. Just for the people who bought a building sandbox and were suddenly unhappy with it being a building sandbox.
Space engineers сабироиды что это
Мод Nanite Control Factory — добавляет специализированных нанитов. Наниты могут выполнять различный действия — строительство, ремонт, деконструкция, проекционное строительство. Мод работает в мультиплеере.
Есть разные типы нанитов. Изначально доступны наниты для строительства и ремонта. Для расширения функционала нанитам требуется использовать модули обновления.
Показать полностью.
Construction — синий цвет. Нанит заканчивает строительство или ремонт блоков
Projection — розовый цвет. Нанит преобразует проекцию в блок (начальная постройка)
Cleanup — желтый цвет. Нанит захватывает плавающие объекты вокруг и выгружает на складе. Диапазон работы — 500 метров от завода
Deconstruct — нанит разбирает конструкции в радиусе 300м от завода.
Mining — оранжевый цвет. Нанит ищет и добывает руду из астероида или планеты
Medical — белый цвет. Лечит игрока
Вышеуказанные цвета будут показывается, когда нанит выполняет свою задачу
После выполнения задачи наниты будут иметь 2 цвета:
Зеленый — задача успешно выполнена
Красный — была ошибка при выполнении задачи
Завод можно улучшать. Максимальное количество улучшений — 8. Именно эти улучшения открывают новые функции нанитам.
Завод также имеет статус-цвет:
Красный — завод отключен. Все цели будут отменены
Зеленый — завод включен. Нету текущих целей
Мигающий зеленый — Есть цели, но наниты не могут выполнить их
Мигающий зеленый — заводу не хватает мощности, чтобы выполнять цели
Еще 1 мигающий цвет (magenta) — не хватает материалов для выполнения целей
Синий — завод работает и цели выполняются