This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL
Плагины
File Formats
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.

World Spline Graph

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

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

Варианты применения World Spline Graph

Сплайн-граф определяется набором точек 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 node currently has the following restrictions:

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

  • Статья о классе 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для материала, назначенного насыпи.
    • Для обеспечения правильной деформации сегментов и перекрестков триангуляция дороги и насыпи должна совпадать. Это предотвращает проникновение сеток друг в друга при перемещении точек шлицев вверх и вниз.

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