This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Fracture Body

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

Slice Pieces

Тела трещин разбиты на куски
Примечание
Fracture body может быть назначен только объектам Mesh Dynamic и может использоваться только для выпуклых сеток.

Смотрите также#

Физическое приближение#

Fracture body (а также все части, на которые он распадается) на самом деле является Rigid body, который движется в соответствии с динамика твердого тела . Следовательно, он имеет следующие свойства:

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

Ошибка аппроксимации формы#

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

  • По значению 0 форма точно дублирует сетку; весь его объем прилагается.
  • Чем выше значение, тем меньше вершин в созданной форме, но больше деталей пропускается, и форма может не покрывать весь объем сетки. Максимальное значение - 1.
Примечание
Автоматически сгенерированная форма Fracture body не отображается в списке Shapes на вкладке Physics окна Parameters. Вы не можете удалить его или назначить любую другую форму для Fracture body.

ГРП#

Существует три модели трещинообразования:

Эти модели определяют пути разрушения, которые имеют отношение к различным механическим свойствам материалов (например, их вязкости и пористости). Шаблоны трещин доступны для выбора на уровне скрипта.

Нарезка#

Нарезка - это узор излома, разделяющий объем сетки на две части плоскостью. Самолет проходит через заданную точку тела. Угол нарезки определяется заданной нормалью.

Slice Pieces

Разрушение тела на две части

Чтобы нарезать Fracture body, используйте метод createSlicePieces().

Растрескивание#

Растрескивание - это структура разрушения, при которой образуются радиальные трещины от точки столкновения. Все части трещин немного различаются по размеру для обеспечения визуального реализма. Кроме того, сетку можно дополнительно разломать по концентрическим кольцам, имитируя распространение импульса. Чем тоньше и хрупче материал (например, стекло), тем больше колец образуется в результате разрушения. Указанное расстояние между кольцами также варьируется случайным образом, чтобы обеспечить убедительный результат.

Crack Pieces

Создание участков трещин с разным количеством радиальных трещин и концентрических колец.

Чтобы взломать Fracture body, используйте метод createCrackPieces().

Сокрушительный#

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

Shatter Pieces

Создание разного количества осколков

Чтобы разбить Fracture body, используйте метод createShatterPieces().

Порог громкости#

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

  • При минимальном значении 0 моделируются все куски вплоть до самого маленького, созданные в результате гидроразрыва.
  • При более высоких значениях генерируются только достаточно большие куски. Если ни одна из частей не имеет достаточного объема, тело остается целым.

Сломанное тело#

После того, как тело было сломано, оно получает флаг Broken. Снятие этого флажка возвращает сломанную сетку в неразрывное состояние. Сломанное тело остается представленным в виде одного узла в Иерархия UnigineEditor . Сгенерированные части с трещинами автоматически представляются как тела Fracture и наследуют физические параметры тела с трещинами (например, демпфирование линейных и угловых скоростей, трение , реституция и маски).

Примечание
Расколотыми частями нельзя манипулировать с помощью UnigineEditor!

Материал поверхности разрушения#

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

Свойство поверхности разрушения#

Также можно назначить новое свойство для всех поверхностей излома. Они определяют игровое поведение и дополнительные физические свойства, однако параметры тела их отменяют.

Физика Перекрестки#

Физические пересечения можно использовать как быстрый способ проверить, не попал ли в разрушаемый объект снаряд. Вы можете использовать Physics Intersection Mask, чтобы включить выборочное обнаружение пересечения для тела (например, чтобы сделать его уязвимым для определенных снарядов). Пересечения физики обнаруживаются только для сопоставления битовые маски .

Советы по оптимизации производительности#

Хотя Fracture body является относительно недорогим типом, в случае большого количества частей трещины влияние на производительность может стать значительным. Чтобы избежать падения производительности, можно воспользоваться следующими советами:

  • Использовать порог громкости параметр для уменьшения количества фрагментов излома.
  • Уберите части сломанного тела со сцены.

Пример на основе кода, иллюстрирующий, как удалить (исчезнуть со временем) фрагменты трещины со сцены, можно найти в разделе Physics файла Примеры UnigineScript .

Назначение тела перелома#

Чтобы присвоить объекту Fracture body через UnigineEditor выполните следующие действия:

  1. Откройте окно World Hierarchy.
  2. Выберите объект Mesh Ddynamic, которому нужно присвоить Fracture body.
  3. Перейдите на вкладку Physics в окне Parameters и назначьте физический тело к выбранному объекту, выбрав Body -> Fracture.

    Adding a body

  4. Задайте название тела и при необходимости измените другие параметры.
Последнее обновление: 10.03.2022
Build: ()