Автор Тема: Экстры транспорта  (Прочитано 3138 раз)

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Экстры транспорта
« : Июнь 20, 2019, 12:24:19 pm »
Решил создать тему про экстры, чтобы собрать материал. Интересует такой вопрос - у экстр почему-то отключен хром, даже если присутствует в модели. Есть некоторое объяснение этому - если экстра содержит прозрачность, буквы на кузове например, то хром ее портит, освещая весь прямоугольник текстуры, в том числе и прозрачные участки. Но это поправимо в самой модели отключением хрома. А вот когда экстра является частью кузова, то без хрома смотрится плохо. Я попробую раскопать, можно ли вернуть хром на экстры и напишу здесь. Если кто-то что-то знает по этому поводу, подскажите.

Вот еще некоторая информация по экстрам.
В default.ide есть параметр Comprules, он принимает значения 0, 1f10, 2ff0, 30123345, 4fff. Это тип отображения экстр, принимающий после преобразования (& f000 >> 12) значения 0, 1, 2, 3, 4:
1 = 1f10 & f000 >> 12
2 = 2ff0 & f000 >> 12
3 = 30123345 & f000 >> 12
4 = 4fff & f000 >> 12

Первые три - это комбинации нескольких экстр в машине при определенных условиях, некоторые реагируют на дождь. Подробнее можно посмотреть по коду функции 0x579670 CVehicleModelInfo::ChooseComponent() или поэкспериментировать в игре. А вот 4fff - это обязательное отображение одной из экстр, для этого требуется заложить все 6 экстр в модель. Таким образом, экстрами можно делать не только мелкие дополнения, но и модификации кузова, а тут уже хотелось бы восстановить хром. Можно конечно добавить свои компоненты с хромированными экстрами и чередовать, но возможно проще найти место отключения хрома.

Можно также внедриться в генератор парковок 0x5A7163 CarGeneratorDoInternalProcessing() и создавать машину с нужной экстрой, изменяя номер экстры в адресе 0x699538 до выполнения этой функции. Например можно поставить в аэропорт автобус с экстрой маршрута именно аэропорта, или поставить на стройку грузовик именно со строительной экстрой. Минус в том, что под большие экстры должен быть разный col-файл, но это не так важно.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Экстры транспорта
« Ответ #1 : Июнь 20, 2019, 02:48:24 pm »
К сожалению, почти не изучал эту тему, но буду следить за результатами!

Оффлайн kenking

  • Новичок
  • **
  • Сообщений: 237
  • Репутация: +16/-0
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #2 : Июнь 21, 2019, 10:26:59 am »
Цитировать
Интересует такой вопрос - у экстр почему-то отключен хром, даже если присутствует в модели.
Есть такое дело. Причину не разбирал.

Инфа по экстрам https://gta.com.ua/forum/index.php?showtopic=4952

Код переписанной функции ChooseComponent https://github.com/kenkingGitHub/GTA-Projects/blob/master/VC_NewChooseComponent/VC_NewChooseComponent.cpp

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #3 : Июль 11, 2019, 10:26:21 am »
Инфа по экстрам https://gta.com.ua/forum/index.php?showtopic=4952

Посмотрел инфу. Выложу сюда результаты своих многочисленных тестов для вайса, а вы сами решайте, соответствуют они описанному или нет. Тестировалось на модели с 6 экстрами. В описании у меня экстры будут обозначаться 0, 1, 2, 3, 4, 5, 6, где 0 - отсутствие, 1 - extra1, ... , 6 - extra6. Можно применять эту информацию при моделировании, не заморачиваясь о слотах.

Тип 0 (Comprules 0) - одно из 0, 1, 2, 3, 4, 5, 6



Тип 1 (Comprules 1f10) - обязательно 1 или 2 в сочетании с 0, 3, 4, 5, 6. Пустышек нет.



Тип 2 (Comprules 2ff0) - без дождя как тип 0, в дождь обязательно 1 (тент) в сочетании с 0, 2, 3, 4, 5, 6.



Тип 3 (Comprules 30123345) - 0, 2, 3, 4, 5, 6, а также 2 или 3 в сочетании с 4, 5, 6. Никогда не проявляется 1 экстра.



