Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Модификации (https://mafia-game.ru/forum/forumdisplay.php?f=9)
-   -   Характеристики авто и их редактирование в RHAM 5.3.3. (https://mafia-game.ru/forum/showthread.php?t=143)

Screper 27.06.2023 11:16

Вложений: 1
[QUOTE=AngryBabka;20165]Господа автоделы, а такой вопрос - кто-нибудь когда-нибудь делал анимированную рулевую трапецию[quote]

Да делал я так) Даже раллийный Камаз с этой фичей был. Да, визуально видно, что тяга двигается вместе с колесами. Но увы, все нормально только когда машина стоит и на ровном месте. Получается, что у машины спереди два моста, а это гемор с их настройкой. И да, на неровностях они работают по-разному, то есть тяга начинает жить отдельной жизнью. Все остальные костыли с доп.колесами приводят к багам с камерой. И нужно правильно называть мосты по-порядку, иначе машина багутеся в машинопедии. И колеса должны поворачиваться на одинаковый угол, иначе тяга будет вылетать с одного конца.
Короче, багов и костылей получается больше, чем профита) Не стоит оно того.

AngryBabka 27.06.2023 20:17

Screper, я еще пробовал думесы псевдомостов располагать на сошках рулевой трапеции (DWH_2 в месте крепления к кузову, DWH_3 в месте крепления к тяге), а сами сошки сделать подвижными и засунуть в DWH_2, и это было прикольнее всего - сошки поворачиваются, центральная тяга вслед за ними параллельно оси Х по правильной траектории. Но вот беда - при моем расположении элементов тяга всегда ездит в сторону, противоположную нужной))
Еще одна неприятная особенность - чтобы всё работало, в рхам обязательно нужно подгружать настройки для конкретной машины, иначе машина вообще не поедет. Дефолтные настройки тоже не катят. Всё это делает затею очень юзер-анфрендли, так что подвижная трапеция в релиз не войдет, да и не видно ее толком всё равно. А вообще прикольно конечно, Мафия опять удивила простором для костылей)

Screper 27.06.2023 20:45

Цитата:

Сообщение от AngryBabka (Сообщение 20168)
Screper, я еще пробовал думесы псевдомостов располагать на сошках рулевой трапеции (DWH_2 в месте крепления к кузову, DWH_3 в месте крепления к тяге), а сами сошки сделать подвижными и засунуть в DWH_2, и это было прикольнее всего - сошки поворачиваются, центральная тяга вслед за ними параллельно оси Х по правильной траектории. Но вот беда - при моем расположении элементов тяга всегда ездит в сторону, противоположную нужной))
Еще одна неприятная особенность - чтобы всё работало, в рхам обязательно нужно подгружать настройки для конкретной машины, иначе машина вообще не поедет. Дефолтные настройки тоже не катят. Всё это делает затею очень юзер-анфрендли, так что подвижная трапеция в релиз не войдет, да и не видно ее толком всё равно. А вообще прикольно конечно, Мафия опять удивила простором для костылей)

Ой, забывать я уже начинаю всю эту трахомудию) Колеса поворачиваются вокруг центра думмиса. Мост привязывается к центру колеса, а не думмиса. Если центр колеса не совпадает с центром думмиса, он смещается, а вместе с ним и мост. А в настройках машины мост считается по колесам. Которые должны быть названы по порядку от начала машины 0, 1, 2, 3 тд. В дефолтных характеристиках прописаны только два первых моста. А остальные работать не будут. Так что если в передней части машины вот так будет скостылено несколько колес и мостов в одной куче, то, и не будет это нормально работать, там еще с чем-то глюки были, не помню уже.

AngryBabka 27.06.2023 21:49

Блин точно, возможно имело смысл развернуть оси колес псевдомостов, может направление движения трапеции изменилось бы. Ну да ладно, всё равно забил уже

Kardini 25.07.2023 02:46

Так как тема схожая, поэтому напишу здесь.
tyres.bin очень схож с тем, что редактируется в vehicle через RHam

Я для Hex Редактирования использую ImHex, потому что бесплатный + можно перегнать в C# код и написать свою читалку. Прикрепляю паттерн для чтения

Развернуть для просмотра


Цитата:

struct WheelData{

float totalForce,underSteer,Force, unk,adhesion1,adhesion2,adhesion3,adhesion4,rollingFriction;
};

struct WhlPart{


u32 number;
u32 size;

if (size==76)
{WheelData normal, broken;}
else
{float whlValues[(size/4)-1];}


u16 unk3,ID;
};


