Jump to content

Recommended Posts

  • Engineers
Posted
9 minutes ago, DreamingOxxy said:

I did notice with the script is the UVs were upside down

Printf("vt %f %f\n",UnitVector[0].UVPosX,UnitVector[0].UVPosY);

to

Printf("vt %f %f\n",UnitVector[0].UVPosX,-UnitVector[0].UVPosY);

should fix it.

Posted
16 minutes ago, DKDave said:

 

I notice that some models are made up of multiple parts and even multiple files, and some have different versions of the model in the same file, such as "damaged" models, etc.

 

Yeah, you can blow some body parts off, so there's gore submeshes, and for the armor pieces it looks like there's multiple meshes for each part (cloth, body, armor), the other guy did seem to figure out how to apply the materials to the models correctly, so maybe you can take a look.

13 minutes ago, h3x3r said:

Printf("vt %f %f\n",UnitVector[0].UVPosX,UnitVector[0].UVPosY);

to

Printf("vt %f %f\n",UnitVector[0].UVPosX,-UnitVector[0].UVPosY);

should fix it.

Alright thanks

Posted
54 minutes ago, DreamingOxxy said:

Yeah, you can blow some body parts off, so there's gore submeshes, and for the armor pieces it looks like there's multiple meshes for each part (cloth, body, armor), the other guy did seem to figure out how to apply the materials to the models correctly, so maybe you can take a look.

Alright thanks

The submesh info has a "material index" value, but the material files themselves seem to define more materials than there are materials used (or I'm not reading the material files correctly ...)

 

 

Posted (edited)
6 minutes ago, DKDave said:

The submesh info has a "material index" value, but the material files themselves seem to define more materials than there are materials used (or I'm not reading the material files correctly ...)

 

 

 Hm. I see, some models do have reskins, so maybe it's that? Like a skin of sorts. For example some of the armors use the same model for two armor sets, one just uses a different texture.image.png.55a06870affc93bbcd9cad85c3b514c6.pngimage.png.69905db72853ac013969bdc023845b63.png 

Edited by DreamingOxxy
Posted

Not sure if any of you are still working on this/wanting to, but I wanted to make a quick request about getting skeletons out, I'm not sure if they are actually in the .bones files, but the names of them are in there for sure, and there's some sort of data inside them. I don't understand skeleton finding whatsoever, I've only been able to figure out mesh deconstruction, but it would be helpful to just be able to get the original rigs out, even if there's no weights.

  • Engineers
Posted (edited)

Here's bms in case tool doesn't work for some reason.

####################################
### Helldivers Resource Unpacker ###
####################################

comType zlib_noerror
get BaseFileName basename
getdstring Dummy 0x6
get Chunks ushort
getdstring Dummy 0x4
math Chunks + 1

for i = 0 < Chunks
	get ZSize uint32
	savepos Offset
	getdstring CData ZSize
	append 0
	clog MEMORY_FILE Offset ZSize ZSize
next i

goto 0 -1
get Resources uint32 -1
getdstring Dummy 0x100 -1
xmath TableSize "Resources * 16" -1
getdstring Dummy TableSize -1

for i = 0 < Resources
	savepos HeaderInfoOffset -1
	get Extension longlong -1
	get CRCName_0 uint32 -1
	get CRCName_1 uint32 -1
	get ResourceCount uint32 -1
	get StreamOffset uint32 -1
	
	for j = 0 < ResourceCount
		get Unknown_0 uint32 -1
		get ResourceSize[j] uint32 -1
		get StreamResourceSize uint32 -1
	next j
	savepos HeaderInfoEndOffset -1
	
	for j = 0 < ResourceCount
		getdstring RawData ResourceSize[j] -1
	next j
	savepos RawDataEndOffset -1
	
	xmath HeaderSize "HeaderInfoEndOffset - HeaderInfoOffset" -1
	xmath RawDataSize "RawDataEndOffset - HeaderInfoEndOffset" -1
	xmath Size "HeaderSize + RawDataSize" -1
	
	if Extension == -7845776955604022234
		set Extension string "animation"
	elif Extension == -2523249336000628348
		set Extension string "animation_curves"
	elif Extension == 9222729345201491665
		set Extension string "baked_lighting"
	elif Extension == 1792059921637536489
		set Extension string "bones"
	elif Extension == -9051012362580577742
		set Extension string "config"
	elif Extension == -8083727903408977048
		set Extension string "data"
	elif Extension == -7866682425036021491
		set Extension string "flow"
	elif Extension == -6990137951956076416
		set Extension string "font"
	elif Extension == 3151582839410712222
		set Extension string "input"
	elif Extension == -411360246199410658
		set Extension string "ivf"
	elif Extension == 3055991222284753605
		set Extension string "level"
	elif Extension == -6823360279786481694
		set Extension string "lua"
	elif Extension == -1531025310400979233
		set Extension string "material"
	elif Extension == -5586802062191616713
		set Extension string "mouse_cursor"
	elif Extension == 4260310590552720244
		set Extension string "network_config"
	elif Extension == -5936749679887390854
		set Extension string "package"
	elif Extension == -6333977373143224988
		set Extension string "particles"
	elif Extension == -4674384319396922447
		set Extension string "physics_properties"
	elif Extension == 2848016463268491676
		set Extension string "render_config"
	elif Extension == -3681457717887749313
		set Extension string "shader"
	elif Extension == -1878508312612070765
		set Extension string "shader_library"
	elif Extension == -7035681691298058571
		set Extension string "shader_library_group"
	elif Extension == -111525813760131931
		set Extension string "shading_environment"
	elif Extension == -2832068841926820393
		set Extension string "sound_environment"
	elif Extension == -469788778869442224
		set Extension string "spu_job"
	elif Extension == -6591347889605831076
		set Extension string "state_machine"
	elif Extension == -2021911029933276383
		set Extension string "static_pvs"
	elif Extension == 979299457696010195
		set Extension string "strings"
	elif Extension == -5968043961655577708
		set Extension string "surface_properties"
	elif Extension == -3656297521719370190
		set Extension string "texture"
	elif Extension == -7389443945178646108
		set Extension string "timpani_bank"
	elif Extension == 46134157573332076
		set Extension string "timpani_master"
	elif Extension == 8155295712016485532
		set Extension string "ugg"
	elif Extension == -2259526030728936129
		set Extension string "unit"
	elif Extension == -6227052463280761918
		set Extension string "upb"
	elif Extension == -625902272250026155
		set Extension string "vector_field"
	elif Extension == 8678266882450615065
		set Extension string "wav"
	elif Extension == 6006249203084351385
		set Extension string "wwise_bank"
	elif Extension == -5822581075298045840
		set Extension string "wwise_dep"
	elif Extension == -3095508420103327472
		set Extension string "wwise_metadata"
	elif Extension == 5785811756662211598
		set Extension string "wwise_stream"
	elif Extension == 8503174627613226853
		set Extension string "xml"
	endif

	string FileName p "%s_unpacked/%08X%08X.%s" BaseFileName CRCName_1 CRCName_0 Extension
	log FileName HeaderInfoEndOffset RawDataSize -1
next i

Use quickbms_4gb_files.exe. It may looks like it's stuck but don't worry. It first parse compressed chunks and then parse file table and unpack.

Edited by h3x3r

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...