Создание карты: Геометрия
В этой статье:
-
– Понятие о BSP геометрии
– Создание геометрии
– Обзор инструментов для создания различных форм и их изменения
CSG и BSP
В Unreal engine предусмотрена своя концепция построения мира – Constructive Solid Geometry (CSG), которая представляет собой последовательность вырезаний или надстраиваний геометрии карты. Все чёрное “ничего”, что мы видим при создании новой карты это сплошное твердое (Solid) пространство. Единственным логическим действием будет вырезание пространства для обеспечения «жизнедеятельности игрока» и последующего наполнения окружением. Эта процедура выполняется созданием вырезающих/вычитающих брашей (Subtractive Brush). В полученное пространство Вы можете добавлять всевозможные надстройки, элементы декора и т.п. Это выполняется вторым типом брашей – добавляющим (Additive Brush).
Эти два типа операций (вырезания/добавления) могут создавать достаточно сложную последовательность, смешиваясь и чередуясь. К примеру, вначале Вы можете вырезать пространство комнаты, затем добавить стену, разделяющую пространство на две части и, наконец, в этой перегородке вырезать дверной проем.
Последовательность построения геометрии задается вами в процессе создания карты. Если нарушить эту последовательность, то результат может стать совершенно иным, к примеру, сперва добавим стену/перегородку, затем вырежем окно, а затем вырежем все пространство комнаты: в результате мы получим всего одну комнату без перегородки, хотя в редакторе нам будет видно все три браша. Изменить последовательность совершения CSG операций можно командами Order >ToFirst (порядок выполнения > первым) и Order > ToLast (порядок выполнения->последним) отдаваемые в контекстном меню, вызванном путем клика ПКМ по нужному брашу (группе брашей).
На картах закрытого типа каждая комната или коридор вырезаются отдельно.
Открытые карты создаются внутри огромного вырезанного куска.
BSP (Binary Space Partitioning) — метод двоичного разбиения пространства, который используется при компиляции геометрии. С помощью BSP дерева создается сортировка визуальных объектов в порядке удаления от наблюдателя, подробнее о BSP дереве можно почитать здесь или здесь. От расположения, формы и типа брашей зависит создание BSP вырезов – сечений (BSP cuts), которыми будет усеяна ваша карта после компиляции. При сложной геометрии иногда возможны ошибки при построении этих сечений, из за них возникают так называемые BSP Holes, дыры в пространстве.
Расположение и копирование брашей
Чтобы передвинуть браш нужно выделить его щелкнув по контуру, затем удерживая Ctrl и ЛКМ двигать его с помощью мыши. Также удерживая Ctrl можно выделить несколько таковых и переместить сразу группу. С помощью ПКМ их можно вращать (удерживая Ctrl) вокруг условного центра (Pivot), обозначаемого небольшой точкой или перекрестием. Перемещение брашей осуществляется по сетке редактора. Размер сетки можно быстро и удобно поменять в нижней панели инструментов. Так для точного расположения маленьких объектов лучше использовать размер сетки 1-8, а для больших конструкций – соответственно большие размеры. Для вращения существует 3 параметра – Pitch, Roll и Yaw и своя условная сетка. Один “шаг” такой сетки равен значению 1024 по одному из параметров. Шаг сетки можно изменить в опциях редактора: View > Advanced Options > Editor > RotationGridSize.
Также перемещение или вращение по сетке можно отключить кнопками Toggle Drag Grid и Toggle Rotation Grid соответственно. Если одна (или несколько) из точек браша не находится на пересечении сетки редактора, можно выровнять браш относительно данной точки выделив его и щелкнув по ней ПКМ. Выделенный браш (или группа) сместится на расстояние от данной точки до пересечения. Pivot для данного браша будет установлен на оси точки, относительно которой сместился браш.
Все объекты включая браши (кроме билдера) можно копировать или дублировать. Чтобы дублировать браш следует нажать ПКМ > Duplicate (на выделенном браше или группе объектов) либо Ctrl+W. Дубликаты актуальны для копирования объектов на одной карте, что бы перенести что-либо с одной карты на другую следует выбрать его и нажать ПКМ > Edit > Copy, затем вставить это на другой карте нажав ПКМ > Edit > Paste (где нибудь). Таким способом можно даже копировать многие вещи включая геометрию из редактора UT2004 в редактор KF, при условии, что оба редактора открыты. При копировании и дублировании брашей на них остаются наложенные текстуры и порядок наложения добавлений/вырезаний для групп брашей. После копирования или перемещения геометрию нужно скомпилировать, делается это кнопкой Build Geometry. При полной компиляции карты (Build All) геометрия обрабатывается в первую очередь.
Инструменты для создания геометрии
Две основных кнопки для создания геометрии – Add и Subtract , с помощью них добавляется или вырезается пространство по красным контурам браша – билдера.
Intersect и Deintersect используются для изменения формы билдера, обрезая его по контурам и сечениям Solid или Non Solid пространства внутри него.
Intersect
Deintersect
Выделив пространство карты и нажав Deinserect будут видны контуры BSP сечений.
Сечения также видны в режиме Zone/Portal.
Геометрические фигуры
Теперь об инструментах для создания различных геометрических форм. Они находятся на левой панели инструментов. С помощью них создается Builder, размеры и параметры можно задать щелкнув по ним ПКМ.
Cube. Создает прямоугольный параллелепипед. Самый часто используемый инструмент т. к. является самой удобной и легкой для редактирования формой.
Height – Высота
Width и Breadth – Длинна и ширина
WallThickness – Толщина стен (если Hollow = True)
GroupName – Название группы, особого значения не имеет. (одинаково для всех)
Hollow – Создает браш с полостью внутри и толщиной стен = WallThickness. Актуально для Additive брашей, удобно для создания каких-либо построек на открытом пространстве.
Tessellated – Разбивает грани браша на треугольники.
Cylinder. Создает n-угольную призму приближенную к форме цилиндра.
Height – Высота.
OuterRadius – Радиус описанной (при AllignToSides = False) или вписанной (при True) окружности в проекции сверху.
InnerRadius – Радиус полости при Hollow = True.
Sides – Количество боковых граней.
AllignToSides – Привязка радиуса к боковым граням.
Hollow – Аналогично с кубом.
Cone. Создание n-угольной пирамиды приближенной по форме к конусу.
Height – Высота (да, опять)
CapHeight – Высота потолка при Hollow = True
OuterRadius – Аналогично с цилиндром, для основания пирамиды.
InnerRadius – Радиус полости.
Sides – Количество боковых граней пирамиды.
AllignToSides и Hollow – Аналогично.
Sphere. Создание формы подобной тетраэдру, приближенной к сфере.
Radius – Радиус от центра до каждой из точек тетраэдра.
SphereExtrapolation – Степень приближения формы к сфере, чем больше значение – тем больше приближение (не рекомендую вводить значения больше 6 т.к. количество граней растет в геометрической прогрессии).
Лестницы:
Лестницы – это браши состоящие из нескольких сегментов.
Следующие 3 параметра используются во всех типах лестниц.
StepWidth – Ширина лестницы.
NumSteps – Количество ступеней.
LinearStaircase. Прямая лестница.
StepLenght – Длинна одной ступени
AddToFirstStep – Высота добавляемая к первой ступени.
CurvedStaircase. Создание лестницы с поворотом.
InnerRadius – Радиус от точки отсчета до начала лестницы.
AngleOfCurve – Угол поворота от первой до последней ступени.
AddToFirstStep – Аналогично с LinearStaircase.
CounterClockwise – Если = True то поворот лестницы будет против часовой стрелки.
SpiralStaircase. Как нетрудно догадаться – спиральная лестница.
InnerRadius – Внутренний радиус до начала лестницы.
StepThickness – Толщина ступеней.
NumStepsPer360 – Количество ступеней пройдя которые совершается поворот на 360 градусов.
SlopedCelling – Будет ли нижняя сторона лестницы гладкой.
SlopedFloor – Ступени сглаживаются и лестница становится склоном.
CounterClockwise – Поворот против часовой стрелкти.
Плоские поверхности:
Sheet: плоская четырехугольная поверхность. Может используется для создания декораций или разбивки карты на зоны.
Height/Width – Размеры.
HorizBreaks – Разбивка на n сегментов по горизонтали.
VertBreaks – По вертикали.
Axis – Ось на которой Sheet будет расположен при создании.
Volumetric: Структура состоящая из нескольких плоских поверхностей пересекающихся в центре. Иногда используется для создания декораций.
Height/Radius – Размеры.
NumSheets – Количество плоских поверхностей в структуре.
Ландшафт:
BSP Based Terrain: Создает браш, подбный кубу, одна грань которого разбита на сегменты, а сегменты – на треугольники. Предназначается для создания BSP ландшафта. Далеко не самый удобный инструмент для создания такового и очень редко используется.
Height/Width/Breadth – Размеры.
Width/Depth Segments – количество сегментов в длину и ширину.
Масштабы
В различных параметрах будь то высота, длинна или радиус задается определенная величина. Эта величина – UU (Unreal Unit).
1 UU = 0.75 дюйма
1 м = 52.5 UU
1 см = 0.525 UU
1 фут = 16 UU
256 UU = 487.68 см = 16 футов
Для поворотов и вращения существуют свои условные единицы для Pitch, Roll и Yaw, которые показывают отклонение во вращении по сравнению с исходным положением.
1024 = 5.625 градусов
8192 = 45 градусов
16384 = 90 градусов
24576 = 135 градусов
32768 = 180 градусов
Если перед значением стоит минус, то вращение происходит в обратную сторону.
Инструменты для редактирования форм
VertexEditing: Очень полезный инструмент для создания различных форм геометрии. Он позволяет редактировать форму брашей путем перемещения точек – вершин.
Выделив браш, можно удерживая Ctrl выбрать его вершины (в любой проекции) и удерживая Ctrl+ЛКМ перемещать их, изменяя форму.
Это очень удобно для создания нестандартных форм, к тому же намного быстрее дублировать – какой-то браш и изменить его размеры/форму с помощью VertexEditing, чем создавать новый, прописывая другие размеры и повторно нанося текстуры.
Чтобы точки легче было выделять, можно нажать ShowLagreVertices на панели режимов экранов редактора.
BrushClipping: Инструмент для обрезки и разделения брашей. Выделив браш и включив режим BrushClipping можно размещать Clipping маркеры. Чтобы поместить маркер нужно щелкнуть ЛКМ по одной из точек браша, затем удерживая Ctrl переместить маркер в нужное место. Для обрезания/разделения достаточно 2х маркеров, 3й не нужен. Между маркерами появляется красная линия, посредине которой перпендикулярно направленный отрезок, указывающий какая сторона будет обрезана.
Для режима BrushClipping есть 4 инструмента:
Clip Selected Brushes – Обрезать браш в направлении отрезка.
Split Selected Brushes – Разделить браш на части по линии сечения.
Flip Clipping Normal – Повернуть сторону обрезки.
DeleteClippingMarkers – Удалить все маркеры.
Ну и напоследок еще пара полезных инструментов.
Mirror X/Y/Z – Зеркальное отражение геометрии относительно Pivota по одной из осей.
Select All Inside – Выделить все объекты внутри билдера.
Прочтите также:
Метки: bsp, killing floor, создание карты
08 апр 2016 в 0:00
А можно ли создать невидимую стенку? Не Block а именно стенку
08 апр 2016 в 10:51
Да, делаешь невидимую текстуру и накладываешь ее на BSP поверхность