Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Модификации (https://mafia-game.ru/forum/forumdisplay.php?f=9)
-   -   Изучение и архитектура .rep файла катсцен (https://mafia-game.ru/forum/showthread.php?t=1423)

Kardini 02.03.2023 02:12

Изучение и архитектура .rep файла катсцен
 
Вложений: 2
Всем добрый день. Как-то раз я отписывал уже благодарность к Golod55 за его .doc файл с попыткой изучения катсцен. Это действительно хорошая работа, которая местами помогла нам продвинуться в нужном направлении.

А посему - настало время возвращать долги.

Пока что прикрепляю в виде ссылки на статью в ВК с описанием структуры, а так же прикладываю 2 скрипта
1. Скрипт на C# с использованием элементов Unity3d (Там Юнити отвязывается очень легко, но писал для себя в первую очередь)
2. Паттерн, для программы ImHex, позволяющий свободно через него загружать и вполне удобно редактировать Хексом любую уже имеющуюся катсцену.

Статья: https://vk.com/@mafiape-rozetskii-rep-kamen-katscen
В виде Word Документа https://disk.yandex.ru/i/QyUcafwcNOtqsQ
Забугорная English version https://disk.yandex.ru/d/fdRd5RE15Z0mFA

Пример
https://youtu.be/dN1wbrFiMr0

P.S. Как будут силы, сяду за написание того чего знаю в плане корректной интерпретации и чтения данной катсцены.

Kardini 04.03.2023 19:58

Вложений: 1
Пока пытался понять логику переменных автомобиля - сделал вот такую упрощенную дебаг катсцену. Содержит всего 2 ключевых кадра для камеры и точки, куда камеры смотреть и 1 объект "автомобиль Томми" с 10 ключевыми кадрами.

Довольно просто с её помощью дебажить, разбираться как это работает и изгаляться над машиной как тебе угодно.

Плохая новость - я хрен его знает что эти за unk Значения внутри машины.
Пока что из актуальных гипотез - похоже на флаги какие-то побитовые на самом деле. Например последний байт unk1 безумно похож на коробку передач. Я подозреваю, что они машины буквально в игре записывали как геймплей внутренним demo_record, который был вырезан после.

GOLOD55 05.03.2023 13:40

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

Kardini 06.03.2023 07:39

Цитата:

Сообщение от GOLOD55 (Сообщение 19635)
Машины в роликах "играются" не как акторы, а как фреймы.
Так, чтобы сделать едущую машину, чехам пришлось перемещать\вращать ее запчасти как фреймы.
Отсюда, кстати вылезла проблема с неправильным положением кардверей в роликах у замененых моделей автов.

Я в сфере моддинга не так давно и не до конца понимаю логику движка LS3D. Объясните в чем разница actor и frame?
Для меня это 2 одинаковые вещи, потому что я отталкиваюсь от концепции Юнити3д как GameObject с позицией, кватернионом и внешними скриптами, которые могут на этот самый объект влиять.

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

GOLOD55 06.03.2023 10:14

фрейм - енто объект, разные типы есть: модель, саунд, свет и т.п., а актор - все остальное: спецсвойства, напр. физика автов, поведение челов[задает список программ, которые доп-но обрабатывают объект].

Kardini 27.06.2023 07:16

Вложений: 1
Вкачусь в эту тему, будет как небольшие дневники с заметкамим. Они менее посвящены катсценам, но плодить темы... Такое себе.

Есть у нас условный класс CHuman (Как он назывался в ваниле неизвестно). Он имеет в себе 2 переменные анимаций. Каждый номер отвечает за определённую анимацию.

Вот список, полученный реверсом, когда я экспериментировал с модификацией катсцен.
Публичный гугл документ со всем

С чем я именно вкатился еще дополнить? В Game.exe довольно хардкодом в самом конце записан этот самый список.
Вложение 2470

GOLOD55 29.06.2023 22:55

видны невооруженным взглядом над списком адрес каждой анимации, напр 248A6400 - адрес анимки pumpar.i3d

Kardini 30.06.2023 05:08

Цитата:

Сообщение от GOLOD55 (Сообщение 20174)
видны невооруженным взглядом над списком адрес каждой анимации, напр 248A6400 - адрес анимки pumpar.i3d

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

Видеоролик к пояснениями.
Таблица с номерами анимаций

Таблица с добавочными анимациями, которые кладутся поверх номерных.

Ну и напоследок по старой доброй памяти - список всех анимаций из катсцен.


Если есть какие-то вопросы на которые я могу ответить - буду рад подсказать :)

GOLOD55 30.06.2023 10:14

а что за прога в ролике?

Kardini 30.06.2023 11:14

Цитата:

Сообщение от GOLOD55 (Сообщение 20177)
а что за прога в ролике?

Binary Ninja. На рутрекере есть актуальная версия довольно неплохая
Программ сейчас 3 штуки основных.
IDA - сейчас лично для меня вообще не обновляется, безумно мощная, но боже, какая же она в плане использования новичками неудобная. Мне прям страшно её было запускать - безумный комбайн. В последний раз такой страх испытывал перед 3Ds Max на старте, да перед Фотошопом в детстве.
GHidra - безумно крутой, опенсурсный и бесплатный инструмент, но нет дебаггера для Мафии
Binary Ninja - платная (пирачу, грешен), но при этом актуальная и развивается тоже. И есть реалтайм дебаггер, работающий с игрой. В целом её интерфейс безумно простой, но при этом довольно наглядный. Безумно блин удобно внутри неё сразу все структуры прокидывать.

А, ну и конечно мой любимый Cheat Engine. Без него и 1/10 весёлых вещей я не смог бы найти.


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

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