PDA

Просмотр полной версии : 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
я говорю не о мелочах,а о глобальном проекте.

Anvart
05.07.2013, 21:09
...
Посмотрел 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

Anvart
07.07.2013, 00:00
: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
Теперь работает как часы.

Anvart
08.07.2013, 15:19
...
Разобрался - да, рули и винты отрисовываются каждый в своей системе координат, их оси видно в 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 вроде как нашел, нужно проверять, координаты ли это или мусор.

Anvart
09.07.2013, 10:24
Если корабль задуман как разрушающийся объект (при определённом количестве "хитов" "раскалывается" на две части), то корневой объект, как правило, целый корпус/hull корабля в качестве дочерних которого имеются передняя (суффикс F) и задняя (суффикс B) части корабля... и, например, винты являются принадлежностью задней части, а не целого корпуса... отсюда и некоторая сложность пересчёта, i think.