Простой симулятор полета

10

В 3D-симуляторе полетов с уровнем реалистичности Crimson Skies (например, уровень аркады, а не реалистичность), как вы определяете движение самолета в каждом такте игровых часов?

(Crimson Skies - это аркадный симулятор полета: http://youtu.be/OWmYt0LZDnU?t=3m )

Я предполагаю, что игра продвигается фиксированными шагами, и каждый шаг каждого движущегося объекта движется по прямой линии с постоянной скоростью от его текущего положения к следующему.

Какие основные параметры вам понадобятся для определения массы, скорости, дроссельной заслонки и т. Д. И как бы вы их совместили?

Будет
источник
Интересный вопрос, но не слишком ли он широк? Я имею в виду, что это как бы требует мельчайших подробностей динамики моделирования самолета. Помимо численного интегрирования моментов и ускорений, есть ли что-то конкретное, на что должен ответить ответ? Лично я предпочел бы избегать крутящих моментов и ускорений для изменения траектории, поскольку с ними сложнее работать и предлагать опыт, который не нравится обычному геймеру (механика игры, использующая инерционные эффекты, трудно подстроить).
Теодрон
Вы должны определить, что на самом деле означает «Реализм уровня Багрового Неба», потому что есть люди (как я), которые не играли в эту игру и теперь не могут дать ответ.
Филипп
3
Разве это не "Как реализовать физику?"
MichaelHouse
1
Из моего ответа здесь я получу тот же совет по этому вопросу: итеративное эмпирическое тестирование. Добавьте несколько тестовых слайдеров в ваш графический интерфейс, которые контролируют различные параметры, которые вы хотите проверить.
MichaelHouse
3
«Физика» + «Симулятор» + «Простой» Выберите любые два. Причина, по которой вы не можете найти простых примеров симулятора полета, заключается в том, что мультипликационный полет обманут и превращается в простой контроллер персонажа, в то время как даже минимальные симуляции копают глубоко в физике и общеизвестно, что их трудно поддерживать стабильно.
Патрик Хьюз

Ответы:

22

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

Первый и второй закон движения Ньютона

  1. Объект движется с постоянной скоростью, если на него не действует сила.
  2. Ускорение тела прямо пропорционально и в том же направлении, что и суммарная сила, действующая на тело, и обратно пропорционально его массе. Таким образом, F = ma, где F - чистая сила, действующая на объект, m - масса объекта, а - ускорение объекта.

Тяга двигателя

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

Сила тяжести

Гравитация постоянно приближает летательный аппарат вниз со скоростью 9,81 м / с². В теории гравитация становится меньше, когда вы поднимаетесь выше, но на высоте, на которой работают обычные самолеты, это можно игнорировать.

Аэродинамическое сопротивление

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

Это может показаться нелогичным, но наличие более сильной константы перетаскивания фактически сделает вашу игру более легкой (более похожей на аркаду), потому что перетаскивание - это сила, которая не дает самолету лететь в направлении, в котором игрок не хочет летать больше (как при полете по кривой). Так что больше сопротивления = медленные и более маневренные самолеты. Вы можете дополнительно улучшить это, увеличивая сопротивление, когда есть разница между направлением курса и направлением движения самолета (это даже нереально - аэродинамический профиль самолета оптимизирован для наименьшего сопротивления воздуха, когда самолет летит прямо ).

Аэродинамический лифт

Это сила, которая фактически заставляет самолет летать. Он генерируется крыльями. Чем больше поверхность крыла, тем больше подъемная сила создается, и самолет ускоряется вверх (относительно крыльев, а не земли. Когда самолет катится вбок, подъемник также ускоряет его вбок). Как и атмосферное сопротивление, подъемная сила зависит от скорости и плотности атмосферы.

Поверхности управления

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

Philipp
источник
1
Маленький: мощность (скорость энергии) увеличивается с кубом скорости. Сила сопротивления пропорциональна квадрату скорости, а сила будет продуктом сопротивления и скорости. Но вы не обсуждаете что-либо еще с точки зрения тарифов на энергию, так что вы, вероятно, хотели в любом случае обратиться к силе сопротивления.
Сет Бэттин
«Его эффективность пропорциональна текущей скорости и плотности атмосферы». Немного неточно, самолет получает больше сопротивления воздуха, когда он меняет направление, потому что он заставляет поток воздуха в другом направлении, поэтому вы должны сбалансировать это с инерцией, о чем я недавно задумался: как вы рассчитываете силу, которая получается плоскость от изменения направления, вы можете упростить механику жидкости, чтобы ответить на это, но я не знаю хорошего ответа. Вы также должны учитывать размер крыльев.
Jokoon
1
@jokoon, вы правы в этом, но учтите, что речь идет о простом аркадном симуляторе полета. Максимальный реализм не требуется и не желаем. Для максимальной реалистичности я бы объединил крутящий момент, подъем и крутящий момент в точном моделировании аэродинамики вокруг 3d-модели самолета, но для большинства игр, которые не пытаются конкурировать с Microsoft Flight с точки зрения реализма, это было бы излишним ,
Филипп
Однажды я пошел на авиашоу, когда вы видите, как истребитель делает поворот, вы наблюдаете и ощущаете вес самолета, толкающего воздух под ним, будто он дрейфует, но летит одновременно. Мне все еще интересно, появится ли лифт, о котором вы говорили, без подробностей, о которых я говорил. Я думаю, да, я прав? Это только изменило бы вектор подъема, заставив самолет как-то дрейфовать.
Jokoon
1
@OndrejPetrzilka Вы знаете, как самолеты кренится, когда они поворачиваются? Это заставляет вектор подъема указывать на середину поворота.
user253751