Skip to content
E
Egmatic
redaktor-fiziki2d-fizikafizika-v-realnom-vremeninastrojka-fizikibox2d2d-igry

Редактор физики в реальном времени: меняем параметры

Редактор физики в реальном времени показывает изменения сразу, без пересборки. Упругость, массу и трение настраивают на глаз, а не вычисляют заранее.

Vladislav Kovnerov17 июня 2026 г.11 мин

Редактор физики в реальном времени показывает результат изменения в ту же секунду, как вы его внесли. Подправили контур столкновения, усилили гравитацию или убавили трение — и запущенная симуляция тут же реагирует: без пересборки и перезапуска.

Эта мгновенность важнее, чем кажется. Физика настраивается на ощущение. Правильная упругость мяча, правильное трение платформы, правильная масса ящика, который должен казаться тяжёлым, когда игрок его толкает, — ничего из этого не выводится по формуле. Эти значения находят, наблюдая за движением объектов и понемногу сдвигая числа, пока движение не начнёт выглядеть правильным. Инструмент, позволяющий сдвинуть и тут же увидеть результат, превращает часы проб и ошибок в минуты.

В этом материале — что такое редактирование физики в реальном времени, как с этим справляются основные 2D-движки, какие параметры вы настраиваете на самом деле и из-за каких ошибок 2D-физика ощущается «неправильно».

Если вы только начинаете делать 2D-игры, начните с руководства как создать 2D-игру без программирования. Более широкая картина инструментов — в обзоре лучших 2D-движков для игр.

Что такое «редактирование физики в реальном времени»

Многие 2D-игры считают физику через Box2D — бесплатный открытый 2D-физический движок, созданный Эрином Катто и впервые показанный на Game Developers Conference. На нём работают такие хиты, как Angry Birds и Crayon Physics, и он обеспечивает 2D-физику в Unity, Cocos, Phaser и множестве других движков и фреймворков. Когда вы «редактируете физику», чаще всего вы настраиваете именно те тела, которые симулирует Box2D.

«В реальном времени» означает, что редактор и симуляция делят один экран. Вы меняете значение — и объект, уже находящийся на сцене, тут же откликается: падает быстрее, отскакивает выше или скользит иначе, — и всё это без выхода из редактора. Альтернатива, привычная для старых или более тяжеловесных процессов, — цикл «изменил → собрал → запустил → посмотрел → повторил»: поменяли число, ждёте пересборки или перезапуска, смотрите результат, возвращаетесь и меняете снова. Для значения, которое вы можете подкручивать пятьдесят раз, такой цикл изматывает.

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

Объекты, которые вы настраиваете

Если снять жаргон, 2D-физика сводится к нескольким строительным блокам. Большая часть «ощущения» игры кроется в том, как они настроены.

ОбъектЧто этоЧем управляет
Твёрдое телоОбъект, которым управляет физический движокМассой, скоростью, реакцией на силы и столкновения
Контур столкновенияНевидимая геометрия, которая соприкасается с другими объектамиТем, где происходит контакт; простые формы быстрее и стабильнее
Связь (шарнир, пружина)Соединение между двумя теламиПетлями, верёвками, пружинами, дверями
Физический материалСвойства поверхности, применённые к контуруТрением и упругостью (отскоком)

Свойства, которые подкручивают чаще всего:

СвойствоНа что похожеТипичный диапазон и эффект
Масса / плотностьТяжестьТяжёлые тела при ударе расталкивают лёгкие
ТрениеСцеплениеВысокое — цепкий пол; почти ноль — лёд
Упругость (отскок)Пружинистость0 — падает как вкопанное; 1 — отскакивает на ту же высоту
ГравитацияВес мираНиже — невесомость, как на Луне; выше — тяжело и быстро падает
ЗатуханиеСопротивление воздухаВыше — объекты быстрее останавливаются и перестают вращаться

Универсально верных значений для этих параметров не существует. Платформеру нужно цепкое трение и низкий отскок; аркадному пинболу нужно противоположное. Вы решаете на ощущение — и решаете быстрее, когда сразу видите результат.

Как 2D-движки справляются с редактированием физики на лету

Движки различаются не столько тем, какую физику они считают, сколько тем, как быстро вы видите изменение.

ДвижокКак настраиваютВиден ли результат на лету?
UnityЗначения Rigidbody и Collider правят в инспекторе во время режима проигрыванияДа — но изменения сбрасываются при остановке
GodotПараметры настраивают, затем запускают сцену в отдельном окнеЧастично — дерево «Remote» позволяет в основном осматривать запущенную сцену, а не свободно её редактировать
Construct 3Физику задают на объектах, предпросмотр — одним кликомБыстрый перепросмотр; редактирование запущенного предпросмотра ограничено
GDevelopНастраивают поведение физики, мгновенный предпросмотрБыстрый перепросмотр; параметры задают до запуска предпросмотра
EgmaticКонтуры столкновения и физические материалы настраивают прямо в редактореДа — результат обновляется в реальном времени, без шага пересборки

Бросаются в глаза два практических момента. В Unity режим проигрывания работает как песочница: это самый быстрый способ найти нужные значения, но всё, что вы измените, исчезает в момент остановки, поэтому числа приходится записывать и заново вводить в режиме редактирования. В Godot запущенная игра живёт в отдельном окне, и связь редактора с ней в значительной мере односторонняя — редактирование запущенной физической сцены на лету настолько ограничено, что запрос на эту функцию до сих пор открыт.

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

Рабочий процесс настройки физики на лету

  1. Начните с правильного масштаба. Задайте единицы до того, как крутить значения (почему — ниже). Помогает ориентир в один метр.
  2. Сначала доведите один объект. Возьмите одно представительное тело — игрока, мяч — и настройте его массу, гравитацию и затухание, пока его падение и приземление не будут ощущаться верно.
  3. Затем — поверхности. Когда тело ощущается правильно, подстройте трение и упругость пола и стен.
  4. Взаимодействия — в последнюю очередь. Только когда тело и его поверхности ощущаются хорошо, добавляйте столкновения между несколькими телами, связи и стопки объектов.
  5. Настраивайте на реальной скорости. Не поддавайтесь искушению делать всю настройку в замедлении. Замедление прячет проблемы, которые проявляются только на той скорости, на которой реально играет игрок.

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

Частые ошибки, из-за которых физика ощущается неправильной

ОшибкаЧто происходитКак исправить
Пиксели вместо метровОбъекты оказываются огромными; гравитация действует слабо; всё медленное и ватноеПереводите пиксели в метры через масштабный коэффициент и держите движущиеся объекты примерно в 0,1–10 м
Настройка только в замедленииПроблемы, видные на реальной скорости, остаются скрытымиФинальную настройку делайте на той скорости, на которой играет игрок
Правка значений в песочнице, которую нельзя сохранитьХорошие значения теряются при остановке (режим проигрывания Unity)Запишите значения, остановитесь и перенесите их в режим редактирования — либо используйте инструмент, настраивающий физику прямо в режиме редактирования
Слишком много или слишком сложные контуры столкновенияДрожание, проскакивание сквозь объекты и падения кадровИспользуйте простейшие подходящие формы; где можно, объединяйте мелкие формы в одну
Привязка физики к частоте кадровПоведение меняется вместе с производительностьюДержите физику на фиксированном шаге, независимом от кадров

Ошибку с масштабом стоит выделить, потому что это самая частая причина, по которой физика 2D-игры «ощущается не так». Box2D настроен на метры, и его документация прямо говорит: лучше всего он работает с движущимися фигурами размером примерно от 0,1 до 10 метров — «от банки супа до автобуса» — и использовать пиксели в качестве единиц не следует. Ящик шириной в 100 пикселей, поданный напрямую, превращается в стометровый объект. Гравитация, рассчитанная на метры, его едва сдвигает, и весь мир становится вялым и невесомым. Масштабный коэффициент (например, 1 метр = 32 или 100 пикселей) между экранными координатами и физическим миром устраняет это в корне.

Фиксированный шаг — второй тихий убийца. Физика просчитывается фиксированными шагами — по умолчанию в Unity это 50 шагов в секунду, — и именно для того, чтобы симуляция оставалась стабильной и одинаковой вне зависимости от частоты кадров. Если двигать физику в покадровом обновлении, игра будет вести себя по-разному на экране 60 Гц и на 144 Гц. Держите физику в фиксированном обновлении.

Заключение

Редактирование физики в реальном времени — не роскошь. Это разница между настройкой на ощущение — единственным надёжным способом задать упругость, трение и гравитацию — и настройкой через медленный цикл пересборок. Движок, который показывает результат в ту секунду, когда вы меняете значение, позволяет перепробовать десятки вариантов там, где более медленный дал бы попробовать два.

Выбирая 2D-движок, спросите, как в нём устроен цикл настройки физики. Позволяет ли он редактировать контуры и материалы и тут же видеть ответ симуляции, без пересборки? Сохраняет ли он изменения или выбрасывает их при остановке? Работает ли он в адекватных единицах? Инструмент, который правильно отвечает на эти вопросы, держит физический цикл таким же быстрым, как и остальные итерации, — а именно от этой скорости в итоге и зависит, появится ли у игры то самое ощущение.

О том, как это вписывается в более широкий 2D-процесс, читайте в обзорах редакторов сцен, ускоряющих разработку и конструкторов игр с перетаскиванием.


Источники

  1. Box2D: открытый 2D-физический движок (Эрин Катто, лицензия MIT, показан на GDC; используется в Angry Birds и Crayon Physics) — Box2D.org и Википедия: Box2D
  2. Box2D настроен на метры, движущиеся фигуры лучше держать примерно от 0,1 до 10 метров; не используйте пиксели как единицы — документация Box2D и FAQ по Box2D
  3. Возможности Box2D: непрерывное обнаружение столкновений, многопоточность и SIMD-оптимизация — Box2D на GitHub
  4. Unity считает физику фиксированным шагом (Fixed Timestep, по умолчанию 0,02 с), а правки в режиме проигрывания сбрасываются при остановке — Руководство Unity: Time и Fixed Timestep
  5. Компоненты Rigidbody и Collider для 2D-физики в Unity — Руководство Unity: Rigidbody
  6. Godot запускает игру в отдельном процессе; встраивание редактирования запущенной сцены — открытый запрос — Godot Proposal #9142
  7. Быстрый цикл предпросмотра и скорость итераций в 2D-разработке — наш материал про предпросмотр игры

Похожие статьи