Усі статті
Туторіали · 3 min read

Як розсипати каміння в Unreal Engine 5: швидко, правдоподібно, продуктивно

Практичний воркфлоу scattering у UE5, малювання щільності, маски нахилу, правила видів і кластеризація, який лишається продуктивним, бо все запікається в інстанси.

Illustration of a circular scatter brush placing rocks on a ground plane

Розставляти каміння вручну, найповільніший спосіб зробити ландшафт природним, а рівномірний випадковий scatter, найшвидший спосіб зробити його фальшивим. Реальне розташування каміння підпорядковується правилам: уламки збираються біля підніжжя схилів, великі формації утворюють скупчення, дрібне каміння заповнює проміжки між ними. Цей посібник показує воркфлоу, що кодує ці правила, за допомогою Surface Scatter від Numivo в UE5. Ідеї переносяться, навіть якщо ви розсипаєте вручну.

Що таке surface scattering?

Surface scattering — це процедурне розміщення багатьох інстансів мешів по терейну чи геометрії, кероване правилами замість окремих кліків, карти щільності, обмеження нахилу й висоти, обмеження відстані та рандомізовані трансформи. Зроблений правильно, він перетворює години розставляння на секунди малювання. Зроблений неправильно, він дає вигляд «інстансового супу», який упізнає кожен гравець.

Крок 1: Побудуйте невеликий вид каміння, а не один меш

Не розсипайте один меш каменя. Створіть вид (species), зважений набір:

  • 2–3 великі героїчні формації (вага низька, ~5%)
  • 4–5 середніх валунів (вага ~25%)
  • 6+ дрібного каміння та уламків (вага ~70%)

Розподіл ваг важливіший за самі меші. Природа складається переважно з дрібниць із рідкісними великими якорями, переверніть це, і сцена читатиметься як штучна.

Крок 2: Нехай нахил вирішує, де живе каміння

Задайте маску нахилу, щоб каміння віддавало перевагу нахилам 15°–55° і сходило нанівець на рівнинах. Каміння на ідеально пласкій луці має вигляд розставленого; каміння, що тулиться до переходу між скелею і землею, має геологічний вигляд. У Numivo це два повзунки на виді; вручну — це правило, якого ви дотримуєтеся під час розставляння.

Крок 3: Кластеризація перемагає випадковість

Суто випадковий scatter дає рівномірні проміжки, а рівномірні проміжки кричать «комп'ютер». Увімкніть кластеризацію, щоб інстанси збиралися в групи з проміжками між ними: для валунів радіус кластера близько 400–600 см із 3–7 інстансами на кластер — гарна відправна точка. Потім додайте правило Avoid проти вашого виду дерев (каміння рідко тулиться впритул до стовбурів) і правило Attract, що притягує дрібні уламки до великих формацій, цей «фартух з уламків» навколо великого каміння і є деталь, яку більшість розсипаних сцен пропускає.

Крок 4: Рандомізуйте потрібні трансформи

  • Yaw: повні 360°, завжди.
  • Scale: 0,8–1,3 нерівномірно, щоб силуети різнилися.
  • Roll/pitch: лише ±8° для приземленого каміння, великі випадкові нахили читаються як ширяння.
  • Sink: занурюйте інстанси на 5–15 см у терейн. Камінь, що стоїть на землі, а не в землі, — найпоширеніша ознака, що видає.

Крок 5: Тримайте продуктивність: запікайте в інстанси

Саме тут інструменти scatter доводять свою цінність, або ні. Numivo запікає результат у Hierarchical Instanced Static Meshes (або інстанси foliage, на ваш вибір), нативні ассети UE5, що збираються в жменю draw call'ів, працюють із Nanite і виходять із нульовою вартістю плагіна під час виконання. Схил із 20 000 каменів стає кількома інстансованими партіями; ваш білд узагалі не містить коду Numivo.

Два практичні правила продуктивності:

СценарійРекомендація
Каміння < 1 м, велика кількістьІнстанси foliage + агресивна дистанція куллінгу
Героїчні формації, прохідніHISM із мешами Nanite, без куллінгу

Спробуйте на справжньому схилі

Увесь воркфлоу вище займає близько 10 хвилин першого разу і близько 90 секунд, щойно з'являться ваші пресети видів. Безкоштовний рівень містить базовий scatter без обмеження в часі, тож ви можете протестувати це на власному ландшафті вже сьогодні. Якщо застрягнете, документація охоплює кожен параметр, а Discord сповнений людей, які діляться своїми пресетами видів.