This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
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
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

World Spline Graph

Внимание
Эта функция является экспериментальной и не рекомендуется для промышленного использования.

World Spline Graph - это удобный и эффективный метод размещения указанных нод (называемых исходными нодами ) вдоль сплайн-графа (его вершин и ребер). Это не одноцелевой объект, предназначенный только для создания дорог. Его также можно использовать для веревок, цепей, труб и любых объектов, имеющих форму, повторяющую изогнутую траекторию. Он разработан, чтобы помочь художникам быстро создавать различные сложные конструкции из типичных базовых элементов, расположенных вдоль пространственных кривых, таких как, например, трубы на нефтеперерабатывающем заводе.

Варианты применения World Spline Graph
Примечание
Использование World Spline Graph подразумевает размещение и деформацию объекта и последующий экспорт в файлы .mesh и .fbx.

Сплайн-граф определяется набором точек p0, p1, ... pn и набором ребер или сегментов (кубические сплайны Безье), которые соединяют некоторые или все эти точки.

Каждый сегмент определяется начальной (pSTART) и конечной (pEND) точкой, а также координатами касательного вектора в этих точках, которые определяют кривизну сегмента (tSTART и tEND соответственно). Точки, которые используются более чем двумя сегментами, называются перекрестки .

Базовые ноды (в настоящее время Static Mesh, Skinned Mesh и Projected Decal) могут быть размещены в точках и вдоль сегментов сплайн-графа. Каждой точке и сегменту может быть назначен одна базовая нода или набор таковых. Для каждой отдельной базовой ноды, назначенного сегменту, можно выбрать один из следующих режимов:

  • stretching - базовые ноды растянуты по отрезку сплайна.
    Примечание
    Режим Stretching доступен только для статических сеток.
  • tiling - базовые ноды дублируются вдоль сегмента сплайна.
  • adaptive (комбинация первых двух) - исходные узлы дублируются вдоль сегмента сплайна, но длина каждой ноды (растяжения) определяется кривизной соответствующей части сегмента. Таким образом, длинные ноды размещаются вдоль прямых частей сегментов, а короткие - вдоль изогнутых частей, обеспечивая разумный баланс между правдоподобным видом и производительностью.

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

Примечание
Базовые ноды, которые должны быть назначены сегментам и точкам, хранятся в файлах *.node. Файл *.node должен содержать Static Mesh, Skinned Mesh или Projected Decal в качестве корневой ноды.

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

Координаты вектора UP дополнительно сохраняются для каждой точки сегмента. Этот вектор используется для определения ориентации нод, расположенных вдоль сегментов сплайн-графа. По умолчанию этот вектор параллелен оси Z. Вектор ВВЕРХ не влияет на кривизну самого сегмента сплайна.

Регулировка вектора ВВЕРХ.

SDK включает надстройку Road Tool Constructor с набором готовых к использованию ресурсов (участки дорог и различные типы перекрестков), которые можно использовать в качестве строительных элементов для упрощения создания дорог.

Примечание
В настоящее время WorldSplineGraph имеет следующие ограничения:

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

  • Статья о классе WorldSplineGraph, чтобы узнать, как управлять мировыми сплайн-графами через API
  • Статья о классе SplinePoint, чтобы узнать, как управлять точками сплайнового графа через API.
  • Статья о классе SplineSegment, чтобы узнать, как управлять сегментами сплайн-графа через API
  • Пример C ++ для класса WorldSplineGraph, показывающий, как управлять сплайн-графами и генерировать геометрию по сегментам графа: source / samples / Api / Nodes / WorldSplineGraph
  • Сэмплы, иллюстрирующие варианты использования WorldSplineGraph, входящие в пакет Samples:
    • world_spline_graph/roads - дороги, созданные на поверхности местности
    • world_spline_graph/ropes - канаты, цепи и тросы

Создание World Spline Graph#

Чтобы создать новый World Spline Graph, сделайте следующее:

  1. Добавить ноду World Spline Graph: в Меню , выберите Create -> Spline Graph.

  2. Укажите имя существующего файла сплайна (*.spl), которое будет использоваться для нового World Spline Graph или новое имя, чтобы создать сплайн с нуля.

    Примечание
    Помните, что файлы *.world хранят только данные ноды WorldSplineGraph(преобразование, список базовых нод и т.д.), В то время как сами сплайн-графы хранятся в отдельных файлах *.spl. Чтобы сохранить созданный вами в мире сплайн-граф, щелкните Save Spline на вкладке Parametersи укажите для него имя файла.
  3. Отредактируйте сплайн-граф, управляя его точки а также сегменты .
  4. Назначать требуемые базовые ноды к точкам и сегментам сплайн-графа.

