1. Уважаемые игроки, для общения работает сервер Teamspeak 3 по адресу ts3.ps2-ru.com - канал H1Z1, заходите, задавайте вопросы, давайте играть вместе . Присоединяйтесь к нашей группе в Steam (нажмите для перехода )

Блог разработчика: Падаем со стилем

Тема в разделе "Новости игры", создана пользователем Vpolne, 15 янв 2015.

  • Блог разработчика: Падаем со стилем

    Vpolne 0 1.436
  • Vpolne Модератор

    Vpolne
    Сообщения:
    271
    Симпатии:
    201
    Привет, меня зовут Дэйв Эврам. Я работаю на Sony online в течение 9 лет и занимаюсь разработкой инструментов, позволяющих делать запуск игр настолько гладким, насколько это только возможно. В команде H1Z1 я занимаюсь множеством вещей, от разработки инструментария для дизайнеров до размещения объектов в мире или написания кода оружия и отслеживания того, чтобы колеса не отпали от вашей машины во время езды.
    [​IMG]
    Недавно меня попросили помочь с разработкой фичи для одного из грядущих игровых режимов. В этом Режиме игроки начинают игру с прыжка из самолета с парашутом и они могут в определенной степени управлять движением парашута.

    К сожалению единственная техника, имеющая хоть сколько-то похожий способ перемещения и код это дроппод из игры Planetside 2 - на его основе нам пришлось создать принципиально новую систему передвижения.
    [​IMG]
    Чтобы сделать это нам надо было прицепить игрока к какой-нибудь технике. Ну а поскольку художники все еще работают над моделью парашута, то я решил использовать старую добрую модель внедорожника. Задача состоит в том, чтобы заставить парашут работать как средство передвижения, которым можно управлять, которое будет зависить от динамических эффектов и позволит удобно "прицепить" модель игрока.

    Первым делом надо было разобраться как сделать падение с парашутом; дроппод работает просто: он ускоряется до максимальной скорости, а затем использует "гаситель" чтобы не превышать ее. Сам "гаситель"" тоже работает по простому принципу: он тянет объект вдоль заданной локальной оси, в данном случае вертикальной оси Y. Это позволяет объекту двигаться вперед или назад при соответствующих наклонах и останавливать вертикальное ускорение.
    [​IMG]
    Зеленая линия - вертикальная ось Y. Трехцветная ось в нижнем левом углу - ось мира, а такая же во внедорожнике - ось, отражающая относительное движение объекта в мире, локальная ось. В нашем случае мы хотим отказаться от использования локальной оси. Парашут должен изменять скорость только относительно глобальной вертикальной оси, сохраняя скорость относительно осей X и Z. Чтобы воссоздать такое движение я задал простенькое правило: если я падаю быстрее определенной скорости (10 м\с или около того), то в противоположном движению направлении (обычно - вверх) прикладывается линейная сила. В результате ускорение будет изменяться плавно при приближении скорости падения к предельной,а по достижению ее - скорость будет поддерживаться.

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

    Та как у нас нет двигателя, толкающего вас вперед, а все движение происходит под действием гравитации и с помощью прикладывания вертикальной силы, симулирующей сопротивление парашута, у нас появляется прекрасная физическая возможность - мы можем симулировать линейное ускорение, основанное на угле тангажа и сохранять это ускорение относительно направления падения.Так как скорость относительно X у нас сохраняется, то с помощью тангажа мы можем ускориться в направлении падения и использовать это ускорение для движения параллельно земле.

    В таком подходе есть одна проблема - ничто не мешает вам направить парашут в землю и получить таким образом огромную горизонтальную скорость, при том что вертикальная скорость остается неизменна. Для ее решения я изменил заданные ранее правила таким образом, чтобы дизайнеры могли устанавливать максимальную предельную скорость и ввел следующую формулу, задающую максимальную скорость падения в любой момент:
    V=(Максимальная предельная скорость-Минимальная предельная скорость)*(Текущий наклон\90)

    Таким образом сила подъема становится пропорциональна углу тангажа (0 - параллельно земле, -90 - полный наклон вверх, 90 - полный наклон вниз). Это симулируется возможностью иметь большую скорость при большем угле наклона и меньшую при меньшем угле. А еще это значит, что если вы зададите слишком большой угол при маленькой скорости, то начнете двигаться назад!

    Благодарю за прочтение этого поста и надеюсь вскорости увидеть вас падающими с небес.
    Оригинал
     
    S-Sun, DarkDimazzz, Ange1 и ещё 1-му нравится это.
     

Комментарии

Тема в разделе "Новости игры", создана пользователем Vpolne, 15 янв 2015.

Поделиться этой страницей