struct Wheel{


u32 size;
char name[32];
u32 flagID;
u32 count;
WhlPart part[count];

};

struct Header{

u32 id, wheelCount;
Wheel whl[wheelCount];
};

;

Header wheel @ 0x00;

[свернуть]


А вот то, как оно висит в памяти самой игры. Числа будут идти через пробел, но схожесть заметить вполне реально

Развернуть для просмотра

Цитата:

//Звёздочками пометил те, которые прям 1 к 1 соотносятся с тем, что есть в tyres.bin

*20000.00 0.14 *0.80 *40.00 *0.80 *1.50 0.70 *0.50 *1.50 1.00 *0.02
*10000.00 0.19 *0.70 *40.00 *0.30 *1.10 0.80 *0.30 *1.00 0.70 *0.10

20000.00 0.14 0.80 40.00 0.80 1.50 0.70 0.50 1.50 1.00 0.02
10000.00 0.19 0.70 40.00 0.30 1.10 0.80 0.30 1.00 0.70 0.10

[свернуть]


И вот теперь уже за ячейки в памяти игры - я готов расписать. Учитывайте, что это вольная интерпретация и лично меня и соотнесите плз с чужими.

Развернуть для просмотра

1. Общая сила. Максимальная сила давления на колесо.
2. Жесткость колеса. (Lerp) - чем меньше тем сложнее зайти в занос
3. Множитель скольжения. Не до конца разобран
4. Число 40. Не используется. Я не смог добиться у игры, чтоб это число она запрашивала
5. Число 0.8 Не используется. Я не смог добиться у игры, чтоб это число она запрашивала

6. Общий множитель
7. Скольжение
8. Число 0.5 Не используется. Я не смог добиться у игры, чтоб это число она запрашивала
9. Боковой занос. Множитель поперечной силы
10. Сила отдачи при скольжении. Множитель
11. Сопротивление качению.
[свернуть]


Что еще могу сказать. Автор MEditor успешно и правильно читает все эти значения. Игнорирует число 40, потому что оно и не влияет. Но вот с интерпретацией у него тяжко. Потому что он предполагал, что оригинальная игра будет использовать формулу Pacejka

Kardini 19.08.2023 08:37

Джентельмены. Мне нужны ВСЕ возможные opis'и из RHAM.
Кто угодно какие делал - будьте так любезны, если у кого-то есть архивом, поделитесь. С меня довольно прикольный инструмент.

Screper 19.08.2023 13:36

Вложений: 2
Цитата:

Сообщение от Kardini (Сообщение 20314)
Джентельмены. Мне нужны ВСЕ возможные opis'и из RHAM.
Кто угодно какие делал - будьте так любезны, если у кого-то есть архивом, поделитесь. С меня довольно прикольный инструмент.

А зачем все-то? Ошибочные старые тоже что ли?

Kardini 20.08.2023 06:49

Цитата:

Сообщение от Screper (Сообщение 20317)
А зачем все-то? Ошибочные старые тоже что ли?

Да, их тоже можно. Ну потому что я в самой последней описи тоже вижу противоречия и несостыковки. Поэтому есть желание собрать наиболее большой список описаний и мнений на каждую переменную.

ЖЕКА42rus 24.10.2023 23:29

Цитата:

Сообщение от Kardini (Сообщение 20314)
Джентельмены. Мне нужны ВСЕ возможные opis'и из RHAM.
Кто угодно какие делал - будьте так любезны, если у кого-то есть архивом, поделитесь. С меня довольно прикольный инструмент.

Самый прикольный инструмент - если получится прокачать прогу RHAM 5.3.3 до такого уровня, чтобы можно было редактировать настройки автомобиля прямо в игре. Те же программы для San Andreas, и особенно, для GTA 5, это без проблем позволяют.

Kardini 26.10.2023 05:52

Цитата:

Сообщение от ЖЕКА42rus (Сообщение 20514)
Самый прикольный инструмент - если получится прокачать прогу RHAM 5.3.3 до такого уровня, чтобы можно было редактировать настройки автомобиля прямо в игре. Те же программы для San Andreas, и особенно, для GTA 5, это без проблем позволяют.

Как ни странно - это буквально и есть, то над чем я работаю на протяжении уже 5 месяцев. Разметил колёса, после разметил автомобиль в оперативной памяти.