Управляющие точки#

Добавление новой точки#

Новые точки добавляются к сплайновому графу путем клонирования существующих. Чтобы добавить новую точку, сделайте следующее:

  1. Выберите файл World Spline Graph.
  2. Выберите желаемую точку, которую хотите клонировать (появится манипулятор Move).
  3. Нажмите Ctrl + D на клавиатуре (будет создана новая точка).
  4. Используйте манипулятор Move, чтобы расположить новую созданную точку.

Регулировка положения точки#

Чтобы настроить положение точки, выполните следующие действия:

  1. Выберите файл World Spline Graph.
  2. Выберите нужную точку (появится манипулятор Move).
  3. Используйте манипулятор перемещения, как если бы вы перемещали ноду.

Вы также можете настроить положение выбранной точки через раздел Spline Points вкладки Parameters:

Регулировка касательной точки#

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

  1. Выберите файл World Spline Graph.
  2. Выберите нужную точку (появится манипулятор Move).
  3. Выберите желаемую касательную (если выбранная точка является общей для нескольких сегментов, для нее будет отображаться несколько касательных). Когда вы выбираете касательную, рядом с ней появляется манипулятор перемещения.
  4. Используйте манипулятор Move, как если бы вы перемещали ноду (форма соответствующего сегмента изменится).

Регулировка вектора UP точки#

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

  1. Выберите файл World Spline Graph.
  2. Выберите нужную точку (появится манипулятор Move).
  3. Выберите желаемый вектор ВВЕРХ (если выбранная точка является общей для нескольких сегментов, для нее будет отображаться несколько векторов ВВЕРХ).
  4. Переключитесь на манипулятор поворота и используйте его для регулировки желаемого угла, как если бы вы вращали ноду (ориентация нод, размещенных вдоль соответствующего сегмента, изменится).
    Примечание
    Вы сможете увидеть эффект только тогда, когда нода будет назначен соответствующему сегменту.
  5. Используйте манипулятор Move, как если бы вы перемещали ноду (форма соответствующего сегмента изменится).

Слияние точек#

Иногда может потребоваться объединить определенные точки (например, чтобы замкнуть сплайн). Чтобы объединить две или более точек в одну, выполните следующие действия:

  1. Выберите файл World Spline Graph.
  2. Выберите точки, которые вы хотите объединить, с помощью инструмента выделения области или по одной, удерживая нажатой клавишу Shift.
  3. Щелкните правой кнопкой мыши точку, в которую вы хотите объединить выбранные, и выберите Merge To This Point.
  4. Все точки будут объединены в одну общую для сегментов, которым принадлежали объединенные точки.

Удаление точки#

Чтобы удалить точку (точки) сплайн-графика, выполните следующие действия:

  1. Выберите файл World Spline Graph.
  2. Выберите точки, которые вы хотите удалить, с помощью инструмента выделения области или одну за другой, удерживая нажатой клавишу Shift.
  3. Нажмите клавишу Del .
Примечание
Удаление точек автоматически удалит все сегменты, которым эти точки принадлежат.

Управление сегментами#

Добавление нового сегмента#

Чтобы добавить новый сегмент к сплайновому графику, выполните следующие действия:

  1. Выберите файл World Spline Graph.
  2. Выберите начальную точку для добавления нового сегмента (появится манипулятор перемещения).
  3. Нажмите и удерживайтеShiftи используйте манипулятор Move, чтобы расположить конечную точку нового сегмента.
    Примечание
    • Чтобы создать прямой сегмент, вы должны перетащить манипулятор в направлении касательной в начальной точке.
    • Новый добавленный сегмент использует все настройки (назначенные нодв, режимы размещения и параметры) предыдущего.

Вы также можете клонировать сегменты, выделив их и переместив с нажатой клавишей Shift, или нажав Ctrl + D и поместив клон с помощью манипулятора Move.

Удаление сегмента#

Чтобы удалить сегмент (-ы) сплайн-графика, выполните следующие действия:

  1. Выберите файл World Spline Graph.
  2. Выделите сегменты, которые вы хотите удалить, с помощью инструмента выделения области или по одному, удерживая нажатой клавишу Shift.
  3. Нажмите клавишу Del .
Примечание
Если вы удалите сегмент, который входит в стык, последний перестанет нормально функционировать.

Управление исходными нодами#

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

Работа с сегментами#

Чтобы назначить базовую ноду выбранным сегментам, выполните следующие действия:

  • Выберите желаемые сегменты.
  • Щелкните Add Node на вкладке Parameters.
  • В открывшемся окне выберите нужную ноду и нажмите OK.
    Примечание
    Базовые ноды, которые должны быть назначены сегментам и точкам, хранятся в файлах *.node. Файл ноды должен содержать Static Mesh, Skinned Mesh или Projected Decal в качестве корневой ноды.

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

Node Путь к файлу *.node, содержащему базовую ноду.
Forward Axis Определяет, какая ось базовой ноды должна быть ориентирована вдоль сплайна.
Placement Mode Тип создаваемых объектов. Одно из следующих:
  • Stretch - один экземпляр базовой ноды растягивается вдоль сегмента.
    Примечание
    Этот режим наиболее эффективен.
  • Tiling - несколько экземпляров базовой ноды размещаются вдоль сегмента. Количество экземпляров определяется размерами сегмента и базовой ноды, а также значением параметра Gap.
  • Adaptive - комбинация двух предыдущих, приводящая к размещению нескольких экземпляров базовой ноды вдоль сегмента. Некоторые из этих экземпляров могут быть растянуты в зависимости от кривизны сегмента.
Adaptive Threshold Определяет, насколько можно растянуть экземпляр базовой ноды в режиме размещения Adaptive, чтобы покрыть всю длину сегмента.
Примечание
Доступно только для режима размещения Adaptive.
UV Tiling Включает мозаику текстур базовой ноды.
Gap Определяет зазор (в единицах) между соседними экземплярами на базовой ноде для режима размещения Tiling.
Примечание
Доступно только для режима размещения Tiling.

Работа с точками#

Чтобы назначить базовую ноду выбранной точке (точкам), выполните следующие действия:

  • Выберите желаемую точку (точки).
  • Щелкните Add Node на вкладке Parameters.
  • В открывшемся окне выберите нужную ноду и нажмите OK.
    Примечание
    Что касается перекрестков, то для правильного поведения точке должен быть назначена нода ObjectMeshSkinned, а количество ее костей должно соответствовать количеству сегментов сплайна, подключенных к этой точке.

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

Node Путь к файлу *.node, содержащему базовую ноду.
Variant Есть несколько возможных вариантов для перекрестка . Этот ползунок позволяет выбрать наиболее подходящий.
Примечание
Этот параметр влияет только на базовые ноды, представляющие соединения (ObjectMeshSkinned).

Перекрестки#

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

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

  • Соединения соединения в UnigineEditor должны иметь оси Y, ориентированные от центра соединения к краям соответствующих ответвлений.
  • Внешний стык каждого ответвления должен быть размещен точно в центре его внешнего края, веса для внешних вершин ответвления должны быть максимальными для внешнего стыка (т. Е. На внешние вершины ответвления влияет только внешний стык).
  • Поскольку соединение и сегмент представлены отдельными сетками, текстуры и их карты UVдолжны обеспечивать плавные переходы между сегментами и сегментами.
  • Сегмент может иметь соединения на обоих концах, поэтому текстура, используемая для сегмента, должна быть симметричной, по крайней мере, ее края.
  • Особые требования к дорогам:
    • Перекресток, а также участок дороги должны быть представлены парой сеток (насыпь и сама дорога). Сетка насыпи используется для плавного перехода с поверхностью ландшафта. Просто включите состояние Terrain Lerpдля материала, назначенного насыпи.
    • Для обеспечения правильной деформации сегментов и перекрестков триангуляция дороги и насыпи должна совпадать. Это предотвращает проникновение сеток друг в друга при перемещении точек шлицев вверх и вниз.

Экспорт World Spline Graph#

World Spline Graph хорошо работает как инструмент для размещения и деформации объектов, но из-за некоторых технических проблем его сложно использовать в конечных приложениях в качестве результирующего объекта. Поэтому, как только расположение объектов окончательное, требуется экспортировать сплайн-граф в файл .mesh или .fbx.

Чтобы экспортировать World Spline Graph, щелкните его правой кнопкой мыши в иерархии World Nodes, выберите Export to и предпочтительный вариант:

World Spline Graph Export

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

Ограничения#

Из-за природы сетки будут визуальные артефакты, связанные с точностью плавания, если World Spline Graph экспортируется в очень большой объект (около 10 000 м от начала координат в обе стороны). Мы рекомендуем разбивать такие большие объекты на более мелкие.

Проблема может возникнуть и в том случае, если World Spline Graph хоть и не очень большой, но находится очень далеко от начала координат (около 10 000 м и дальше). В этом случае мы советуем экспортировать его в FBX, не сохраняя точку поворота (опция Save root transform должна быть отключена), или сбросить позицию World Spline Graph в исходное положение перед экспортом в Mesh.

Последнее обновление: 19.04.2024
Build: ()