Сплайн і Spline Geometry Edit Mode¶
🇬🇧 English | 🇺🇦 Українська
Форму конструкції задає компонент SplineComponent актора. Точки можна редагувати вручну, побудувати або
відредагувати стеком модифікаторів у режимі редактора Spline Geometry або скопіювати з іншого сплайна.
Ручне редагування¶
Виділіть актор — сплайн стає активним у в'юпорті. Далі як зі звичайним USplineComponent:
- Alt-перетягування точки додає нову; Delete видаляє виділену.
- Перетягуйте маркери дотичних, щоб змінити кривизну.
- Для кожної точки доступний тип:
Curve(гладко),Linear(злам),Constant. - Масштаб точки (Scale) впливає на масштаб мешів у цій ділянці, крен (Roll) — на нахил мешів навколо сплайна.
Конструкція перебудовується одразу після кожної правки.
Параметри сплайна на акторі¶
| Параметр | Призначення |
|---|---|
| Loop | замкнути сплайн у петлю. Керуйте замкненістю саме тут: актор перезаписує прапорець компонента при кожній перебудові. |
Поточну кількість точок показує Spline Geometry Edit Mode та рядок стану Spline Utilities. Рівномірний перерозподіл виконується кнопкою Redistribute to N Points або модифікатором Distribute Evenly — службові числа більше не зберігаються як властивості актора.
Spline Geometry Edit Mode¶
Окремий режим редактора для побудови форми сплайна стеком кроків-модифікаторів — замість того, щоб розставляти точки вручну або одноразовою командою. Крок у стеку не забувається одразу: його можна вимкнути, переставити, продублювати чи прибрати, і побачити результат у в'юпорті ще до застосування.
Як увійти¶
- Виділіть у в'юпорті один або кілька акторів, що мають хоча б один
Spline Component. - Відкрийте випадний список режимів редактора (там само, де Landscape, Foliage, Mesh Paint) і виберіть Spline Geometry.
Панель режиму складається з трьох частин.
Target — список знайдених сплайн-компонентів (з кількістю точок), із чекбоксом на кожному: які саме сплайни братимуть участь у попередньому перегляді й застосуванні. Якщо виділено кілька акторів, їхні сплайни згруповано за назвою актора. Можна побудувати те саме на кількох сплайнах одразу.
Modifier Stack — сам стек, виконується згори вниз. Кнопка + Add Modifier відкриває список усіх доступних модифікаторів (генерується автоматично, тож нові типи з'являються тут самі, без оновлення плагіна). У кожного кроку в стеку є:
| Елемент | Призначення |
|---|---|
| чекбокс зліва | увімкнути/вимкнути крок, не видаляючи його зі стеку. |
| назва й позначка | Generates points — крок будує форму заново (замінює всі точки); Modifies points — редагує наявні точки на місці. |
| Up / Down | перемістити крок у стеку. |
| Dup | продублювати крок разом з його параметрами. |
| X | прибрати крок зі стеку. |
| розгорнута область | параметри цього конкретного кроку — звичайна панель Details. |
Порядок має значення. Крок, що будує форму заново (Generates points), стирає все, що зробили кроки над ним. Якщо ввімкнений такий крок стоїть не першим, а десь нижче, усі кроки вище нього стають марними — панель одразу підсвічує їх помаранчевим і пише «No effect — overwritten by a later Generator step below». Практичне правило: спершу один крок-генератор форми (Line, Ellipse, Rectangle, Regular Polygon, Spiral, Lemniscate, Vertical Loop, Loop Track, Roller Coaster, Road), потім скільки завгодно кроків, що редагують наявні точки (Distribute Evenly, Tilt, Bind To Surface, Insert Loops).
Знизу — Live Preview (малює поточний результат стеку в в'юпорті блакитним, не займаючи справжній сплайн), підсумок «N spline(s) selected · M active step(s)», кнопка Apply to N Spline(s) і Cancel (очищає весь стек, режим лишається активним).
Застосування¶
Apply виконує ввімкнені кроки стеку по черзі на кожному відміченому сплайні та одразу перебудовує
конструкцію (RerunConstructionScripts) — усе одним кроком Undo. Якщо якийсь крок побудував форму заново
(Generates points) на сплайні актора SplineCraftFlow, цю щойно згенеровану ділянку автоматично
переводить на Stable Curve Orientation — навіть якщо сам актор завантажений зі старого рівня в
legacy-режимі орієнтації. Це нова геометрія, тому старій поведінці слідувати нема сенсу; решти сплайна
(і акторів, завантажених без жодних змін) це не стосується.
Модифікатори, що будують форму заново¶
Кожен такий крок повністю замінює точки сплайна — попередній вміст значення не має. Позначені в стеку як Generates points.
Line¶
Пряма низка точок.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Direction | (1, 0, 0) | напрямок лінії в локальному просторі сплайна; нормалізувати не потрібно. |
| Step | 500 | відстань між точками, см. |
| Number Of Points | 12 | кількість точок (мінімум 2). |
Up-вектор лишається перпендикулярним до лінії, навіть якщо вона йде строго вертикально.
Ellipse¶
Точки, рівномірно розставлені за кутом на еліпсі з центром у початку координат актора; перша точка лежить на осі +X, далі — за годинниковою стрілкою або проти (Clockwise).
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Radius X / Radius Y | 2600 / 1700 | радіуси вздовж осей X і Y, см. |
| Number Of Points | 16 | кількість точок (мінімум 3). |
| Clockwise | вимк. | обхід за годинниковою стрілкою замість проти. |
Щоб замкнути еліпс, увімкніть Loop на акторі.
Rectangle¶
Замкнений прямокутник зі скругленими кутами в площині XY, точки розподілені рівними відрізками довжини по прямих і дугах кутів.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Half Length X | 5000 | половина розміру вздовж локальної осі X, см. |
| Half Width Y | 3000 | половина розміру вздовж локальної осі Y, см. |
| Corner Radius | 1500 | радіус усіх чотирьох кутів, см; автоматично обмежується половиною коротшої сторони. |
| Point Count | 64 | точна кількість точок (мінімум 8). |
| Clockwise | вимк. | обхід за годинниковою стрілкою замість проти. |
Замикає сплайн сам (Loop вмикати не потрібно).
Regular Polygon¶
Правильний багатокутник із рівними сторонами в площині XY.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Number Of Sides | 6 | кількість сторін (і кутів), мінімум 3. |
| Diameter | 4000 | діаметр кола, на якому лежать кути, см. |
| Start Angle | 0 | поворот фігури, градуси; 0 ставить кут на локальну вісь +X. |
| Sharp Corners | увімк. | гострі кути (Linear). Вимкніть, щоб кути були згладжені (Curve). |
| Clockwise | вимк. | обхід за годинниковою стрілкою замість проти. |
Замикає сплайн сам.
Spiral¶
Спіраль навколо локальної осі Z; з ненульовою висотою — гвинтова лінія (гелікс).
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Start Diameter / End Diameter | 700 / 4000 | діаметр на першій і останній точці, см; однакові значення дають гелікс сталого радіуса. |
| Turns | 3 | кількість обертів (дробова). |
| Height | 3000 | підйом від першої до останньої точки, см; 0 — пласка спіраль. |
| Number Of Points | 48 | кількість точок (мінімум 3). |
| Clockwise | вимк. | обхід за годинниковою стрілкою замість проти. |
Підходить для гвинтових сходів, пандусів, серпантинів.
Lemniscate¶
Лемніската Бернуллі — «вісімка» в площині XY, що перетинає сама себе в початку координат актора.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Size | 2000 | половина ширини фігури, см — відстань від центру до найдальшої точки вздовж осі X. |
| Crossing Gap | 200 | вертикальний зазор між двома проходженнями через точку самоперетину, см — щоб траса, побудована по кривій, не перетинала сама себе там. Плавно наростає від кожного зовнішнього кінця фігури (де крива пласка) до половини зазору вище центру на одній петлі й половини нижче на іншій. 0 — уся фігура пласка. |
| Number Of Points | 38 | кількість точок уздовж кривої (мінімум 8). |
| Clockwise | вимк. | пройти фігуру в протилежному напрямку. |
Vertical Loop¶
Розгін уздовж локальної осі X, повна вертикальна петля і виїзд з місця приземлення — гірка типу «мертва петля».
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Approach Length | 2000 | довжина розгону перед петлею, см; 0 — петля починається одразу від початку сплайна. |
| Exit Length | 2000 | довжина виїзду після приземлення, см. |
Розгін і виїзд самі розбиваються на відрізки з кроком, близьким до кроку петлі — увесь сплайн виходить рівномірним одразу, без окремого Distribute Evenly. | Loop Radius | 800 | радіус петлі, см. | | Loop Divergence | 500 | бічний зсув між початком і кінцем петлі, см, що наростає рівномірно за весь оберт — вертикальна петля йде гвинтом (корковий свердел), а не пласким колом. 0 — петля пласка. | | Loop Point Count | 24 | кількість точок на колі петлі (мінімум 8). |
Якщо на сплайні вже увімкнено Loop, після приземлення петля отримує окремий сегмент повернення до початкової точки — інакше сплайн лишається розімкненим і закінчується на виїзді.
Loop Track¶
Готова замкнена траса: наземне повернення у вигляді скругленого прямокутника (Entry/Right/Far/Left — вхідна, права, дальня й ліва сторони) з до чотирьох незалежних вертикальних петель, по одній на кожну сторону. Кожна петля стикується з наземною частиною без розривів дотичних.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Ground Half Width | 3000 | половина ширини наземного повернення поперек напрямку в'їзду, см. |
| Ground Half Length | 5000 | половина довжини наземного повернення вздовж напрямку в'їзду, см. |
| Ground Corner Radius | 1500 | радіус усіх чотирьох кутів наземної частини, см. |
| Ground Point Count | 36 | кількість точок наземної частини, розподілених рівномірно за довжиною (через усі прямі й скруглені кути); не залежить від того, скільки петель увімкнено. |
Далі йдуть чотири однакові за структурою групи — Loop 1 (Entry Side), Loop 2 (Right Side), Loop 3 (Far Side), Loop 4 (Left Side) — кожна з власним набором параметрів:
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Enabled | увімк. лише для Entry | вмикає петлю на цій стороні. Можна увімкнути від однієї до всіх чотирьох одразу; без жодної увімкненої петлі виходить звичайний скруглений прямокутник. |
| Position | 0.5 | де саме на цій стороні розташована петля: 0 і 1 — ближче до країв (але не впритул, лишається принаймні один радіус кута прямої ділянки, щоб не псувати кут), 0.5 — точно посередині. |
| Radius | 1800 | радіус вертикальної петлі на цій стороні, см. |
| Divergence | 500 | бічний зсув петлі за один оберт, см (див. Vertical Loop вище) — петля йде гвинтом і одразу відходить від наземної частини назовні, а не перетинає сама себе. 0 — петля пласка. |
| Point Count | 24 | кількість точок на колі цієї петлі (мінімум 8). |
Сам вмикає Loop на сплайні. Якщо потім вимкнути Loop на акторі вручну, зникає лише останній сегмент, що замикає траєкторію.
Roller Coaster¶
Готова замкнена траса американських гірок: два прямі відрізки, з'єднані двома розворотами на 180°, а поверх — профіль висоти (тягова гірка → перший спуск → холми з повітряною ямою, що зменшуються → рівна ділянка гальмування назад до станції). Кожен стик (тяга-вершина, спуск-яма, холм-холм, поворот-пряма) плавний — нахил дорівнює нулю на кожному шві, як перехідні криві на справжній тязі гірки, тож ривків немає. Повороти нахиляються всередину дуги й плавно вирівнюються на прямих.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Straight Length | 6000 | довжина кожного з двох прямих відрізків, що з'єднують повороти, см. |
| Turn Radius | 2500 | радіус двох розворотів на кінцях траси, см. |
| Track Point Count | 96 | кількість точок, розподілених рівномірно по всьому колу за горизонтальною відстанню. |
| Lift Hill Height | 3500 | висота вершини тягової гірки над станцією, см. |
| Lift Hill Length | 5000 | яку частину довжини траси займає підйом тягової гірки, см; плавний вхід і вихід. |
| First Drop Length | 3000 | яку частину довжини траси займає спуск після вершини, см; плавний вхід і вихід. |
| Number Of Hills | 3 | кількість холмів з повітряною ямою після першого спуску, займають решту кола. 0 — рівна ділянка гальмування замість них. |
| First Hill Height | 1800 | висота першого холму одразу після спуску, см. |
| Hill Height Decay | 0.7 | висота кожного наступного холму відносно попереднього. 1 — усі холми однакової висоти; менше — холми спадають до станції, класичний профіль. |
| Hill Height Variation | 0.15 | випадково змінює висоту кожного холму в межах цієї частки навколо його базової (спадної) висоти — справжні гірки рідко бувають ідеально геометричними. Кожен холм лишається так само плавним, змінюється лише висота вершини. 0 — холми точно за розрахунком. |
| Random Seed | 0 | зерно для випадкової зміни висоти холмів. Те саме зерно завжди відтворює ту саму трасу; змініть, щоб отримати інший, так само коректний варіант. |
| Max Bank Angle | 25 | наскільки повороти нахиляються всередину дуги, градуси. Плавний вхід і вихід у кожному повороті; прямі лишаються рівними. |
Road¶
Будує звивисту дорогу, трасу чи стежку з нуля: замкнене коло або один довгий відкритий маршрут, що петляє убік від своєї осі за сумішшю двох гармонік (не простою синусоїдою) із заданим зерном — виходить органічний, не ідеально-математичний вигин. Замкнена траса опційно може перетинати сама себе (наче розв'язка типу «вісімка»); там, де це стається, висота плавно піднімається, щоб два проходи розійшлися — той самий прийом, що й Crossing Gap у Lemniscate. Опційно результат ще й трасується на рельєф під ним.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Closed Loop | увімк. | будувати замкнене коло замість одного довгого відкритого маршруту. |
| Base Radius | 8000 | середній радіус замкненої траси, см, до додавання вигинів. Лише для замкненої траси. |
| Length | 15000 | довжина відкритого маршруту вздовж його осі, см, до додавання вигинів. Лише для відкритого маршруту. |
| Number Of Points | 150 | кількість точок уздовж усієй дороги. Густіший крок точніше повторює круті вигини й нерівності рельєфу. |
| Number Of Bends | 5 | кількість S-подібних вигинів дороги. 0 лишає рівне коло (замкнена) або пряму лінію (відкрита). |
| Bend Amplitude | 1500 | наскільки дорога відхиляється убік від своєї осі, см. |
| Random Seed | 0 | зерно для візерунка вигинів дороги — фаза основних вигинів і менше, вторинне похитування поверх них для органічнішого, менш математично ідеального вигляду. Те саме зерно завжди відтворює ту саму дорогу. |
| Allow Self Crossing | вимк. | дозволити замкненій трасі перетинати власний шлях (перетин у стилі «вісімки») замість того, щоб завжди лишатися простим колом. Має сенс лише для замкненої траси — відкритий маршрут (бічний зсув від прямої осі) не може перетнути сам себе фізично, незалежно від амплітуди. |
| Crossing Gap | 400 | вертикальний зазор у кожній точці самоперетину, см, щоб два проходи не зіткнулися — як коротенький міст над іншою смугою. Плавний вхід і вихід з обох боків. |
| Crossing Ramp Length | 2000 | яку довжину траси займає підйом на міст (і спуск з нього) у кожній точці перетину, з кожного боку, см. |
| Snap To Surface | вимк. | опустити кожну точку прямо вниз на рельєф під нею, щоб дорога повторювала нерівності місцевості замість того, щоб лишатися пласкою. |
| Follow Surface Slope | увімк. | нахиляти кожну точку за схилом рельєфу (разом з поперечним нахилом). Вимкніть, щоб усі точки дивилися строго вгору незалежно від нахилу землі. |
| Surface Vertical Shift | 0 | додатковий вертикальний зсув після приземлення на рельєф, см. |
| Surface Trace Distance Above | 2000 | з якої висоти над точкою шукати рельєф, см. |
| Surface Trace Distance Below | 5000 | як далеко під точкою шукати рельєф, см. |
Модифікатори, що редагують наявні точки¶
Ці кроки не будують форму з нуля — їм потрібні точки, які вже є на сплайні (намальовані вручну або створені кроком-генератором вище в тому самому стеку). Позначені як Modifies points.
Distribute Evenly¶
Перерозподіляє наявний сплайн так, щоб точки йшли рівномірно за довжиною кривої.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Number Of Points | 28 | нова кількість точок (від 2 до 64). |
| Keep Rotation | увімк. | зберегти крен (up-вектор) сплайна в нових точках; вимкніть, щоб скинути крен. |
Масштаб точок зберігається за профілем уздовж сплайна, тип усіх нових точок стає Curve.
Tilt¶
Додає крен до наявних точок, не рухаючи їх і не чіпаючи їхні дотичні й тип.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Additional Roll | 0 | додатковий крен, градуси. |
| Distribute Across Points | вимк. | розподілити Additional Roll поступово вздовж сплайна: точка з індексом i (з нуля) отримує Additional Roll × (i + 1) / N, остання точка — повний кут. Вимкнено — кожна точка отримує весь кут одразу. |
Bind To Surface¶
Опускає наявні точки на поверхню під ними.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Use Custom Point Count | вимк. | замість наявних точок узяти нову кількість, рівномірно перерозподілену вздовж поточної форми сплайна ще до опускання на поверхню. |
| Number Of Points | 20 | нова кількість точок, якщо увімкнено Use Custom Point Count. |
| Additional Vertical Shift | 0 | додатковий вертикальний зсув від знайденої поверхні, см. |
| Vertical Points | увімк. | up-вектор кожної точки дивиться строго вгору, незалежно від нахилу поверхні. Вимкніть, щоб up-вектор нахилявся за нормаллю поверхні в точці влучання. |
| Trace Distance Above | 500 | з якої висоти над точкою шукати поверхню, см. Тримайте невеликим, якщо над сплайном є міст або дах. |
| Trace Distance Below | 2000 | як далеко під точкою шукати поверхню, см. |
Промінь іде строго вниз у світових координатах, каналом WorldStatic; сам актор ігнорується (інші
об'єкти, зокрема приєднані до актора, — ні). Якщо поверхню не знайдено, точка лишається на місці.
Insert Loops¶
Вставляє одну чи кілька вертикальних петель у вже наявний сплайн (намальований вручну або побудований попереднім кроком-генератором) у заданих місцях, замість того щоб будувати цілу трасу з нуля. Усе поза петлями зберігає початкову форму — петля лише додає нові точки, а решту сплайна за собою зсуває вбік рівно на своє Divergence.
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Loops | порожньо | масив петель для вставки; кнопками "+"/"−" додавайте чи прибирайте петлі. |
Кожен елемент масиву — окрема петля з власними параметрами:
| Параметр | За замовчуванням | Призначення |
|---|---|---|
| Enabled | увімк. | вставляє цю петлю. Вимкніть, щоб лишити налаштування, але не вставляти — зручніше, ніж видаляти й створювати елемент заново. |
| Position | 0.5 | де вздовж усього сплайна вставити петлю: від початку (0) до кінця (1); 0.5 — точно посередині. |
| Radius | 1800 | радіус петлі, см. Використовується й для перевірки на перетин із сусідніми петлями (див. нижче). |
| Divergence | 500 | бічний зсув петлі за один оберт, см (див. Vertical Loop вище) — петля йде гвинтом і одразу відходить від власної основи, а не перетинає сама себе. Усю решту сплайна після петлі зсуває вбік на ту саму відстань. 0 — петля пласка, без зсуву. |
| Point Count | 24 | кількість точок на колі цієї петлі (мінімум 8). |
Площина кожної петлі завжди містить локальну вертикаль і горизонтальний напрямок руху сплайна в точці вставки — «вертикальна петля» лишається вертикальною незалежно від нахилу чи підйому траси в цьому місці.
Захист від дурня. Якщо дві петлі опиняються задано ближче вздовж сплайна, ніж сума їхніх радіусів
(тобто перетнулися б своїми бульбашками), пізнішу з них автоматично відсовують уздовж сплайна рівно на
потрібну відстань від сусідки. Якщо для цього забракло місця до кінця сплайна — а для замкненого
сплайна ще й місця розійтися з першою петлею після замикання — таку петлю пропускають повністю, із
попередженням у Output Log (LogSplineCraftFlow), а решта петель вставляються як зазвичай.
Швидкі інструменти сплайна¶
Одноразові команди зібрано в Details → SplineCraft Flow Tools → Spline Utilities. Їхні входи тимчасові й не серіалізуються в runtime-актор.
- У Reference Spline виберіть точну пару
актор / Spline Component, потім натисніть Align End to Start. Остання точка кожного вибраного сплайна збіжиться з першою точкою reference spline за позицією і поворотом у світових координатах. Це точніше за старе полеAlignToBeginActor, яке мовчки брало перший компонент актора. - Задайте Even Point Count і натисніть Redistribute to N Points, щоб рівномірно пересемплювати
поточну форму. Для замкненого сплайна перша точка не дублюється на стику. Старі поля
NumberOfSplinePointsіNewNumberOfSplinePointsбільше не зберігаються в акторі.
Обидві команди працюють пакетно для кількох вибраних акторів і скасовуються одним Undo.
Копіювання даних з іншого сплайна¶
Це окремий інструмент редактора в панелі Details. Він не зберігає тимчасове посилання на джерело в акторі й дає змогу явно вибрати потрібний компонент, якщо один актор містить кілька сплайнів.
- Виділіть один або кілька акторів SplineCraft Flow на сцені.
- У відкритій категорії SplineCraft Flow Tools → Spline Utilities натисніть Reference Spline.
- У списку виберіть точну пару
актор / Spline Component. Актори без сплайнів, вибрані цільові актори та об'єкти з іншого editor world автоматично відфільтровано. - Перевірте підсумок: кількість точок, відкритий чи замкнений сплайн і кількість цільових акторів.
- Натисніть Copy Spline для одного актора або Copy to N для пакетного копіювання.
До кожного вибраного актора копіюються всі точки разом із дотичними, типами, креном, масштабом, локальним up-вектором і замкненістю (Loop береться з джерела). Кожен цільовий актор переміщується так, щоб його сплайн точно збігся з джерелом у світових координатах, після чого конструкція перебудовується. Усе пакетне копіювання скасовується одним Undo.
Вибір Reference Spline тимчасовий: він належить лише поточній панелі Details, не серіалізується в актор і не потрапляє до runtime-збірки. Якщо джерело видалено, переміщено в інший світ або воно стало одним із цільових акторів, кнопка блокується й панель пояснює причину.
З Blueprint доступна функція Copy Spline From Actor — вона без діалогів копіює перший знайдений
Spline Component актора й придатна також для runtime. Коли на джерелі кілька сплайнів і потрібен
конкретний компонент, користуйтеся редакторським picker'ом вище. Докладніше про Blueprint API — у
розділі 09.