Сейчас разбираю в одиночку что за что отвечает, поглядывая в дизасемблированный код и составляю таблицу. Уже сейчас можно спокойно открыть версию Мафии 1.0 в Cheat Engine и модифицировать как угодно (главная проблема - куча темных пятен все еще и лишь гипотез)

RHam не работает напрямую. Значения преобразовываются, умножаются, делятся, перегоняются в относительные уже от модели итд итд. Я откровенно раскопал уже некоторые моменты, которые полностью противоречат имеющийся opis'и.
Все в процессе, скорее всего после выкачу прикольную дебаг утилиту с наглядной визуализацией.

UPD: Если кто-то желает активно присоединиться к реверсу (А это буквально методом тыка разбирать переменную и писать *ощущения*), то без проблем целый гайд запишу

GOLOD55 26.10.2023 12:19

Мм вехиклес.бин(с чем работает рхам) и то что в памяти(в кар_акторе) - во многом разные вещи.
Основные настройки рхам могёт изменять: мосты там и прочее, а чего еще критически не хватает?
А в игре изменять авте что хочется? Есть параметр кот. можно назвать "мощностью движка" - енто реально забавная хрень - тачку умощняет, причем, качественно[походу, ето коефф в некой финальной формуле расчета мощности], а большего как по мне и не требуется.

Kardini 26.10.2023 13:24

Цитата:

Сообщение от GOLOD55 (Сообщение 20518)
Мм вехиклес.бин(с чем работает рхам) и то что в памяти(в кар_акторе) - во многом разные вещи.
Основные настройки рхам могёт изменять: мосты там и прочее, а чего еще критически не хватает?
А в игре изменять авте что хочется? Есть параметр кот. можно назвать "мощностью движка" - енто реально забавная хрень - тачку умощняет, причем, качественно[походу, ето коефф в некой финальной формуле расчета мощности], а большего как по мне и не требуется.


Могу таблицей поделиться :) . Я это делаю с целью реверс инжениринга и дальнейшего портирования для мобильной Мафии. Менять особо не хочу, но понимать значение переменных и то как оно работает НА САМОМ деле - мне крайне интересно. Посему и распутываю данный клубок.

Насчёт того, что в Кар - разные вещи это и и да и нет :D
Из 8000 байт около 4000к выделены буквально под данные из vehicles.bin. И они уже пре старте сцены друг с другом перемножаются, модифицируются итд. :)

GOLOD55 26.10.2023 17:51

Хм че-то 8к и 4к большие числа, вроде блок авто в венике меньшее чем 4к размером.
Если портировать оригинальное, то нужно сперва переносить все программы кар_актора(их там десятка полтора-два), и даж не вникая в них, потому как все кешированные данные ими юзаются и под них составлены. Затем уже разбирать каким образом происходит кеширование. Наверно проще свой код писать изначально :)

Kardini 27.10.2023 09:24

В общем в своей группе ВК уже выкладывал, поэтому скрывать мне особо то нечего

Условно парни MafiaHub назвали 2 структуры. CVehicle - как абстрактная "техника" и CCar - уже именно актор автомобиля, который как раз в себя и включает CVehicle внутри.

https://docs.google.com/spreadsheets...o-0/edit#gid=0 - веду в видe excel таблички. Задаю нейминг каждой переменной прям сейчас. Может быть вульгарный мат и прочие нецензурные выражения. Просьба не пугаться. Работа идёт в активном процессе прям сейчас, некоторые переменные будут переименовываться, комментарии (делаю сугубо для себя) будут еще несколько раз точно переписываться.

https://miro.com/app/board/uXjVM0Z8M...d=691336836956 - Miro для наглядности основных функций с просчетом физики автомобиля. Так же постепенно активно расширяется, если нахожу что какие-то переменные работают еще с чем-то.

В зависимости от входящего поинтера в Miro - я указываю разные sub_ Либо это car_ либо vehicle_ дабы понимать с каким участком памяти идёт работа.

Модифицирую обычно и дебажу через Cheat Engine. Можно и другие варианты использовать - дело вкуса.

P.S. https://docs.google.com/spreadsheets...iMM/edit#gid=0 - Структура колёс. Тоже тёмных пятен хватает и нейминг местами там тоже условный.

GOLOD55 28.10.2023 11:46

