Обзор физики сетки

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

Моделирование распределенной физики

Снимок экрана с распределенными физическими объектами.

Физика сетки синхронизирует позиции жестких тел и должна работать вне коробки, предполагая, что все клиенты используют одну и ту же сцену. Большинство функций Unity физики (например, жесткие тела, коллидеры, материалы и ограничения) будут синхронизированы без дополнительных усилий разработчика:

Примечания:

  • Синхронизация только жестких позиций и ориентаций с интерполяцией
  • Дискретные изменения состояния (например, ограничения, допускающие разрыв) и события триггера должны быть избегать

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

Сетка физики предлагает взаимодействие и дополнительные функциональные возможности, связанные с физикой, такие как:

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

Ниже приведены дополнительные возможности, которые можно сделать с помощью функций физики сетки:

  • Разрешить участникам захватывать и переносить объекты.

  • Управление тем, как гравитация влияет на объекты.

    Снимок экрана игры, которая использует гравитацию.

  • Сделайте объект "липким", он придерживаться того, что он ударяется. Примеры: бросание дарт на доске dart, присоединение рисунка к стене.

    Снимок экрана картин, прикрепленных к стене.

  • Добавьте анимации автоматического воспроизведения, взаимодействующие с физическими телами.

    Снимок экрана триггера анимации.

  • Разрешить участникам сбрасывать объекты (например, сбрасывать шахматную доску или очищать комнату после того, как объекты были разбросаны).

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

  • События пожара при входе объекта в коллайдер триггера.

    Снимок экрана тома триггера.

  • Создайте поле хранения. Объекты останутся в пределах поля.

    Снимок экрана с полем хранения.

  • Управление скоростью объекта.

  • Управление плавучестью объектов, например, сделать лодки и другие морские объекты "float".

    Снимок экрана лодки, плавающей на воде.

  • Управление угловой скоростью объекта.

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

  • Создайте объекты bouncy, которые отскочили друг от друга с предопределенной скоростью.

    Снимок экрана многочисленных шаров в середине отскоки.

  • Телепорт объекта в новое положение и (необязательно) новый поворот.

    Снимок экрана с двумя частью начальной и конечной точек процесса телепортации.

Терминология

В статьях по физике сетки "тело" используется в качестве сокращенного для "Жесткого тела".

Следующие шаги