Сповіщення
Очистити все

АІ-сітка. Коригування сгенерованої сітки


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

На жаль, інструмент SDK для роботи зі STALKER не ідеальний і має свої помилки, AI Map не виняток​​. Настійно рекомендується, після генерації AI Map, перевірити її щодо помилок. Поширений тип помилок і дрібних косяків, а також їх виправлення дивіться нижче.

Не з'єднані ноди

Часто буває, що ноди не поєднуються між собою, навіть якщо знаходяться близько один до одного. Що на це впливає невідомо (виправдано, якщо місце стику знаходиться у важкому місці, на висоті чи ще десь, а то буває на рівному місці).

1.jpg
Не лінковані між собою ноди

 

Як видно на скріншоті вище, на краю сітки є ноди, які ведуть в один бік. Тобто моб потрапляючи на цей нод, не піде наприклад, а розгорнеться назад. Так не повинно бути, тому потрібно виправити:

1. Виділіть все AI Ноди ( Ctrl + A )

2. Потім натисніть на середню кнопку ( + )

2.png
Кнопка, що виправляє цю помилку.

 

3. Перевірте результат

3.jpg
Результат із виправленими нодами

 

Відповідно це виправить такі косяки не тільки в цьому місці, а й в інших подібних, можливо, які й не помітиш відразу.

Поодинокі ноди

Ще одна часта помилка AI Map, коли з'являються одиночні ноди. З'являтися вони можуть з різних причин, наприклад під час генерації, випадково залазить вище по об'єкту, і навіть корекція описана вище не допомагає. Для прикладу вони були розставлені спеціально. У звичайному картобудуванні, на хорошому великому рівні, їх дуже часто можна не помітити, знову потрібно вдатися до допомоги SDK.

4.jpg
Поодинокі ноди, що вийшли після генерації карти

 

Для того, щоб виділити всі поодинокі ноди, натисніть на Select 0-Link (Знаходяться праворуч від кнопки ( + )), дана кнопка виділить усі нульові ноди. Потім натисніть Delete на клавіатурі - готово, поодинокі ноди видалені.

Зайві ноди і як їх видалити

Ще один частий глюк SDK, коли AI сітка довільно залазить на об'єкти, на які не винна.

5.jpg
AI сітка на прядиві

 

Як можна бачити на скріншоті вище, AI Map залізла на пеньок. Не важко здогадатися, що в грі буде виглядати не дуже красиво, коли NPC або мутант бігатиме пеньком. У таких випадках, на жаль, автоматика SDK не допоможе – такі місця потрібно шукати самому та виправляти їх:

1. Виділіть ноди (Кнопка-стрілочка вгорі зліва на панелі інструментів або гаряча кнопка S )

6.jpg
Виділено зайві ноди

 

2. Натисніть кнопку Delete на клавіатурі.

3. Перевірте результат

7.jpg
Кінцевий результат, тепер моби обходитимуть пеньок

 

Одиночне (ручне) додавання нодів

Деколи виникають випадки, коли потрібно додати ноди на рівень. Якщо AI сітка створювалася правильно, такі випадки здебільшого виключені, але ніхто ні від чого не застрахований. Можливо, потрібно додати парочку нодів туди, куди SDK автоматично не зміг їх покласти. У прикладі, до будівлі прокладено "стежку".

Щоб це зробити, потрібно знову ж таки перебуваючи в режимі редагування AI сітки (Кнопка AI Map ) натиснути на "чайник" або гарячу клавішу А , за умови, що всі статичні об'єкти досі знаходяться в снап-листі.

Це обмежує Вас від мороки на зразок нової генерації сітки і т.д.

8.jpg
Результат ручного додавання (Нові ноди підсвічені)

 

Одиночна (ручна) лінковка нодів між собою

Іноді буває ситуація, коли ноди не лінковані між собою. Це буває в багатьох випадках, наприклад, якщо додаєте деякі нові ноди вручну, і вони не хочуть з'єднуватися з основною сіткою.