Вложений: 1
Kardini, тересные гуглдоки, любопытно было почитать их и мои запыски_натуралиста:) правда, за давностью лет уже сам мало что помню(хорошо что записи и есть).
Немалой инфой можно доки дополнить, ок, приатачиваю рар с опр.моими доками.
Мои доки не структурированы(raw), ибо писалось все прям находу по ходу пьесы, так что где-то местами инфа может повторяться\дополняться; есть и про актор тачки, и про колеса в том числе, и многое другое тересное.
Единственное, про Miro я не понял зачем ента диаграмма и какую пользу она несет(а трудов составить стоила немалых, думаю). Коллы из каких-то мест программ в другие программы хм, дак ентой кухни там миллион хех.
То что в моем глоссарии обозначено как "метка класса" есть ни что иное как поинтер на список всех программ данного класса(можно канеш и юзать как идентификатор класса тоже), напр у C_Car их 42 штуки.

Kardini 28.10.2023 21:12

Цитата:

Единственное, про Miro я не понял зачем ента диаграмма и какую пользу она несет(а трудов составить стоила немалых, думаю). Коллы из каких-то мест программ в другие программы хм, дак ентой кухни там миллион хех.
Так как как ни странно моя задача коллов - понять именно *физику* автомобилей, то в целом умеренно приемлимо для моей задачи опустить расчеты ИИ, расчеты Графики с вызовом фреймов Мафии, расчеты партиклей, звуковых фреймов и многого многого другого. Здесь диаграмма именно в большей мере - набор именно функций, которые отвечают именно за симуляцию авто. Часть из которых будет отсеиваться, часть из которых наоборот будет добавляться по мере необходимости и понимания кода.

Просто вектор моих задач сейчас вполне себе идёт в общем направлении с мододелами и работая сам я вполне могу по мелочи, но помочь мододелам проще собирать и редактировать автомобили. Как и редачить понимать назначения без абстрактных "мощность в килловат" (Не в претензию составителям RHAM таблиц)

P.S. За записки Натуралиста спасибо огромное :D

GOLOD55 29.10.2023 00:41

Я окунался в дербан екзе тоже из-за моддинга авто: когда в рамках проекта "real driver"(3.0) уперся в потолок скриптовых возможностей мафы. Тогда мы с Asm-ом в итоге релизнули 2 проекта - MafiaPatcher и MSE(MafiaScriptExtention).
Правда, реалдривер4.0(на расширенных уже скриптах) я так и не релизнул, ибо чуток перестарался с дербаном екзе и стартанул проект реалдривер5.0 - компиляция версии 4.0 непосредственно в ассемблер_код в екзе :)
Т.о. мой интерес не столь в продолжении дисассемблирования екзе, сколь - в ассемблировании новых функций и механик для авты.
Базовые необходимые для ентого вещи уже реализованы("регистрация" новых спецфреймов, расширение размера кар_актора и вписка новых их данных, инжект логики для них); есть тестовый екзе с работающей спиид_стрелкой на панели авты.
Юзалки прошарены на процентов 90 уже, можно в принципе делать новые(напр юзалку откр\закр багажник), добавлять чего не хватало(напр работа створчатых дверей тролля), 3D-гусиницу можно скомпилить из скриптверсии, уже можно сделать складную морфкрышу и т.п.

ЖЕКА42rus 10.03.2025 21:39

[QUOTE=Screper;20167][QUOTE=AngryBabka;20165]Господа автоделы, а такой вопрос - кто-нибудь когда-нибудь делал анимированную рулевую трапецию
Цитата:


Да делал я так) Даже раллийный Камаз с этой фичей был. Да, визуально видно, что тяга двигается вместе с колесами. Но увы, все нормально только когда машина стоит и на ровном месте. Получается, что у машины спереди два моста, а это гемор с их настройкой
А рессоры в Мафии работают как мягкое тело, или как рычаг?
Тот же вопрос касательно пружин.

Screper 11.03.2025 13:17

Вложений: 1
Цитата:

Сообщение от ЖЕКА42rus (Сообщение 21888)
А рессоры в Мафии работают как мягкое тело, или как рычаг?
Тот же вопрос касательно пружин.

Рессоры делятся на половинки и "оформляются" как два рычага, направленых друг на друга и на думмис между ними. Оси располагаются в кронштейнах, синие оси ориентируются на думмис. Поскольку рычаг растягивается при работе подвески, то и пружины так же оформляются как рычаг. Только их центр располагается сверху, в чашке, а синяя ось направлена вниз на думмис. И при перемещении колеса пружина-рычаг будет сжиматься и растягиваться за колесом.


Текущее время: 07:56. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot