В продолжение темы выкладываю новую версию моего декомпилятора студиомоделей отдельно от движка Xash3D FWGS.
Из изменений:
- Исправлен сдвиг UV-координат (снова).
- Исправлен сдвиг анимаций.
- Исправлены некоторые баги с путями.
- Исправлен вывод значения $texrendermode masked_solid.
- Вместо значения $texrendermode nosmooth теперь выводится smooth.
- Добавлен вывод motion types используемых в Paranoia 2.
- Добавлена поддержка моделей скомпилированных с параметром $fixedcoords.
- Добавлена поддержка моделей скомпилированныхс параметром $boneweights.
- Добавлен подсчет значения $sequencegroupsize.
- Добавлен вывод значения $flags.
- Добавлен вывод имени контроллера для контроллера рта.
- Добавлена поддержка сохранения текстур в формате TGA.
- Добавлено создание директорий заданых пользователем.
- Добавлена поддержка моделей защищенных от декомпиляции.
- Добавлены опции:
- для отдельной директории для анимаций.
- для отдельной директории для текстур.
- отключения вывода motion types с префиксом "L".
- отключения фикса сдвига UV-координат.
- отключения вывода лога.
- отключения проверок размера.
- показа номера версии.
- показа справки.
- Добавлены готовые сборки для:
- Windows x86_64(amd64)
- Linux armv7(armhf)
- Linux armv8(arm64)
- Linux RISC-V 64-bit
- Linux PowerPC64(little endian)
- Linux Elbrus 8c(e2k-8c)
- MacOS x86_64(amd64)
- MacOS armv8(arm64)
- Удалены обратные слэши из вывода.
- Удалены строки с префиксом "ACT_VM_" из activities.txt.
- В данный момент вывод .qc-файла похож на вывод crowbar.
- Внесены мелкие оптимизации.
nekonomicon писал: Добавлена поддержка моделей защищенных от декомпиляции.
Ну вот, кто-то старался, защищал, а ты ему всё малину испортил
Хорошая кстати штука, возможно она мне скоро пригодится.
Это быстрее чем модельвьювер писать с редактором.
Да нет конечно, в CSO модели шифрованные, да и там формат MDL20/MDL21, но были мысли заморочится и с ним.
Просто есть модели, которые не декомпилируются ни старым mdldec, ни crowbar, там не печатные символы напиханы в имена текстур, костей и анимаций, либо просто специальные символы которые в именах файлов использовать нельзя.
nekonomicon писал: А еще один человек из команды NextClient переписал мой декомпилятор на go.
Это вообще зачем? Переписывание ради переписывания. Конечно, мб, чел так свой скилл прокачивает, но практической пользы в этом нет. Зачастую, все эти переписывания приводят в большому падению производительности и увеличению веса программы. А ещё начинают требоваться всякие фреймворки, которые не нужны, и которых года до 2005 вообще в не существовало.
Цитата:
nekonomicon писал: там не печатные символы напиханы в имена текстур, костей и анимаций, либо просто специальные символы которые в именах файлов использовать нельзя.
Так это же не защита от декомпиляции, а просто ламерство. Лечится через HEX-редактор заменой нехороших символов.
Добавлено 16-04-2025 в 22:12:
Вообще, по поводу того, что в именах файлов использовать нельзя. Ну это в винде нельзя. А линуксы много чего переваривают.
Ku2zoff писал: Это вообще зачем? Переписывание ради переписывания. Конечно, мб, чел так свой скилл прокачивает, но практической пользы в этом нет. Зачастую, все эти переписывания приводят в большому падению производительности и увеличению веса программы.
Ну не знаю, обратной связи от их команды не было, просто готовый билд был обнаружен на их сайте.
А так да, программы на go действительно довольно огроменные и могут медленно работать из-за излишнего количества проверок границ и сборщика мусора.
В любом случае, сообщества HL и Quake странные, все вместо того, чтобы кооперироваться, предпочитают делать мертворожденные форки на свой лад.
А так я некоторые вещи бэкпортировал обратно, ну и SNMetamorph, Aynekko, Qwertyus и casperx69x помогли обратной связью.
Цитата:
Ku2zoff писал: А ещё начинают требоваться всякие фреймворки, которые не нужны, и которых года до 2005 вообще в не существовало.
VCL существует с 95-го года, и наверно уродлевее фреймворка я еще не видел.
Цитата:
Ku2zoff писал: Так это же не защита от декомпиляции, а просто ламерство. Лечится через HEX-редактор заменой нехороших символов.
Ну не знаю, кто-то когда-то даже гайд писал по такой "защите", но в любом случае моддерам проще будет с такими моделями в итоге работать.
Цитата:
Ku2zoff писал: Вообще, по поводу того, что в именах файлов использовать нельзя. Ну это в винде нельзя. А линуксы много чего переваривают.
Да не, в *nix тоже некоторые символы использовать нельзя, список поменьше конечно, но то, что набор символов ограничен - факт.
Визуально может и нет, но у него не оправданно переусложненный код, по крайней мере в его исходниках можно найти странные конструкции, с другой стороны, его начали писать еще под Win 3.1 и OS/2, и в последствии уже написаный код почти не меняли.
nekonomicon писал: но у него не оправданно переусложненный код
Сложноватый, да. HeadShot во многом развивался для того, чтобы поддержать все языковые конструкции VCL, которые к слову могут использоваться только и исключительно там и больше нигде.
Но разумеется если я вводил в язык какую-то фичу для VCL, то старался чтобы она была юзабельна везде. В отличие от того же Delphi, где действительно могли что-то сделать только для VCL. И юзеру это уже толком использовать было нельзя. Тот же dynamic_call например.
Цитата:
nekonomicon писал: по крайней мере в его исходниках можно найти странные конструкции
Ku2zoff писал: Это случайно не модели из анимешно-китайского CS: Online от компании Nexon? Помнится, они в моделвьювере Джеда открывались как лютая абракадабра.
Таки скачал эту пакость в стиме. Удивительно, но модели открываются нормально во всех модельвьюверах Точно помню, что лет 10 назад, после распаковки из nar-архива, модели были набором треугольников в джедсе. (после декомпила и компила становились норм, зуб даю). Видимо, авторы просто забили на шифрование. А может это особенность стим-версии. К сожалению, не получилось распаковать японскую пиратку. Как её паковали и что делали - мне непонятно. Даже всемогущий 7-zip не переваривает эти архивы.