«Смертна кара» — щоденник розробки #4

Автор: Будеркевич Іван

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

Трішки теорії про невидимі стіни

1111Певен, у іграх ви часто натикалися на “невидимі стіни”, котрі змушують вас тримати обраного розробниками шляху. Дратують вони не самовито, згоден. Та зараз погляньмо яким же чином гравця замикають у меншому просторі, ніж бачить ваше око.  В ігровому світі є Меші та Колайдери. Меш — це видима нами тривимірна модель. Колайдери, або колізії, — це невидимий об’єкт, який симулює фізичні зіткнення. Тобто крізь меш сам по собі ми спокійно можемо проходити, а от колізія — це якраз ота “невидима стіна”. Часто колізія не повторює форму меша. Це буває з різних причин. Наприклад, для того, щоби герой не застрягав. До речі, “застрягнути в текстурах” неможливо, застрягають саме в колізії! Також є триґери. Триґер — це теж невидимий об’єкт, але він не симулює фізику, а реєструє об’єкти, які входять в поле дії триґера. Фактично це така собі позначка, перетнувши яку, ми запускаємо певну подію у грі. Гадаю найпростіший приклад — це знайоме всім місце в NFS Most Wanted, де наша BMW ламається. Певен, всі його знають і багато хто пробував за допомогою чітів перескочити його =) Так от, там є триґер, який спрацьовує один раз, коли ми туди заїжджаємо на початку гри.

Суть проблеми

1111Раніше у нас була досить проста система пострілів. Коли гравець клацав лівою кнопкою мишки, створювалася куля (а точніше сферичний колайдер) в центрі камери. “Кулі” надавався імпульс, внаслідок чого куля потрапляла в ціль, завдавала пошкоджень і знищувалася. Цей спосіб дозволяв враховувати при пострілі земне тяжіння, вітер, дальність польоту та решту фізичних факторів. Та був у нього один недолік. У грі є зони аномалій, де блукає велика кількість зомбі. Ці зони позначені великим триґером. А в триґері кулі знищувалися. Тобто там фіксувалося зіткнення одразу, коли об’єкт створювався. Я не знав, як цього було уникнути, та й ризик був, що таке трапиться в іншому місці. Тому довелося повністю переробити систему пострілів.

Я обожнюю UE4

1111

UE4 чудовий рушій!  Реалізацію пострілів вирішено було робити за допомогою Line trace. Це проста лінія, яка реєструє перетинання її з іншими об’єктами. І що найважливіше, вона не фіксується триґером! Ба більше, лінія до всього видає досить багато інформації. Зокрема, фізичний матеріал об’єкта зіткнення, координати перетину та ще купу всякого. За наявності цих даних, є змога розійтися на повну. Далі нам потрібно реалізувати ефекти від пострілу. Звісно, постріл у воду має інший ефект, ніж влучання у метал. Для цього нам потрібно декілька масивів (масив —це впорядкований набір фіксованої кількості однотипних елементів).Три, якщо точніше: ефекти пострілу, фізичні матеріали та декалі. Кожний елемент масиву має порядковий номер. Нам потрібно просто при кожному пострілі здійснювати пошук по масиву з фізичними матеріалами, знайти, за яким порядковим номером знаходиться даний фізичний матеріал, та поставити відповідні ефект і декаль дірки від кулі  в точці перетину Line trace з об’єктом. Система досить проста, але дієва. Більше того, можна зробити так, щоби куля пробивала певні матеріали. Не певен, чи це потрібно буде, але штука класна!

Замість висновків

Відверто кажучи, на словах воно дуже просто звучить. Але допетрати до таких речей самому деколи важко. Наступного разу будемо розмовляти про інтерфейс.

«Смертна кара» — щоденник розробки #3

Останні статті

ГІ*НО: перші враження від Diablo IV

Автор: PlayUA

Diablo IV Beta

Вижити будь-якою ціною. Враження від першого тому манґи «Левіафан»

Автор: Лук'янчук Орест

Манґа Левіафан

Українські самураї локалізують Total War: Shogun 2 і шукають однодумців

Автор: PlayUA

Total War Shogun 2

Буде гірше. Чому «Шалений Макс: Дорога гніву» актуальний для нас, як ніколи

Автор: Олег Куліков

Mad Max: Fury Road / Шалений Макс: Дорога гніву (2015)

Підбірка вдалих альтернатив Vampire Survivors, що вийдуть незабаром!

Автор: PlayUA

Yet Another Zombie Survivors

Підсумки Paradox Announcement Show 2023: Cities: Skylines 2 і тактика у стилі Індіани Джонса

Автор: Євгеній Сусло

Cities Skylines 2

Українська студія ByOwls розробила VR-гру Rival Rides

Автор: PlayUA

Rival Rides

Від Nioh до Wo Long: Еволюція найкращого Souls-like

Автор: PlayUA

Wo Long Fallen Dynasty

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: