Трансформація, Mobility і Blueprint API¶
🇬🇧 English | 🇺🇦 Українська
Поворот, переміщення і масштаб актора¶
Уся згенерована геометрія живе в локальному просторі актора:
- Переміщення й поворот актора переносять конструкцію як ціле — у редакторі й у грі. Після перебудови меші й актори стоять на тих самих місцях відносно актора.
- Масштаб актора масштабує конструкцію як ціле: кількість і крок елементів не змінюються, меші стають більшими чи меншими (коли увімкнено Scale Structure With Actor, нижче).
- Згенеровані компоненти прикріплені до
SplineComponent, тому якщо змістити або повернути сам компонент сплайна всередині актора, вміст рухається разом зі сплайном.
Нерівномірний масштаб актора (наприклад, 2 × 1 × 1) рушій не може точно передати дочірнім акторам із поворотом — для акторів уздовж сплайна тримайте масштаб рівномірним.
Scale Structure With Actor¶
| Значення | Поведінка |
|---|---|
| Увімкнено (за замовчуванням) | відстані вздовж сплайна рахуються в локальних одиницях актора. Масштаб актора масштабує всю конструкцію. |
| Вимкнено | поведінка версій до 7.0: відстані рахуються зі світовим масштабом сплайна, тому при масштабі актора 2 уздовж сплайна стає вдвічі більше мешів, і вони перекриваються. |
Акторам на рівнях, збережених у версіях до 7.0, параметр автоматично вимикається під час завантаження, щоб наявні сцени виглядали як раніше. Якщо такий актор масштабовано і ви хочете нову поведінку, увімкніть галку вручну. При масштабі 1 обидва варіанти дають однаковий результат.
Mobility¶
Mobility актора задає mobility кореня, компонента сплайна та всіх згенерованих компонентів.
| Значення | Коли використовувати |
|---|---|
Static (за замовчуванням) |
нерухомі конструкції; компоненти беруть участь у запіканні освітлення. |
Stationary |
нерухомі в грі компоненти (поведінка — як у стандартному Mobility рушія). |
Movable |
актор переміщується чи обертається в грі. |
Перебудова в runtime працює за будь-якого значення, але компоненти, створені вже під час гри, не мають запеченого освітлення.
Перебудова¶
- У редакторі — автоматично після кожної зміни властивості, переміщення актора чи правки сплайна.
- На старті гри — у
BeginPlay. - У runtime — викликайте Build Elements Along Spline після зміни властивостей.
Перебудова знищує лише компоненти, які створив сам актор. Компоненти, додані вами в Blueprint-нащадку або на екземплярі, лишаються.
Blueprint API¶
| Елемент | Тип | Призначення |
|---|---|---|
| Build Elements Along Spline | функція | повністю перебудувати конструкцію за поточними налаштуваннями. |
| Copy Spline From Actor | функція | скопіювати сплайн з першого компонента сплайна іншого актора (точки, дотичні, типи, крен, масштаб, Loop) і перемістити актор так, щоб сплайни збіглися у світі. Повертає false, якщо в актора немає сплайна або це сам актор. |
| Apply Preset | функція | застосувати USplineCraftFlowPreset і перебудувати конструкцію, не змінюючи форму сплайна та Loop. |
| Preset, Mode, Static Meshes, Actors, Mobility, Loop, Scale Structure With Actor, Stable Curve Orientation | властивості | читання й запис; після прямої зміни властивості викличте Build Elements Along Spline. |
| Spline Component, Default Scene Root | властивості | компоненти актора (лише читання). |
Editor-only команди Align End to Start, Redistribute to N Points, створення/збереження пресетів і
Merge to Static Mesh навмисно не є властивостями runtime-актора. Для runtime-геометрії працюйте через
стандартний Blueprint API Spline Component, а потім викликайте Build Elements Along Spline.
Приклад: дорога між двома точками в runtime¶
- Отримайте Spline Component, очистіть точки (Clear Spline Points) і додайте нові (Add Spline Point).
- Викличте Build Elements Along Spline.
- Якщо дорога має потім рухатися разом з актором, задайте Mobility =
Movable.