Моддер покращує систему кастомізації в GTA San Andreas. Розповідаємо, як це змінить моддинг гри

28 вересня 2022
Arsvoboda

Моддер White Black створює велику модифікацію, яка змінює движок GTA San Andreas, значно покращує кастомізацію та геймплей. Для нашого сайту він поділився подробицями проекту.


Зміни в системі нанесення татуювань

Система кастомізації в GTA San Andreas сильно обмежена. Її головною проблемою є блендинг текстур. Пікселі накладаються один на одного, і текстури змішуються. Так працюють зачіски, татуювання, одяг для торса. У GTA 5 система для одягу така ж, але татуювання там вже накладаються декалями поверх моделі тіла.

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

Реалізувавши систему декалей, можна вирішити дві проблеми відразу: роздільна здатність може бути будь-якою (навіть меншою, ніж у оригінальної текстури, що дасть приріст до продуктивності, завантажуватися текстура буде в рази швидше), текстура буде розподілена по всьому полотну. На тілі текстура може бути розширена, повернута і намальована в будь-якому місці. Декалі являють собою полігони, які знаходяться в тому ж місці, де й оригінальна модель. І щоб не завантажувати для цього окремий .dff з полігонами, на яких повинна буде відображатися татуювання, автор написав алгоритм процедурної генерації.

Моддер розділив торс на три частини: торс, ліва рука, права рука. Кожній з цих частин присвоєно різний колір матеріалу. За цим кольором движок визначає, якою частиною тіла є той чи інший полігон. Так виглядають текстури татуювань у GTA 5. Нічого зайвого, тільки татуювання.

Приклади переміщення татуювання по тілу, її масштабування і поворот.




В оригінальній грі для цього довелося б проводити роботу в фотошопі. У моді це реалізується на програмному рівні. Автор додав для моделей другу UV карту, з якою проводяться маніпуляції. Таким чином, текстура без проблем може деформуватися.

Декалі — це копія моделі. У цьому випадку процедурно згенеровані алгоритмом, але вони не завжди займають всі полігони тіла. В алгоритмі присутня функція видалення непотрібних полігонів. На картинках білим кольором позначені ті полігони декалі, які будуть обрізані разом зі своїми вершинами. Виходить, чим більша декаль за розміром, тим більше полігонів вона використовує.



Система декалей планується не тільки для татуювань, але й для одягу, щоб наносити на неї різні малюнки. Це дасть можливість перефарбовувати сам одяг, залишаючи незмінним малюнок, або перефарбувати малюнок в окремий колір.

Метод процедурної генерації за швидкістю працює швидше, ніж завантаження і блендинг геометрії .dff файлу. Блендинг геометрії потрібен, щоб персонаж міг ставати мускулистим або ж товстим. Декалі для татуювань генеруються на основі вже готової геометрії, що пройшла блендинг. Це означає, що татуювання будуть працювати на абсолютно будь-якому тілі персонажа, незалежно від його статури.




Порівняння татуювання, намальованого методом блендингу (спосіб, що використовується в оригінальній грі), і згенерованої декалі. Для того, щоб досягти такого ж результату, як на другій картинці, необхідно збільшити роздільну здатність текстури тіла, а потім збільшити роздільну здатність татуювання до такого ж рівня.

Функція прекрасно працює і з іншими моделями. Наприклад, фото з оголеним торсом і футболкою. Татуювання обрізалося на рукаві так, як і повинно.



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

Моддер також планує додати можливість набивати татуювання на ноги та голову. Там також є система налаштування кольору RGBA.

Зміни в кастомізації одягу

Роздільна здатність одягу тепер також не залежить від роздільної здатності текстури тіла. Також більше не потрібні прозорі ділянки в тому місці, де використовується тіло. Модель може використовувати кілька текстур. Гра бере інформацію з кольору матеріалу і, спираючись на це, призначає полігону або текстуру тіла, або текстуру одягу. Така ж система працює і з ногами.

Наприклад, ноги (їх частина без одягу) використовують окрему текстуру. Білі труси також були винесені в окрему текстуру. Це означає, що одяг на ногах тепер не повинен містити текстуру шкіри і взагалі може мати будь-яку роздільну здатність. Також, завдяки цьому, була виправлена помилка з колінами на шортах. Модель одна, а текстури дві. Шорти тут використовують одну текстуру, а ноги — іншу.

Воротник футболки зроблений у 3D. Це також фішка проекту.

Моддер реалізував можливість носити окуляри і маски разом. Він додав нові слоти: під сумки, рукавички, серйги.

На стадії тестування зміна одягу під відкритим верхнім одягом, як в GTA Online. Під цією курткою можна носити абсолютно будь-яку футболку, або ж майку. А можна і зовсім нічого не носити.


Також, одяг буде мати параметр налаштування RGB кольору (можна буде фарбувати певні частини одягу, наприклад, рукави в один колір, а торс — в інший).

Вуса, бороди і зачіски

Бороди і вуса були відведені в окремий слот. Тобто, тепер бороду можна носити з абсолютно будь-якою зачіскою, вони не залежать один від одного. А ще, їх можна ось так от перефарбовувати в перукарні. Для 2D борід можна змінювати параметр насиченості. Бороди також можуть бути в 3D. Модель волосся тепер відокремлена від моделі голови. І текстура також містить лише волосся, без обличчя. Це зроблено для того, щоб модмейкери могли створювати нові модифікації на гравця без зайвих труднощів.


Оптимізація ігрових процесів

Код ребілду був оптимізований і прискорений. Наприклад, був доданий бінарний пошук хешів моделей і текстур у player.img. При зміні будь-якого елемента одягу відбувається повне видалення всіх текстур і моделей, їх завантаження знову. Тепер же, при зміні текстури тієї ж футболки, буде видалена і завантажена лише текстура необхідної футболки, а не перебудова персонажа в цілому.

Також для одягу більше не обов'язково мати 3 клампа (normal, fat, ripped), як в оригіналі. Він може мати від 1 до 3 клампів. Обов'язково, щоб один з них був Normal. Це теж зроблено в цілях оптимізації, адже не всі моделі змінюються в залежності від мускулистості або повноти персонажа. (наприклад, кепки). Така оптимізація скорочує розмір файлу в 3 рази і прискорює завантаження.

Зараз, щоб створити хороший мод з підтримкою кастомізації, необхідно визначитися з роздільною здатністю текстур, а потім змінювати кожну текстуру і редагувати ряд моделей. У B1ack_Eng1ne для цього необхідно лише змінити модель голови і відредагувати чотири текстури (текстури торса, ніг, ступень, обличчя). І, все, всі інші елементи редагувати не потрібно, вони будуть працювати як належить, адже вони не залежать від тіла, як в оригінальній грі.

У планах моддера додавання масштабування і повороту окремих моделей, а також генерація парних моделей — сюди відносяться, наприклад, серйги (необхідно зробити лише одну модель на лівій частині, а другу на правій вже згенерує сама гра). Те ж саме стосується і взуття. Все це полегшить кінцевий .dff файл і дозволить додати додаткові елементи кастомізації.

У наступній статті ми розповімо про систему завантаження модифікацій, яка буде присутня в даному проекті.

Рейтинг: 0 (0 голосів)

Рекомендуемые файлы