Тип 4 (Comprules 4fff) - 1, 2, 3, 4, 5. Никогда не проявляется экстра 6. Пустышек нет.



Если я прав в своих выводах, то можно обнаружить интересные особенности в стандартной игре по каждому типу экстр.
Тип 1 представлен таксишками taxi, cabbie, kaufman, zebra с двумя обязательными экстрами - фонарями taxi на крыше, видимо изначально планировалось сделать по два разных фонаря.
Тип 2 спортивные stallion, stinger, sabre, sabretur, comet, deluxo. К сожалению экстра-тент реализована только у stallion, видимо остальные тоже планировались с тентами.
Тип 3 только у гольфкара caddy. По моим тестам получается, что экстру 1 в трафике не увидеть. Вот как она выглядит, в остальном это левые 2, 3 и правые 4, 5, 6 сумки.



Тип 4 есть у flatbed. Первоначально у flatbed было создано 5 экстр (модель flatbedbak), потом добавлена 6, повторяющая 1, но она так и не отображается. Также есть гоночные машины этого типа hotrina, hotrinb, bloodra, bloodrb с 6 экстрой, которая не встретится в трафике или на парковке. Вот такие:



Скрытые экстры - 1 для типа 3 или 6 для типа 4 можно задать принудительно при создании машины. Возможно они есть в миссиях, я не проверял, а возможно просто отсутствуют в игре.
« Последнее редактирование: Июль 11, 2019, 10:46:02 am от xanser »

Оффлайн kenking

  • Новичок
  • **
  • Сообщений: 237
  • Репутация: +16/-0
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #4 : Июль 11, 2019, 12:53:29 pm »
Цитировать
По моим тестам получается, что экстру 1 в трафике не увидеть.
Надо поменять расклад экстр в наборе 30123345 на такой 31203345, экстра 1 должна появиться.

Цитировать
Выложу сюда результаты своих многочисленных тестов для вайса
В остальном всё соответствует и моим тестам.

Цитировать
Тип 4 (Comprules 4fff) - 1, 2, 3, 4, 5. Никогда не проявляется экстра 6.
В самой функции такое ограничение для этого типа.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Экстры транспорта
« Ответ #5 : Июль 11, 2019, 01:39:59 pm »
Цитировать
Тип 4 (Comprules 4fff) - 1, 2, 3, 4, 5. Никогда не проявляется экстра 6. Пустышек нет.
Колес тоже нет с этим типом?  :o
Хотя..
Цитировать
Тип 4 есть у flatbed.

Или это просто ты что-то нахимичил с колесами при съемке того скрина?

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #6 : Июль 12, 2019, 06:17:55 am »
Хотел дать практические советы по моделированию кузовов через экстры, но сам получил странные результаты, которые все портят и не соответствуют даже моим тестам.
По ссылке было сказано 1f10 - всегда одна из первых двух экстр, но что-то не так.



Я протестировал многочисленные варианты, и у меня при 1f10 получились такие 1+все кроме 2, 2+все кроме 1. Остальное кажется не вписывается в правило - отдельные 3 и 4, сочетания 3+4, 3+5, 4+5, 4+6.

kenking, если ты хорошо разобрался со слотами, посоветуй, как настроить слоты для следующих частых вариантов:
1) обязательные 1 или 2 экстра - отвечают за смену фар или решетки радиатора, а 3, 4, 5, 6 - необязательные рандомные мелочи
2) обязательные 1 или 2 или 3 экстра - отвечают за смену фар или решетки радиатора, а 4, 5, 6 - необязательные рандомные мелочи
3) 6 альтернативных кузовов грузовика без пустых шасси (тут бы подошел вариант 4fff для 5, или взломанная функция для расширения до 6, но может есть вариант через другую настройку слотов)

Или это просто ты что-то нахимичил с колесами при съемке того скрина?
Колеса не заменил, там 249 модель
« Последнее редактирование: Июль 12, 2019, 06:32:56 am от xanser »

