This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема с совместимостью одежды: как правильно подбирать arms / torso / undershirt?

Biss1

Новый участник
16 Сен 2026
3
0
3
Всем привет.
Столкнулся с проблемой при работе с одеждой для freemode-персонажей.
Некоторые верхние элементы одежды отображаются некорректно: в районе плеч, рук и других частей тела появляются участки кожи/модели персонажа, которые проходят сквозь одежду.
Пример проблемы прикрепил на скриншоте.
Насколько я понимаю, проблема связана с тем, что для определённого drawable верхней одежды необходимо правильно подбирать соответствующие:
  • arms
  • torso/top
  • undershirt
  • возможно, определённые комбинации компонентов одежды
Сейчас приходится подбирать значение рук практически вручную для каждого элемента одежды.
Хотелось бы узнать, как обычно решают эту проблему на крупных проектах.
Есть ли какой-нибудь стандартный способ определить, какой arms drawable должен использоваться с конкретным top drawable?
Например, существует ли таблица соответствий GTA V / freemode clothing, какие-нибудь данные из .ymt файлов или другой способ автоматически определить правильную комбинацию?
Также интересует, как лучше реализовать это на сервере:
top drawable -> нужный arms drawable
или существует более правильный способ работы с совместимостью одежды?
Проблема встречается как с обычной GTA V одеждой, так и при добавлении дополнительной одежды.
Буду благодарен, если кто-нибудь объяснит принцип работы или подскажет, где можно посмотреть соответствия компонентов одежды.
 

MrJagger

Активный участник
19 Янв 2025
112
27
65
Выше тебе кинули таблицу соответствий торса к одежде. Качаешь его, кидаешь в папку, и потом парсишь через функцию. Я это реализовал так:
JavaScript:
const torsoDataMale = require("../data/besttorso_male.json"); // мужская одежда
const torsoDataFemale = require("../data/besttorso_female.json"); // женская
const clothesPositions = require('../data/enablePositionChangeClothes.json'); // зоны, где можно поменять одежду

function applyTopWithBestTorso(player, topDrawable, topTexture, sex, key) {
    if(!isPlayerValid(player)) return;

    const zone = isPlayerInClothesZone(player);
    const isServerCall = key === 'enServer'; // Доверяем, если функция вызвана со стороны сервера

    if (!isServerCall && !zone) return; // если функция вызвана НЕ со стороны сервера, отменяем

    let torsoData = 0;
    if(sex === 0) { torsoData = torsoDataMale; }
    else { torsoData = torsoDataFemale; }
    const topInfo = torsoData?.[topDrawable]?.[topTexture];

    // Устанавливаем верх
    player.setClothes(11, topDrawable, topTexture, 0);

    if (topInfo && topInfo.BestTorsoDrawable !== -1) { player.setClothes(3, topInfo.BestTorsoDrawable, topInfo.BestTorsoTexture, 2); }
    else {
        player.setClothes(8, 15, 0, 0);
        player.setClothes(3, 15, 0, 2);
    }
}

// использование
applyTopWithBestTorso(player, 15, 0, 0, 'enServer');
 

Similar threads