Jump to content
Korean Random
Pepelaz

Как вскрыть файл с расширением havok?

Recommended Posts

35 минут назад, Pavel3333 сказал:

@MasterModeley а почему удалили свой репозиторий? был очень полезный материал...

 

Принцип, который там использовался, был не совсем правильный. После очередного обновления танков всё порушилось.

 

Как уже писал чуть выше, правильная и полная информация находится в репозитории https://github.com/blueskythlikesclouds/TagTools

 

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@MasterModeley а вообще, из этих файлов можно выделить модель или только данные по коллизиям?

Edited by Pavel3333

Share this post


Link to post

Short link
Share on other sites
56 минут назад, Pavel3333 сказал:

@MasterModeley а вообще, из этих файлов можно выделить модель или только данные по коллизиям?

 

Модели бронирования, которые у меня на сайте, как раз выделены из этого файла. Это, по сути, обычная 3D  модель с вершинами и поверхностями, в которой вместо цвета и текстур прописаны их физические параметры.

Share this post


Link to post

Short link
Share on other sites

@MasterModeley глянул репозиторий, а откуда ноги растут у импортов типа <Common/Base/Config/hkProductFeatures.cxx>?

 

Это части самого Havok'а? Где их можно найти? :)

Share this post


Link to post

Short link
Share on other sites

Раскурил эти TagTools.py

Забавная штука.

Блок TSTR == type strings, походу описывает названия типов(классов)

Блок TNA1 совпадает по структуре с описанным в в TNAM из TagTools (ну почти совпадает, одна из записей генерит номер строки очень большой, видимо надо какую-то маску применять, а всё остальное, похоже, что вычитывает правильно)

Блок TDBY - связан с FSTR (field strings), описывает структуру класса записанного в TNA1, но явно не совпадает с тем, что описано в TagTools.py.

 

Вообще если интерпретировать в лоб, берём запись из ITEM блока, читаем нужное количество данных (в которых ещё куча выравниваний) получается странная ерунда, из-за того, что элементы не всегда одного размера (выравнивания?)

И эта упаковка бесит, когда не понятно сколько байт отводится под каждый элемент.

 

А если собирать модели, на примере ИС7, у него ~589 записей, которые описывают вершины, и только 191 запись которые укладывают эти вершины в полигоны.

Кстати, кто-то осилел этот блок TBDY?

 

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

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Да что там за жесть в этом файле творится packedVertices, километр хрен знает чего в открытом виде хранить это норма. А как вершины - так сразу на, "упакованные"

Share this post


Link to post

Short link
Share on other sites

@MasterModeley привет, не подскажешь, это хоть правильное направление с хавоком? из packedVertices - выдрать 3 или 4 флоата, которые вершины описывают?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Я не знаю, как и что там на самом деле, но делаю так:

для packedVertices по 32 бита данных на вершину = 10 + 11 + 11

$tx = ( ( $packed & 0xFFC00000 ) >> 22 ) / 0x3FF; //
$ty = ( ( $packed & 0x3FF800 ) >> 11 ) / 0x7FF;    
$tz = ( $packed & 0x7FF ) / 0x7FF;

для sharedVertices по 64 бита данных на вершину = 22 + 21 + 21

$tx = ( ( $packed >> 42 ) & 0x3FFFFF ) / 0x3FFFFF;
$ty = ( ( $packed >> 21 ) & 0x1FFFFF ) / 0x1FFFFF;
$tz = ( $packed & 0x1FFFFF ) / 0x1FFFFF;

 

Получаются нормированные координаты. Масштаб и смещение подбирается из параметров 'codecParams' и/или 'domain'.

 

Найди меня в соцсетях или по почте [email protected]. Здесь я бываю редко и не всегда смогу ответить быстро.

Edited by MasterModeley
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

нужно открыть hkx файл. Я со скайрима, если что. Особо в кодинге не разбираюсь, но в цэлом всё написанное понял

Edited by crazy_F0X

Share this post


Link to post

Short link
Share on other sites
1 час назад, crazy_F0X сказал:

нужно открыть hkx файл. Я со скайрима, если что. Особо в кодинге не разбираюсь, но в цэлом всё написанное понял

 

Возможно, вам подойдёт вот это https://github.com/figment/hkxcmd

Edited by MasterModeley

Share this post


Link to post

Short link
Share on other sites

Вроде как установил всё, кроме sdk. И только из-за того, что надо обновить opencl, но пишет что он неправильный. (с бубном танцевал, не помогло

а как вообще открыть этот hkxcmd? Отдельная прога? У меня sin открывает только visual studio, а запустить не может.

 

  Причина в отсутствии sdk как я понял. Так бы и visual открыл. Sdk не могу установить, потому что нужен новый драйвер opencl, драйвер не могу поставить потому что win не принемает. Скорее всего проблема в regsvr32. Или просто под драйвером opencl имеется виду нечто другое, а не opencl.dll. (при копировании в папки замена не предлагалась)

Share this post


Link to post

Short link
Share on other sites

после обновы win появились в поиске новые сайты с sdk. Скачал, установил, изменил целевую платформу под sdk для visual 2017, сначало было 400+ ошибок. Потом 22. Качать exe отсюда не буду https://www.nexusmods.com/skyrim/mods/1797

когда разархивировал в С, то после сборки вообще 1 ошибка.
Ошибка    C1083    Не удается открыть файл включение: Common/Base/hkBase.h: No such file or directory, 

 

Edited by crazy_F0X

Share this post


Link to post

Short link
Share on other sites

Немного некропостинга.

Давно не открывал коллижены, и теперь коллижены не парсятся. Раньше для парсинга использовал скрипт на пхп, который радостно выдавал геометрию. Недавно, судя по всему, версия хавока изменилась. Появились новые блоки на замену старым (TSTR -> TST1, FSTR -> FST1), и судя по всему в них чутка уехал формат данных. Кто-то что-то может подсказать по этому поводу?

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

@MoD а для чего парсишь, что ты с этими моделями потом делаешь?

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
4 hours ago, StranikS_Scan said:

@MoD а для чего парсишь, что ты с этими моделями потом делаешь?

В мобильной приложухе база знаний для wot использую.

 

Share this post


Link to post

Short link
Share on other sites
On 6/6/2018 at 2:20 PM, MasterModeley said:

It turned out to be too difficult to solve the problem head-on. I had to get serious about googling. As a result, I found something useful.

 

Here https://github.com/blueskythlikesclouds/TagTools perfectly described what and how is stored in the havok file.

 

With minor fixes, it can digest WoT files. Moreover, in the new version of WoT, the havok format has been cleared of excess.

Can you kindly teach me how to do that  ?  I want primitives_processed   as in older version of client.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...