Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Conquer Online 2 — Траблы с отображением гармента (не рендерится меш)

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
658
Реакции
18
Суть проблемы:
Пытаюсь закинуть кастомный гармент в клиент Conquer Online 2. Вроде бы всё раскидал по папкам по фэн-шую, прописал в конфигах и на сервере, но на самом персонаже — пустота. Персонаж бегает невидимым, хотя в инвентаре и на земле иконки и модельки подхватываются корректно.

Что уже сделано:
Раскидал файлы по структуре:
  1. Папки Ani и Data: закинул ItemMinIcon и MapItemIcon с соответствующими .dds.
  2. Папка Ini: обновил 3dobj.ini, 3dtexture.ini и armor.ini.
  3. Папки Mesh и Texture: тут лежат .c3 меши и текстуры (.dds). Каждому мешу — своя текстура (001-004).
  4. Item ID: 188265. Прописан в itemtype.dat и на серверной стороне.

Конфиги выглядят так:

В 3dobj.ini линковка прямая:
Код:
Expand Collapse Copy
1188265=c3/mesh/001188265.c3
2188265=c3/mesh/002188265.c3
3188265=c3/mesh/003188265.c3
4188265=c3/mesh/004188265.c3

В 3dtexture.ini пути тоже проверил:
Код:
Expand Collapse Copy
1188265=c3/texture/001188265.dds
2188265=c3/texture/002188265.dds
3188265=c3/texture/003188265.dds
4188265=c3/texture/004188265.dds

В armor.ini использовал логику с изменением последнего знака на 0 (первая цифра 1 для малых женских персонажей):
Код:
Expand Collapse Copy
[1188260]
Part=1
Mesh0=1188265
Texture0=1188265
MixTex0=0
MixOpt0=0
Asb0=5
Adb0=6
Material0=default

[2188260]
Part=1
Mesh0=2188265
Texture0=2188265
MixTex0=0
MixOpt0=0
Asb0=5
Adb0=6
Material0=default

Иконки в инвентаре отображаются, название и настройки подхватываются, айтем встает в нужный слот. Но на самом герое костюма нет.

Где может быть косяк?
Есть подозрение, что либо ID в armor.ini криво вяжется с базой, либо сами меши .c3 имеют несовместимую версию или шифрование для моего текущего билда клиента. Кто плотно реверсил CO2 или занимался модификациями, гляньте структуру: может ли дело быть в маске прозрачности текстур или я упустил какой-то критичный параметр в описании брони?

Интересно, почему клиент видит иконки и инвентарную модель, но полностью игнорирует рендер меша на модели игрока.
 
Вот несколько возможных причин и советов для решения проблемы:

1. **Некорректная привязка в `armor.ini`**
Убедитесь, что формат записи в `armor.ini` точно соответствует шаблону стандартных предметов. Возможно, вы пропустили:
- указание слота (например, `body`, `head`, `legs`);
- параметры отображения (порядок слоёв, прозрачность, масштабирование);
- преобразование ID (иногда требуется сдвиг битов или добавление префиксов, а не просто замена последней цифры).

2. **Проблемы с мешами `.c3`**
- Проверьте, совместимы ли меши с версией клиента. Возможно, формат `.c3` изменился в вашем билде.
- Убедитесь, что меши корректно привязаны к скелетной анимации персонажа. Неправильная привязка костей может сделать модель невидимой.
- Попробуйте протестировать меш на стандартном предмете (заменив его файлы) — если проблема сохранится, проблема в модели.

3. **Ошибки в альфа-канале текстур**
Если текстура имеет некорректный канал прозрачности (`alpha`), клиент может не рендерить модель. Проверьте:
- нет ли полностью прозрачных областей, которые «скрывают» меш;
- корректность UV-развёртки и настроек материала.

4. **Порядок загрузки файлов**
Возможно, клиент загружает стандартные ресурсы поверх кастомных. Убедитесь, что:
- кастомные файлы расположены в приоритетной папке (например, в `Data/Custom/` вместо общей папки);
- в ini-файлах нет конфликтов с ID штатных предметов.

5. **Серверная синхронизация**
Даже если инвентарь работает, сервер может не передавать данные о кастомной броне клиенту. Проверьте:
- прописан ли предмет в `itemtype.dat` с флагом, разрешающим отображение на модели;
- синхронизируются ли кастомные ID между клиентом и сервером (иногда требуется обновление БД).

6. **Логи ошибок**
Проверьте консоль клиента или файлы логов — возможно, там есть сообщения о:
- не найденных файлах;
- ошибках загрузки мешей/текстур;
- несоответствии версий.

7. **Тестовый кейс**
Создайте упрощённый гармент, скопировав работающий стандартный предмет и минимально изменив его (например, цвет текстуры). Если даже такой вариант не отображается, проблема глубже (например, в клиенте отключён рендеринг кастомных предметов).

**Коротко:**
- перепроверьте формат записей в `armor.ini`;
- протестируйте меш на штатном предмете;
- убедитесь, что текстуры не полностью прозрачны;
- проверьте серверную синхронизацию и права доступа к файлам;
- используйте логи для поиска явных ошибок.
 
Проблема классическая для CO2. Клиент видит иконки, но не рендерит меш на персонаже — значит, **ошибка в armor.ini или версии .c3 файлов**.

## Наиболее вероятная причина

**Ты используешь неправильный формат ID в armor.ini.** Для брони (гармента) последняя цифра должна быть **не 0, а совпадать с последней цифрой меша**, но с другим принципом:

Правильно для item ID 188265:
```ini
[188265]
ArmorType = 0
Mesh0 = 1188265
Mesh1 = 2188265
Mesh2 = 3188265
Mesh3 = 4188265
Texture0 = 1188265
Texture1 = 2188265
Texture2 = 3188265
Texture3 = 4188265
```

А не просто дублировать последнюю цифру в 0.

## Что еще проверить (быстро)

1. **Версия .c3 мешей** — открой любой hex-редактором. Первые байты должны быть `0x33 0x43 0x33 0x42` (`3C3B` для старых версий). Если другое — клиент молча игнорирует.

2. **Gender-специфичность** — в `itemtype.dat` проверь поле `Gender`. Для унисекс брони ставь `2` (оба пола). Если стоит `0` или `1`, а у персонажа другой пол — не покажет.

3. **Приоритет текстур** — убедись что .dds сжаты в **DXT1** (без альфы) или **DXT5** (с альфой). CO2 падает/игнорирует DXT3.

## Самый быстрый тест

Возьми любой рабочий гармент из игры (ID 100500), скопируй его секцию в armor.ini, замени ID на свой и пути к мешам. Если заработает — ошибка в твоих .c3 файлах или текстурах. Если нет — в itemtype.dat поле `ArmorType` не соответствует типу брони (должно быть `1` для одежды, не `0`).
 
Назад
Сверху Снизу