9.jpg
Нелінковані ноди (У цьому випадку після ручного додавання нових нодів вони не з'єднуються з новою сіткою)

 

Виразно бачимо помилку. Щоб моби змогли зайти в майбутньому до будівлі, потрібно з'єднати ноди, що знаходяться у дверях.

Щоб виправити цю проблему, робимо наступне (Правка схожа на найперше коригування):

1. Виділяємо ноди, які потрібно поєднати між собою

10.jpg
Виділено необхідні ноди (Підсвічені)

 

2. Потім натисніть на середню кнопку +

3. Перевірте результат

11.jpg
Результат коригування

 

Генерація з певних об'єктів

Іноді трапляються випадки, коли AI карта не генерується в деяких місцях. Наприклад у будинках. Благо, це також виправляється.

12.jpg
Всередині будівлі немає AI сітки

 

Якщо всі основні роботи з основною сіткою були проведені, то для цього коригування можна і потрібно очистити снап-лист, а далі додати до нього лише потрібні об'єкти для генерації. Натисніть Commands > Clear List і підтвердьте видалення.

13.jpg
Очищення снап-листа.

 

Далі вручну виділіть необхідні об'єкти, в цьому випадку це: будинок, меблі. Виділяти ВСІ об'єкти рівня не потрібно! Коли виділили все, додайте виділені об'єкти в снап-лист, поставте всередину будинку як мінімум 1 нід, але рекомендується (При чому дуже наполегливо) розставити по ноду в кожну кімнату, щоб сітка згенерувалась у кожній кімнаті, бо через дверні отвори вона не завжди пролазить автоматично через нього та генерується в інших приміщеннях.

14.jpg
Виділено потрібні об'єкти, оновлено снап-лист, додано ноди.

 

Виділіть вручну кожен новий нод (Затиснувши L Ctrl ) і натисніть Generate Selected (Не Full !)

15.jpg
Результат вибіркової генерації тільки всередині будівлі (Основна сітка не була порушена)

 

Тепер начебто все правильно. Однак є глюк – на тумбочку заліз один нід. Не добре. Потрібно прибрати. Як це зробити описано в пункті про видалення зайвих нодів. І ще один глюк. Як писалося вище, AI сітка іноді може не проходити крізь дверні отвори тощо, це зараз можна спостерігати.

16.jpg
AI сітка не з'єдналася через вузький прохід

 

Виправити це легко, все з попередніх коригувань - додайте в дверний отвір по 2 нода (Не забувши натиснути Ignore Constraints , як завжди), і тут вони самі між собою залінкуються, або виділіть їх і найближчі до них ноди і натисніть на середню кнопку ( + ).

17.jpg
Виправлена ​​сітка у дверях

 

На цьому все – кімнати з'єднані між собою. Виконуйте цю роботу з кожною кімнатою і перевірте результат. AI Map розстелена по будівлі та приєднана до основної сітки, чого не зміг зробити SDK. Тепер моби відвідуватимуть будиночок.

18.jpg
Кінцевий результат

 

"Літаючі" ноди

Ще один глюк, який виникає досить часто - це "ноди, що літають". Благо вони трапляються дуже рідко, майже завжди в особі пари-трійці екземплярів, в основному в будинках, на об'єктах або після ручного додавання нода у вузький отвір.

19.jpg
"Літаючий" нід

 

Необхідно виправляти, а то некрасиво якось буде в грі, якщо моб потрапить на цей нод і різко підлетить нагору, а потім униз, вірно? 🙂 Виділіть цей нод, потім натисніть кнопку, що відповідає за переміщення об'єктів (Вгорі на панелі інструментів) і як звичайний об'єкт рухайте нод вниз по осі Y і рівняйте його приблизно з іншими. Готово!

20.jpg
Результат зміщення нода вниз

 

Неправильне лінкування нодів

Ще одна рідкісна, але все ж таки помилка - коли ноди з'єднуються між собою по кілька разів або ж на далеких відстанях, що в грі може викликати пекельні глюки та негарні моменти.

21.jpg
Приклад такої помилки

 

Ноди зі сходів з'єдналися з нодами внизу, які у свою чергу приєднані до основної сітки знизу.

Щоб виправити:

1. Виділіть усі три ноди на сходах, які з'єднані з нижнім

2. Видаліть

3. Поставте наново поштучно

Або можна не видаляти, а поставити нові ноди поверх старих, вони автоматично перелінкуються в правильну сторону. Такі справи.

22.jpg
Виправлені ноди, тепер вони ведуть у правильний бік

 

Такі помилки на жаль можуть виникати не тільки на сходах, а й на різних виступах, ямках, урвищах і т.д - дивіться уважніше та виправляйте ці непорозуміння.

AI сітка на вишках і т.д

Ще один, не те, щоб глюк, а скоріше недоробка - AI сітка не генерується на вежах, наприклад, вертикальних сходах і т.д. Все це доводиться робити вручну.

23.jpg
AI сітка на платформі, яка не з'єднана з основною сіткою на террейні

 

Щоб з'єднати два шматки сітки між собою, зробіть таке:

1. Поставте нод знизу сходів (має бути вкл. Ignore Constraints , не забудьте), по потребі такий самий нод зверху

24.jpg
Новий нод – майбутній міст між двома шматками

 

2. Виділіть новий нод, пересуньте його до верху сходів (Як показано було в ранніх коригуваннях), потім виділіть найближчий до нього нод і натисніть кнопку ( + ), підсумок:

25.jpg
Тепер з'єднані 2 шматки між собою

 

Однак у грі це буде виглядати не дуже добре, якщо NPC або мутант полізе сходами, але допускати роз'єднання сітки не можна, за цим вибором немає. Також можна перетягнути нод-"міст" на центр сходів і повернути його (через звичайний інструмент повороту на панелі інструментів):

26.jpg
Повернутий нод

 

Швидше за все це трохи прикрасить переміщення NPC сходами, але на практиці невідомо. -_-

Підсумок

На цьому все! Після всіх правок, AI карта повинна бути відточена до дрібниць, не мати глюків і помилок, NPC і мутанти будуть тинятися скрізь, де належить, та й інші хороші речі. Зверніть увагу: AI сітка не повинна мати розривів (Наприклад, AI сітка в будівлі не з'єднана з AI сіткою на террейні) - будуть вильоти xrAI . Між ними обов'язково має бути хоча б один нод, що з'єднує два шматки. Можна зібрати сітку AI і скомпілювати.


   
Цитата