Після виходу допису Oleksandr S, я вирішив доповнити відповідь до питання: «А чому так мало ігор з механікою руйнування середовища, предметів чи персонажів? Раніше ж робили, а зараз один Battlefield віддувається (і то погано)». І щоб трохи більше зануритись у створення компʼютерних ігор, покажу кілька прикладів розробки цікавих речей у двигуні Unreal Engine 5.
За кілька років до всіх відомих подій, я чисто заради себе вивчав програмний двигун UE4 (про UE5 ще тоді і мова не була). І якось до мене прийшла ідея – А зроблю я частину свого району так, щоб можна було руйнувати обʼєкти на ньому. А заодно і сюжет, інтерфейс користувача та інші речі, необхідні для підняття навичок і пошуку нової роботи. Ідеї є – навичок немає. Але через 2 тижні я випадково вирішив подивитися, чи є взагалі робота на UE в Києві. Емм, ну 1-2 місця…. і я викинув це з голови. Стоп, я відволікся 😉
Так ось, самим простим варіантом для руйнації було використання технології Nvidia APEX. Ось вам посилання, дійсно багато тексту 😀. Як там і написано, в UE4 є лише 2 компоненти цієї системи: APEX Destructibles та APEX Cloth. Перша відповідала за Lord of Destruction, інша – за фізику одягу. Ну, цього для базового розуміння роботи явно буде достатньо.
Як майже відразу виявилося з гайдів – APEX Destructibles немає за замовчуванням у звичайному клієнту UE4, який можна завантажити з офіційного магазину. «Просто класно» подумав я, і поліз качати Visual Studio і робити інші «яжпрограміст» дії, щоб запрацював цей APEX. Після чергової компіляції коду самого UE4 таки вдалося APEX увімкнути.
Зате я зрозумів, як вмирають SSD у програмістів. Мій Samsung 970 Evo Plus 512 GB за ці 3-4 компіляції по 40+ хв втратив 5% ресурсу.
А що? Відео 9 (!) річної давнини дає приблизне уявлення про APEX Destructibles. Робили раніше ігри, не те що зараз 😉
Зміст
Подивившись відео (чи лише превʼю) видно, що на обʼєктах немає текстур та інших крутих слів від 3D дизайнерів. Але це лише зовнішня оболонка. Внутрішня більш складніша. Про це і буде мова.
Обʼєкт повинен бути ЗАЗДАЛЕГІДЬ роздроблений на частини. Тому в редакторі потрібно поділити стіну/скло/дерево. В UE4 була можливість автоматично вибрати, на яку кількість частинок «розбивати» обʼєкт. І тут наче легко, але дуже довго – кожен наш обʼєкт відкриваємо у візуальному редакторі та вписуємо необхідну кількість кількість уламків.
Але у нас обʼєкти можуть бути абсолютно різноманітними: стовп дерева, різні стіни/стелі/поли/вікна зі склом, металічні діжка чи деревʼяні коробки. І про людей не забуваємо. І тут починається робота Nvidia PhyX чи вбудованого редактора фізики – кожен з вище перерахованих має свої фізичні особливості. І тут ми відкриваємо інше вікно та починаємо гратися з налаштуваннями умовної фізики. Наприклад, стріляємо кулею у скло. Скло ми вже «розбили» заздалегідь, але розлітається воно як бетонна стіна. А це різні матерії. Ось і налаштовуємо 🙂
Як бачимо, всередині кавуна, УВАГА, є мʼяка частина та насіння. Хоча це 1 текстура всередині. Хоча про MGS буде окрема частина в цьому дописі.
Візуальна частина чи «відчуття прекрасного». Після всіх цих налаштувань починається одна з найскладніших частин – візуальний та аудіодизайн. А саме:
А об’єктів у грі може бути не одна тисяча. І ось, після всього цього ми зрозуміли – не все так просто, як здавалося на початку 🙁
Зі своєю історією знайомства я завершив, тому перейдемо до практики на прикладі декількох відео пояснень по UE5.
З виходом UE5 зʼявився новий інструмент для руйнації – Chaos Destruction. Точніше, він був ще в UE4 як Бета-тест, але настільки криво працював, що стандартний проєкт у мене навіть не запустився. Тому зараз розглянемо пару відео, щоб зрозуміти що і як робити в сучасних реаліях та в цьому новому інструменті.
Дивимось на перше відео, де руйнують Венеру Мілоську (експерти підкажуть). Нам показують: розбиття статуї на частини, збереження нової копії, налаштування умовної(!) фізики об’єкта, робота гравітації над нею та застосування іншої моделі над вже частково зруйнованою Венерою.
Як бачимо, базові речі варті 3 хв часу. Але в ньому немає як мінімум однієї речі – текстур всередині обʼєкту. А з цим нам допоможе відео нижче аж на 26 хвилин.
Звісно, з цього відео нам потрібна невелика частина про текстури, але багато розповідається про Chaos Cache Collector, який допоможе вам зберегти результат для повторення одного і того ж руйнування в майбутніх ефектах. Оптимізація все ж таки. Тому ця «фіча» є корисною.
Але нам може бути і цього не достатньо. Тому на UE Marketplace в продажу є така річ – Next Gen Destruction Toolkit. Можете його купити (25 чи 50$) і вивчати до посиніння. Там є багато чого, що нам знадобиться для «вбивці Battlefield чи R6: Siege”.
Звісно, вам ніхто не забороняє самому Гуглити необхідні речі. Я ж тут не гайди пишу, а більше для загального ознайомлення для більшості людей. Тому продовжимо далі і візьмемо кілька ігор, бо мені так захотілося та Youtube запропонував подивитися кілька відео 😉
Дивлячись на відео з кавуном вище та на прикладі нижче, постає резоне питання – невже в грі настільки сильно «подріблені» обʼєкти? Явно є якийсь секрет в такій точності «різання» ворогів.
Після перегляду всіх відео від розробників MGS:R Platinum Games, Youtube запропонував подивитеся ЦЕ:
І хоча воно на Unity, але сам факт того, що це можна повторити в домашніх умовах – дає надію, що КОЛИСЬ ця механіка НАЙТОЧНІШОГО ШИНКУВАННЯ ворогів на Дикому Заході повернеться.
Поки я дивився і шукав на Youtube про руйнування, мені зустрівся цей ролик від маньяка?:
Роботів шкода ;(
І я зі своїм довгодумством через кілька днів згадав про Dead Space. Якщо пригадуєте основну особливість гри – для перемоги над монстрами потрібно відстрілювати їм кінцівки. І хоча у відео відстрілюють у людиноподібної істоти (ще й скільки крові!), то вже ігри про зомбі без цих ефектів виглядають якось по-дитячому.
Як і писав раніше, Руйнування – річ важка та затратна на час. А час – це гроші. В сучасних іграх саме з цих причин і не додають таку механіку. А якщо і додають, то удають, наче це ВАУ-механіка (передаю привіт для Finals). Якщо ж якийсь довбень буде щось казати про “недостатні технічні можливості сучасного заліза” – можете відправляти його на всі 4 сторони із запитанням “10 років тому вистачало, так чому зараз не вистачає?”.
Дякую Олександру, що нагадав про цю річ. Без нього, я б і забув про це 😉
Під кінець кину музику яка сидить у мене в голові вже кілька днів 😉
Взагалі, я думав робити дописи цікавих мені новин кожен тиждень. Третина цього допису була в “тих новинах”. Але не так сталося, як гадалося і вирішив поділити той “невиданий допис” на частини з більшим розширенням матеріалу.