Просмотр полной версии : fullvulnmod generator
spellbinder
24.06.2013, 16:10
Эта тема создана для обсуждения и доработки генератора визуализации уязвимых зон в справочнике кораблей.
Ссылка SH3_fullvulnmod_generator.zip (2.5mb) (https://dl.dropboxusercontent.com/u/23315607/PublicFileUp/game/SH3/SH3_fullvulnmod_generator.zip)
Пример работы 168696168697
Основные жалобы:
*работает не у всех.
У кого не работает - отписывайтесь.
*берет информацию не из ship.zon и Zones.cfg
Пытаюсь распарсить ship.zon, если у кого есть описание формата - скиньте.
Тут мне пришло ЛС, что мод работает на SH2. Вероятно у серии SH одинаковая структура. Если так, то изучив их структуру, можно сделать мод универсальным, под все игры серии SH. Это также скорее всего потребует дополнительной доработки, но если нужно - все будет.
Anvar1061
02.07.2013, 01:29
SSS
На SН4 тоже работает.Но есть,наверно,порог обрабатываемой информации.Приходится дробить на части папку большого объема.
spellbinder
03.07.2013, 12:27
Скорее всего проблема в нарушении атомарности - модуль, который запускает потоки, имеет недостаточно жесткую логику. Переписываю.
Но следует проверить и буфер - там в заголовке счетчик, если он значительно меньше, чем кораблей в игре, значит проблема в начале программы, но там ошибок что-то не видно.
Anvar1061
03.07.2013, 13:05
SSS
В SILЕNT HUNTER III+GWX 3.0+др.корабли (всего 238) папка Sеа 10,6 Гб.
spellbinder
03.07.2013, 13:37
Много. Придется качать самому. Сейчас потестю на голой SH3 обновленный вариант, если все пройдет нормально - обновлю ссылку.
spellbinder
03.07.2013, 13:54
Вообще отлично. 40 с лишним кораблей отработал за секунду. Работает моментально. На чистой игре ошибок нет(в смысле нет таких глюков как у тебя или их не видно). Видит не все корабли, из 50 с лишним всего 40-45. Так и должно быть - видит только те, у которых есть cfg с зонами. Попробуй потести на своей сборке SH3.
Посмотрел zones.cfg - там просто характеристики каждой зоны, очки здоровья и т.п. общие для всех кораблей. Для мода файл бесполезен, обрабатывать его смысла нет. Если только на его основе высчитывать степень уязвимости разных точек, и помечать цветом или цифрой - тут мол всего 5 жизней, а тут 120.
ship.zon - вообще непойми что, какие-то фигуры, координаты. Нужно как-то распарсить и посмотреть что же там такое. Возможно их имеет смысл обрабатывать, но пока внутрь не загляну - точно сказать не смогу.
В общем все ясно - ship.zon содержит 3D-координаты, размеры, форму и тип областей корабля, типы и их характеристики описаны в zones.cfg
Обрабатывать их очень заманчиво - в теории можно получить точные (с точностью до пикселя) 2D отпечатки всех уязвимых зон, и иметь полное представление о них. На практике из этих 191 типов нужно всего лишь 5-6. Плюс пока непонятно как их парсить - реверсю.
Anvar1061
03.07.2013, 15:07
SSS
Твоя прога с конфгами работает.Посмотри на Subsim.com тема недавно всплывала Thomsen parameters APP bla...bla...bla... h.sie тоже с конфигами судов колдует,но их нужно выдрать из каждой папки.Замануха.
Anvar1061
03.07.2013, 15:18
SSS
Отставить!Всё перепутал:Stiеbler с sim-файлами работает.
spellbinder
03.07.2013, 16:14
Да, моя прога работает с конфигами. Только почему-то не у всех кораблей там прописаны уязвимые зоны.
Ну как, глюки старые остались?
Anvar1061
03.07.2013, 19:10
SSS
я говорю не о мелочах,а о глобальном проекте.
...
Посмотрел zones.cfg - там просто характеристики каждой зоны, очки здоровья и т.п. общие для всех кораблей. Для мода файл бесполезен, обрабатывать его смысла нет. ...
Неверно мыслите, товарищ... zones.cfg понадобится вам для соответствия номеров узлов и их текстовых названий... так как в ship.zon как вы уже догадались присутствуют только номера узлов/зон.
ship.zon - вообще непойми что, какие-то фигуры, координаты. Нужно как-то распарсить и посмотреть что же там такое. Возможно их имеет смысл обрабатывать, но пока внутрь не загляну - точно сказать не смогу.
...
В ship.zon вас должны интересовать Boxes - трёхмерное представление уязвимых узлов/зон корабля... степень их защиты, указанная там же для данной программы не нужна.
... главная ценность программы - создание текстового и графического файлов из ship.zon, который нередко редактируется и пользователю требуется немного поломать голову, чтобы превратить инфо о зонах в текстовую и 2D информацию.
SSS
Твоя прога с конфгами работает.Посмотри на Subsim.com тема недавно всплывала Thomsen parameters APP bla...bla...bla....
В этом случае Stiebler решил продолжить редактирование параметров влияющих на физику поведения подлодки/судна на воде/волнах - контроллер unit_Submarine/unit_Ship, взяв за основу мод Thomsena... модов на эту тему было много... почему взят этот мод ?
spellbinder
06.07.2013, 18:23
Неверно мыслите, товарищ... zones.cfg понадобится вам для соответствия номеров узлов и их текстовых названий... так как в ship.zon как вы уже догадались присутствуют только номера узлов/зон.
В ship.zon вас должны интересовать Boxes - трёхмерное представление уязвимых узлов/зон корабля... степень их защиты, указанная там же для данной программы не нужна.
Я это уже понял. Но названия проще зашить жестко, т.к. их понадобится ограниченное количество - пушки, надстройки нас не интересуют, только уязвимые зоны - погреба, топливные цистерны, двигатель, киль и рули с винтами.
Про boxes я догадался, файлы отреверсил, могу распарсить и получить список из координат и типов зон.
Теперь следующая проблема - координаты то есть, их легко преобразовать в 2D, можно делать проекцию сбоку и спереди/сзади. Но относительно чего они отсчитываются? Как их привязать к рисунку? Надо думать. Думаю отрисовать секции одного корабля и наложить их на картинку этого корабля - так можно найти смещения, и от них уже плясать. Наверняка они тоже будут целым числом, что-то типа 32 или 64, или 128
:D
Для примера... открой в S3D ship.zon и ship.dat... выдели в ship.dat основной конструктив... включи Model Preview и в просмотрщике включи кнопку Toggle Zones Editor... выдели любой box и наслаждайся.
spellbinder
07.07.2013, 19:18
Устранил глюк, когда не работает отрисовка. Это из-за пробелов в пути до игры или до папки, куда сохраняется мод. Взял в кавычки - теперь работает. Обновление доступно по ссылке в первом посте.
spellbinder
07.07.2013, 20:01
Хм. Странно. Координаты винтов и рулей даны в иной системе координат - при наложении они получаются где-то в переднем трюме, тогда как остальные блоки отрисовываются верно. И зон у рулей/винтов в s3d вообще не видно. В игре можно выбить рули и винты, или нет? Если нет - то их и отрисовывать не нужно. Если да - нужно смотреть к чему идет привязка их системы координат.
Разобрался - да, рули и винты отрисовываются каждый в своей системе координат, их оси видно в s3d. Нужно искать, к чему идет их привязка, чтобы верно высчитать смещение.
Anvar1061
08.07.2013, 08:27
SSS
Теперь работает как часы.
...
Разобрался - да, рули и винты отрисовываются каждый в своей системе координат, их оси видно в s3d. Нужно искать, к чему идет их привязка, чтобы верно высчитать смещение.
В ship.zon та же (parent/child) иерархия связей, что и в основном ship.dat... ориентируйся на ID/Parent ID объекта.
spellbinder
09.07.2013, 00:03
В ship.zon та же (parent/child) иерархия связей, что и в основном ship.dat... ориентируйся на ID/Parent ID объекта.Да, иерархию могу вытащить, и построить связи. Очевидно где-то прописано смещение системы координат предка относительно родителя, ищу где именно - там 12 байт координат должны быть.
Если они окажутся в zon - будет хорошо. А то придется еще и dat реверсить.
Подозрительные места в zon вроде как нашел, нужно проверять, координаты ли это или мусор.
Если корабль задуман как разрушающийся объект (при определённом количестве "хитов" "раскалывается" на две части), то корневой объект, как правило, целый корпус/hull корабля в качестве дочерних которого имеются передняя (суффикс F) и задняя (суффикс B) части корабля... и, например, винты являются принадлежностью задней части, а не целого корпуса... отсюда и некоторая сложность пересчёта, i think.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot