Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

Гость : (2 дней назад) У кого-нибудь есть полный пак инструментария от lz?
Yakim (Watco... : (14 Июль 2018 - 00:06) :D
Yakim (Watco... : (14 Июль 2018 - 00:06) nope
Yandersen : (13 Июль 2018 - 22:07) Айаяй. Поди Якимко заспамил чат стикерами. :)
Yandersen : (13 Июль 2018 - 22:06) Да лан, тут каждый день кто-нить из админов заглядывает. Как пропустили?
Nextovoy : (13 Июль 2018 - 01:04) Я писал
Гость : (10 Июль 2018 - 22:42) Сорьки, что так у нас. Чего три года так и не попытался в чат писнуть? :)
Nextovoy : (06 Июль 2018 - 16:15) Спасибо
lz : (04 Июль 2018 - 19:44) Активировал.
Гость : (03 Июль 2018 - 16:30) Активируйте его.
Гость : (03 Июль 2018 - 16:30) Мой профиль - Nextovoy
Гость : (03 Июль 2018 - 16:25) Написать в чат. Профиль в ручную админы активируют.
Гость : (03 Июль 2018 - 15:47) Ох уж эта дурацкая привычка писать всё раздельно засоряя чат. Это всё классно, конечно, но ребята, одменестраторы, так называемые. Третий год пытаюсь зарегистрироваться (буквально, третий) на этом форуме, но ПИСЬМО С ПОДТВЕРЖДЕНИЕМ НА ПОЧТУ ТАК И НЕ ПРИХОДИТ. Что делать?
Гость : (03 Июль 2018 - 15:46) Перешёл я всё же по ссылке Redoctor'a...
Гость : (03 Июль 2018 - 15:41) Пора уже M4
Гость : (29 Июнь 2018 - 00:18) итак м3
lz : (28 Июнь 2018 - 16:01) Мы тебе и тут передадим.
Гость : (28 Июнь 2018 - 13:13) Зачем в телеграмме делать?!Я вот например не могу зайти,написать в чат,подписаться и не только у меня это.
Redoctor : (24 Июнь 2018 - 19:35) https://vk.com/away....0_23001&cc_key=
Redoctor : (24 Июнь 2018 - 19:34) Тогда в телеграмме в поисковике набери Механоиды 3
Гость : (24 Июнь 2018 - 19:05) Не открывается.
Redoctor : (24 Июнь 2018 - 18:00) https://t.me/mechanoids3 Для тех кто в танке.
Yakim (Watco... : (15 Июнь 2018 - 01:33) КРУЗИИИС!!!11

Изображение
lz : (15 Июнь 2018 - 00:09) КРУЗИС!
lz : (15 Июнь 2018 - 00:09) ЗИС
lz : (15 Июнь 2018 - 00:09) КРУ
Yakim (Watco... : (14 Июнь 2018 - 14:50) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (14 Июнь 2018 - 13:55) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (14 Июнь 2018 - 00:22) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (14 Июнь 2018 - 00:21) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (14 Июнь 2018 - 00:18) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (14 Июнь 2018 - 00:15) Не, спасибо, не в моем вкусе=)
smt005 : (13 Июнь 2018 - 23:13) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (13 Июнь 2018 - 23:13)
smt005 : (13 Июнь 2018 - 23:11) Или например такое, только с моделями из игры -> https://youtu.be/RFDdN5dcX8s
smt005 : (13 Июнь 2018 - 23:07) Yakim, да сами себя пните... :) Сделайте что-то, хотя бы уровня "Scrolling TopDown Shooter".
Yakim (Watco... : (12 Июнь 2018 - 22:17) так что, думаю завтра с утреца стартану марафон)
Yakim (Watco... : (12 Июнь 2018 - 22:15) хе-хе, не сомневайся, я в чате по уе уже поинтересовался, сказали обалденный сериал)))
Yandersen : (12 Июнь 2018 - 20:56) Оооооо, поди ща залипнет на пару дней, стопудофф. :)
Yakim (Watco... : (12 Июнь 2018 - 18:28) Окей гляну)
Yandersen : (12 Июнь 2018 - 16:23) Сериал Пространство посмотри. Не по части Мехов, просто шикарен, авось ману доставит.
Yakim (Watco... : (11 Июнь 2018 - 18:50) Дуст и ты уже закаленные и пустые, надож где-то ману доставать)))
Yakim (Watco... : (11 Июнь 2018 - 18:49) Думаю, кого быть пнуть, что-бы тот пнул в ответ да по сильнее.
Yakim (Watco... : (11 Июнь 2018 - 18:48) Давненько и не маленько хе-хе, делать нечего, прокрастинирую =)
Yandersen : (11 Июнь 2018 - 17:46) Якимка, ты там шо, упоролсо маленько? Чиво картинами опспамилсо?

Фотография
- - - - -

Симулятор глайдера


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 09 Июль 2014 - 02:37

Для втыкающих: я - Ize'g0re с форума скайривера.

oEfN287.png

Итак. Синие линии - крутящие моменты. Голубая стрелка - их сумма.

Маленькие зелёные стрелки - эффекторы антиграва. Силы от них действуют в обратном направлении, стало быть. Большая зелёная - сумма всех сил.

Белый крест - среднее между точками приложения сил.

 

А теперь весёлое: красная стрелка - это крутящий момент, генерируемый суммой сил, приложенной к средней точке.

Как видим, момент суммы не равен сумме моментов, а почему? А потому что мы неправильно точку приложения посчитали!

Следим за руками:

Имеем силы и точки их приложения. Считаем крутящий момент для каждой.

Складываем все моменты и все силы (мухи - отдельно, котлеты - отдельно!)

Т.к. момент = плечо [векторное произведение] сила, путём очень хитрой математики и допущения, что момент ортагонален плечу и силе (которое, слава Суперу, имеет физическое обоснование), мы всё-таки получаем плечо.

Из которого находим действительный центр приложения суммы сил. Это красный крест.

 

Вот через такие дебри приходится продираться, чтобы получить наиболее гладкую стабилизацию)

Осталось сделать под это всё хитрую логику, которая будет бдить, и стремиться удовлетворить потребности как в моменте, так и в линейной силе.

 

Впрочем, я могу и сжульничать. Выставить физ. телу нафиг - "не крутись!", а потом самостоятельно применять на него крутящие моменты. А силы пускать в центр масс. Разница будет только в том, что итоговая линейная компонента будет немного другой при таком подходе. Что думаете?


, наверное...


#2 OFFLINE   Arсhangel

Arсhangel

    Главный админ

  • Админ
  • 44 сообщений
  • Откуда:Украина
  • Настоящее имя:Влад

Отправлено 09 Июль 2014 - 11:22


Впрочем, я могу и сжульничать. Выставить физ. телу нафиг - "не крутись!", а потом самостоятельно применять на него крутящие моменты. А силы пускать в центр масс. Разница будет только в том, что итоговая линейная компонента будет немного другой при таком подходе. Что думаете?

 

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



#3 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 10 Июль 2014 - 13:49

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

Не понял, почему центр приложения суммы сил не совпадает с центром масс? С какой это стати этот центр вычисляется из плеча? Крутящий момент должен вычисляться как векторная сумма плеч, каждое из которых:

момент_от_гравика = вектор(положение_гравика - центр_масс) Х вектор(направление_отталкивания*сила_отталкивания)

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

Далее. Линейное движение.

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

Так, не?



#4 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 10 Июль 2014 - 15:32


Не понял, почему центр приложения суммы сил не совпадает с центром масс?

Хммм... И тут я задумался. Сейчас сделал тест, в котором вертикальная сила "хватает" объект за краешек и тянет всегда строго вверх. И действительно, траектория центра масс объекта получается прямая.

 

Значит, остаётся только вопрос баланса: как нам так отмасштабировать силы, чтобы итоговый крутящий момент соответствовал желаемому, и при этом не дать глайдеру упасть...

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

 


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

My yesterday is what you call "tomorrow" :) Это реально, математика там несложная, и это уже работает. Проблемы с сопряжением линейной и угловой компонент. Но, во-первых, ты мне помог кое-что прояснить, а во-вторых, я уже отписал выше, как с этим можно бороться.


, наверное...


#5 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 10 Июль 2014 - 22:24

Ща попробую ещё тебя озадичить. Смотри. У тебя три эффектора антиграва на Ястребе, так? Допустим, Ястреб убалансирован так, что висит на них смирно, не двигается, ни крутится. Значит сумма всех сил, на него действующих равна нулю (включая гравитацию, ясенпень).

Ну так вот вопрос: возможно ли, хотя бы теоретически, заставить глайд двигаться на ровной поверхности вперёд, но без каких-либо наклонов корпуса?

 

Ответ: НЕТ!!!

 

В состоянии покоя горизонтальная сила переднего гравика компенсирует горизонтальные составляющие сил двух задних. Чтобы глайд полетел вперёд, нужно изменить баланс - составлющие сил задних гравиков должны *внезапно* пересилить противодействующую им переднюю упирающуюся "ногу". Но поскольку горизонтальная составляющая силы всегда пропорциональна вертикальной, то поддав газу на задние гравики мы не только двинемся вперёд, мы автоматом и брыкнем жопу вверх - иначе никак. Так что линейное движение даже теоретически невозможно осуществить без нежелательных кренов.

 

Решение предлагаю дать в виде "мёртвой зоны" для болтания корпуса - определённого диапазона углов, на который положению корпуса позволено крениться относительно желаемой ориентации. Как в М2 с курсором было - глайд начинал поворачиваться только если курсор вылетал за пределы ограниченного круга в центре экрана. Углы для бочек задать придётся вручную.

 

 

Значит, остаётся только вопрос баланса: как нам так отмасштабировать силы, чтобы итоговый крутящий момент соответствовал желаемому, и при этом не дать глайдеру упасть... Думается мне, без какой-либо памяти тут не обойтись. Можно попробовать хранить "долг" по силе и по моменту, и в зависимости от того, что превалирует - делать коррекцию тяги либо больше под силу, либо под момент.

Подождь, вот мысль есть. Давай мониторить два опорных вектора - направление взгляда и макушка. Два этих вектора всегда перпендикулярны. Направление взгляда - это луч. Вертя мышкой по экрану мы меняем его направление в пространстве: смещение курсора на х пикселов вправо поворачивает луч взгляда относительно луча макушки на ах градусов вправо, а смещение на у пикселов вверх поворачивает лучи взгляда и макушки вокруг их векторного произведения на ау градусов. После этого луч макушки приводится к вертикали и ортагонируется с лучом взгляда. Таким образом у нас имеются два опорных вектора. СС должна стремиться накренить глайд так, чтобы ось у модели глайда отклонялась не более чем на угол А относительно луча макушки, и ось z не отклонялась более чем на угол А относительно луча взгляда. Векторно перемножив векторы осей с их опорными лучами и просуммировав результат мы получим вектор, являющийся требуемой осью вращения. Его длина будет тем больше, чем выше отклонение осей модели от опорных лучей. Соответственно, если вектор дисбаланса выше определённого порога, СС получает требование создать крутящий момент для корректировки. Т.е. вычисляем нормализованное плечо силы для каждого гравика, умножаем его векторно на вектор требуемого кручения и получаем вектор силы, требуемой от данного гравика для противодействия кренению. Чем выше отклонение, тем больше будет этот вектор, поэтому при суммировании его с вектором требуемой линейной скорости, он будет преобладать при больших углах отклонения. Таким образом и линейную скорость получим, и стабилизацию. Круто?



#6 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 11 Июль 2014 - 00:48

Сначала - важное. Пускай на первых порах будет опенсорц.

https://bitbucket.or...geshtu/scramjet

Имеющие клиент SourceTree могут воспользоваться кнопочкой "Clone in SourceTree".

Версия - примерно та, что была на видео. Сейчас я гоняю стабилизацию в полностью "виртуальном" режиме, заблокировав все степени свободы физ. тела, поэтому не обновляю. Сцена с ДСС - Playground_glider_physics.

 


Ну так вот вопрос: возможно ли, хотя бы теоретически, заставить глайд двигаться на ровной поверхности вперёд, но без каких-либо наклонов корпуса?

Ты бы мне ещё второй закон Ньютона кинулся объяснять, ога.

 


Подождь, вот мысль есть. Давай мониторить два опорных вектора - направление взгляда и макушка.

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

 


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

Не круто. На входе 3 эффектора, есть требование создать линейную компоненту и угловую. И нет НИКАКИХ гарантий, что они требуют изменения в тяге одного из эффекторов (допустим остальные два - константа) в одну и ту же сторону.

 

В общем-то, ничего нового ты мне тут не подкинул. Не переживай, три года опыта написания контроллеров, основанных на физических телах, что-то да значат :) Лучше пока поковыряй юнити мануал и sourcetree, а я постараюсь закончить контроллер глайдера к понедельнику.


, наверное...