Оффлайн kenking

  • Новичок
  • **
  • Сообщений: 237
  • Репутация: +16/-0
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #7 : Июль 12, 2019, 10:03:58 am »
Проверил сейчас на модели caddy. У неё 3 экстры слева, 3 справа. Очень удобно для тестов. Для "чистоты" тестов написал код, выводящий на экран номера экстр в слотах на транспорте возле игрока и спаунил эту модель.
Действительно, при настройке 1f10 не получается всегда нужного сочетания. Думаю, что дело в том, что во второй слот при такой настройке выбирается экстра выборочно из всех имеющихся вариантов (включая отсутствие второй экстры), поскольку не задан конкретный режим для второго слота.
Значит надо задать для второго слота своё правило.
Исходя из этого:
1) 35431f10 экстра 3 здесь получается исключается, можно её прописать во второй слот вместо любой из 4-6 или в первый, тогда получается настройка как для второго варианта
2) 35431210 прям идеальная настройка для этого варианта
3) здесь - да вариант 4fff для 5 экстр, либо изменять функцию, если 6 экстра какие-либо мелкие детальки или, например, груз в кузов, то можно эту экстру закинуть во второй слот с типом рандомного появления
3ff54fff - правда такой вариант я не тестировал

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #8 : Июль 12, 2019, 12:39:51 pm »
Спасибо за разъяснение, похоже стандартными вариантами не обойтись, хорошо, что работают свои. Я пока ждал ответ, немного еще потестировал и пришел примерно к таким же выводам, но есть некоторая разница с предложенным.

1) Вариант машины, где 1,2 являются чередующимися обязательными частями кузова, а 3,4,5 необязательными дополнениями (6 надо выкинуть из модели, ей уже нет места в слоте). Почему-то у меня есть зависимость от последовательности слотов. То есть такой вариант 34321f10 временами допускает пропадание 1, 2 в тестах, чего быть не должно. Подозреваю, что дело в проклятой букве f, создающей изредка пустышку. Вот например только экстра 4 (второй слот 4, а первый таки оказался пустой, несмотря на правило 1).



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

2) Вариант машины, где 1,2,3 являются чередующимися обязательными частями кузова, а 4,5,6 необязательными дополнениями. Тут согласен, но порекомендую опять же обратную последовательность 11203345

3) Вариант шасси с 6 чередующимися обязательными кузовами. Тут вопрос именно в том, чтобы смоделировать максимальное количество разных кузовов уже без мелких дополнений. Поэтому однозначно 4fff, но как уже предложено, со сломанной функцией или ограничиться 5 видимыми кузовами.
В дополнение скажу, что есть еще такой момент. Например нужно создать исключительную машину без экстры или с 6 экстрой, это можно сделать принудительно скриптом/кодом даже при 4fff, но кажется сбивается правило 4fff и в трафике начинают ездить пустышки, с этим надо быть осторожнее.

Оффлайн kenking

  • Новичок
  • **
  • Сообщений: 237
  • Репутация: +16/-0
    • Просмотр профиля
Re: Экстры транспорта
« Ответ #9 : Июль 12, 2019, 03:15:47 pm »
Цитировать
Но обратный вариант слотов 1f103432 проблем не выявил, рекомендую его. Возможно перестановкой я намного снизил вероятность появления пустышки, хорошо если бы исключил, но пока она мне не попалась.
Прописывать постоянные экстры в первый слот, а необязательные дополнительные во второй или наоборот - это без разницы. Если попадается пустышка в слоте с обязательным нахождением одной из первых двух экстр, то пропиши вместо f первую экстру на эту позицию 11103432.

Цитировать
В дополнение скажу, что есть еще такой момент. Например нужно создать исключительную машину без экстры или с 6 экстрой, это можно сделать принудительно скриптом/кодом даже при 4fff, но кажется сбивается правило 4fff и в трафике начинают ездить пустышки, с этим надо быть осторожнее.
Надо перед установкой экстры на создаваемую машину, считать значение переменной (два значения) CVehicleModelInfo::ms_compsToUse[2]. Установить свой вариант экстры на модель, создать машину и записать в эту переменную значение, которое там было. Думаю это решит вопрос.