Skip to content

Трансформація, 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

  1. Отримайте Spline Component, очистіть точки (Clear Spline Points) і додайте нові (Add Spline Point).
  2. Викличте Build Elements Along Spline.
  3. Якщо дорога має потім рухатися разом з актором, задайте Mobility = Movable.

Дивіться також