#7 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 12 Июль 2014 - 23:34

Накатило, решил разобрать систему просто на атомы :D
Итог: сейчас в режиме стабилизации момента (когда принудительно задаётся нулевой крутящий момент, и никаких внешних факторов) глайдер висит просто мёртво. Выдавая при этом максимальный потенциал по силе антигравов.

 

Следующий шаг: проверить, правильно ли считает калькулятор нужного крутящего момента. Для этого подвешу на глайдер маленький "эффектор-ренегат", который будет крутить его постоянно, вне ведома ДСС. Посмотрим, как она будет справляться с этим)


, наверное...


#8 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 13 Июль 2014 - 00:04

Вылечил калькулятор, теперь ДСС умеет правильно останавливать возникшее "извне" (ну, или в будущем, "изнутри") вращение; Причём, если постепенно "крутить ручку" внешнего крутящего момента, то можно увидеть, как ДСС постепенно "сдаёт" :D
 

Пошёл учить её приводить глайдер в нужную ориентацию.


, наверное...


#9 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 13 Июль 2014 - 04:17


Пошёл учить её приводить глайдер в нужную ориентацию.

Научил.

Марш Ястребов:


, наверное...


#10 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 13 Июль 2014 - 13:19

Taugeshtu, а че с последним то? Или он решил не кончать жизнь самоубийством как остальные? И отказался прыгать с края карты.

Arсhangel, его там разворачивают столкновения с другими :)


, наверное...


#11 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 13 Июль 2014 - 15:38

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



#12 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 14 Июль 2014 - 00:36

Теперь оно более-менее стабильно работает и на сложных случаях. Дальше - лечить детские болячки, затем - вносить учёт сил.


, наверное...


#13 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 16 Июль 2014 - 00:14

Пока одни (Yandersen) теоретизируют, другие (Taugeshtu) - делают:

Прикрутил самую простую версию контроля за направлением полёта глайдера и постоянную силу в направлении "вперёд" :)
Про "болтанку" влево-вправо в курсе, знаю, почему она образуется, имею представление, как её лечить.


, наверное...


#14 OFFLINE   Темплатар

Темплатар
  • Механоид
  • 10 сообщений
  • Настоящее имя:Николай

Отправлено 16 Июль 2014 - 07:52

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


Если долго стоять в одном месте - можно увидеть, как меняется мир. Ты видел то странное существо в секторе Тундры?

#15 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 16 Июль 2014 - 09:59


Насколько сложно будет привинтить антигравам команду отбиваться от воды что бы глайдер не тонул?

На две минуты делов и пять строчек кода.


, наверное...


#16 OFFLINE   GranMinigun

GranMinigun

    Хранитель Форума

  • Админ
  • 170 сообщений
  • Откуда:Верхняя Салда
  • Настоящее имя:Александр

Отправлено 16 Июль 2014 - 13:31

Вода в игровом мире - тоже объект.


Mama Africa

#17 OFFLINE   Yakim (Watcover3396)

Yakim (Watcover3396)
  • Создатель
  • 167 сообщений
  • Откуда:Донецкая Народная Республика
  • Настоящее имя:Дмитрий

Отправлено 16 Июль 2014 - 16:34

GranMinigun, вода в игровом мире просто как плоскость с текстурой.



#18 OFFLINE   GranMinigun

GranMinigun

    Хранитель Форума

  • Админ
  • 170 сообщений
  • Откуда:Верхняя Салда
  • Настоящее имя:Александр

Отправлено 16 Июль 2014 - 19:31

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


Mama Africa

#19 OFFLINE   Yakim (Watcover3396)

Yakim (Watcover3396)
  • Создатель
  • 167 сообщений
  • Откуда:Донецкая Народная Республика
  • Настоящее имя:Дмитрий

Отправлено 17 Июль 2014 - 15:26

Taugeshtu, я слышал ты собирался делать gui для игры, вот https://yadi.sk/d/-ahiyAfxWnLnp мои старые исходники, просто перерисовывал, надеюсь пригодится.



#20 OFFLINE   Taugeshtu

Taugeshtu
  • Создатель
  • 36 сообщений

Отправлено 17 Июль 2014 - 21:30


Taugeshtu, я слышал ты собирался делать gui для игры

И где же ты такое слышал?


надеюсь пригодится.

Очень вряд ли. Лучше в ангар сунь.


, наверное...





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных