Обзор физики сетки
В интерфейсе сетки моделирование физики является ключом к включению динамического содержимого. Чтобы предоставить участникам Сетки высококачественный общий опыт физики и предложить разработчикам продуктивный рабочий процесс при создании пользовательского содержимого, мы создали систему физики сетки. Физики сетки основаны на локальном авторитетном имитации, что приводит к очень простой архитектуре. Логика на стороне сервера и специальная логика на клиентах не требуется. Самое главное, этот подход приводит к очень быстрой и низкой задержке для каждого игрока, взаимодействующего с их средой, даже при подключении к сети с высокой задержкой.
Моделирование распределенной физики
Физика сетки синхронизирует позиции жестких тел и должна работать вне коробки, предполагая, что все клиенты используют одну и ту же сцену. Большинство функций Unity физики (например, жесткие тела, коллидеры, материалы и ограничения) будут синхронизированы без дополнительных усилий разработчика:
Примечания:
- Синхронизация только жестких позиций и ориентаций с интерполяцией
- Дискретные изменения состояния (например, ограничения, допускающие разрыв) и события триггера должны быть избегать
Каждый клиент отвечает за имитацию некоторых тел, называемых владельцем распределенного моделирования. Когда игрок касается жесткого тела, владение имитацией немедленно передается, чтобы разрешить взаимодействие с низкой задержкой. Для соседних тел подсистема синхронизации физики выполняет локальное прогнозирование, интерполяцию и автоматическое распространение владения, чтобы свести к минимуму визуальные артефакты.
Сетка физики предлагает взаимодействие и дополнительные функциональные возможности, связанные с физикой, такие как:
- различные поля для физического влияния на тела внутри (плавучесть, гравитация)
- различные компоненты для изменения поведения отдельных тел (магнитные, липкие, бросаемые)
- возможность сброса тел на свои позиции запуска (выборочная очистка сцены)
- Поддержка эмуляции сетки в режиме воспроизведения для многопользовательского тестирования описанных выше функций
Ниже приведены дополнительные возможности, которые можно сделать с помощью функций физики сетки:
Разрешить участникам захватывать и переносить объекты.
Управление тем, как гравитация влияет на объекты.
Сделайте объект "липким", он придерживаться того, что он ударяется. Примеры: бросание дарт на доске dart, присоединение рисунка к стене.
Добавьте анимации автоматического воспроизведения, взаимодействующие с физическими телами.
Разрешить участникам сбрасывать объекты (например, сбрасывать шахматную доску или очищать комнату после того, как объекты были разбросаны).
События пожара при входе объекта в коллайдер триггера.
Создайте поле хранения. Объекты останутся в пределах поля.
Управление скоростью объекта.
Управление плавучестью объектов, например, сделать лодки и другие морские объекты "float".
Управление угловой скоростью объекта.
Создайте взрыв, что приводит к тому, что близлежащие объекты перемещаются в сторону или в определенном направлении.
Создайте объекты bouncy, которые отскочили друг от друга с предопределенной скоростью.
Телепорт объекта в новое положение и (необязательно) новый поворот.
Терминология
В статьях по физике сетки "тело" используется в качестве сокращенного для "Жесткого тела".