Page 2 of 10

Re: NFS 16

Posted: Thu Mar 31, 2016 4:36 am
by Wobble
[out]

Re: NFS 16

Posted: Fri Apr 01, 2016 2:59 am
by mono24
Wobble wrote:Rename .mesh file to .meshSet. Any program that can import SWBF 2015 models can read these files.
Yet I tried Ultimate Unwrap3D Pro (x64) Demo with its specific SWBF 2015 plugin, and it will not load them, simply nothing happens, can you advise on what other software to use?

cheers.

Re: NFS 16

Posted: Fri Apr 01, 2016 8:24 am
by Wobble
[out]

Re: NFS 16

Posted: Fri Apr 01, 2016 12:48 pm
by Alexnfs
Wobble wrote:Works for me.
nissan.JPG
Please could you give the plugin to import meshSet in Ultimate Unwrap3D Pro?

Re: NFS 16

Posted: Fri Apr 01, 2016 6:21 pm
by mono24
Wobble wrote:Works for me.
Ok, cool.
Now lets see.
1. Download/Install the demo 64bit version.
2. Download/Install the specific SWBF 2015 plugin, inside plugin folder directory.
3. Open Software\Edit\Open, select desired file,
example:C:\Users\User\Desktop\NFS_dump\bundles\res\vehicles\player\car_bmw_m3e46_2003\car_bmw_m3e46_2003_mesh 1051000000000000e80200008000c000.mesh (even renaming to meshset same result)
4. Import window loads, info is: lods:6, meshes:53, bones:11
I select Chunk Directory,
example:C:\Users\User\Desktop\NFS_dump\bundles\chunks\
5. Click OK.
6. Nothing else happens.
7. Questions:
Have I missed anything?
What was supposed to be the python script for extraction, maybe I used the wrong one?

sample of the one I am trying to import
https://mega.nz/#!6pkHEAAQ!nsPrBzOnm96i ... 3-GLkvCK5M

Cheers.

Re: NFS 16

Posted: Sat Apr 02, 2016 1:44 am
by Acewell
Something must be wrong with your extraction, the meshSet file stores the 16 byte names of the chunk files it needs.
if you place the meshset file in the folder with the chunk files and try opening it with U3D and nothing happens then the chunk files it needs must be missing. you can look in your meshSet file to see the chunk names like in your sample car_bmw_m3e46_2003_mesh 1051000000000000e80200008000c000.meshset at 0xE0 and 0x1A0 and so on until there are no more FF FF FF FF bytes i guess.

you should check to see if your tools are actually working by trying the sample from this post
viewtopic.php?p=117201#p117201

Re: NFS 16

Posted: Sat Apr 02, 2016 2:43 pm
by Wobble
[out]

Re: NFS 16

Posted: Sat Apr 02, 2016 3:23 pm
by Alexnfs
Wobble wrote:
mono24 wrote: Have I missed anything?
The filename of the chunk is listed right there in the importer dialog:
BA02572DE9658AF0A4531482B559928D.chunk

Search all your folders for it. There might be more than just one chunk directory.
untitled.JPG
So you can give the plugin to import .meshSet?

Re: NFS 16

Posted: Sun Apr 03, 2016 12:38 am
by mono24
Wobble wrote: The filename of the chunk is listed right there in the importer dialog:
BA02572DE9658AF0A4531482B559928D.chunk
I was aware of that the whole time, just needed a whole different python script to get all chunks, one time got a bit over 14.000 chunks, and second time got over 130.000 chunks then it loaded.
It sucks that it will NOT support textures, the script that is, also shame that uu3d cant handle that either.
Anyway, thx.

Cheers.

Re: NFS 16

Posted: Sun Apr 03, 2016 1:23 am
by Wobble
[out]

Re: NFS 16

Posted: Mon Apr 04, 2016 12:35 am
by kovalevich007
I modified BF4 script. Import only car parts.
When I import a car, there is an error. I do not know how to fix it.
nfs16.ms.rar

Code: Select all

"ObjectFullPathName vehicles/player/car_bmw_m2_2016/car_bmw_m2_2016_Mesh"
"ObjectFullName car_bmw_m2_2016_Mesh"
"ObjectType 17"
"GUID_Count 6"
"First_Data_Block_Offset 1280"
"Mesh_Object_Count 17"
"FaceIndiceOffset 2008400"
"------------------------------"
"loop1"
"Submesh_1_VB_Size 52"
6
1571
"Submesh_1_Vert_Count 2669"
"Submesh_1_Face_Indice_Count 9274"
"var2 9274"
"Submesh_1_Material_Name M_Carpaint_Max"
"Position before verts 0L"
"Position before f-indice`s 2008400L"
"Position after f-indice`s 2026946L"
"------------------------------"
"loop2"
"Submesh_2_VB_Size 52"
6
1571
"Submesh_2_Vert_Count 2213"
"Submesh_2_Face_Indice_Count 4792"
"var2 14066"
"Submesh_2_Material_Name M_Chassis_Max"
"Position before verts 0L"
"Position before f-indice`s 2026946L"
"Position after f-indice`s 2036528L"
"------------------------------"
"loop3"
"Submesh_3_VB_Size 52"
6
1571
"Submesh_3_Vert_Count 1293"
"Submesh_3_Face_Indice_Count 3346"
"var2 17412"
"Submesh_3_Material_Name M_GlassOpaque_Mirror_Max"
"Position before verts 0L"
"Position before f-indice`s 2036528L"
"Position after f-indice`s 2043218L"
-- Error occurred in sub_m loop; filename: C:\Program Files\Autodesk\3ds Max 2012\Scripts\scriptbf4.ms; position: 12795; line: 391
--  Frame:
--   Vert_Tangents_array: #([3.48985e-005,0.00488281,3.15607e-005], [3.50177e-005,0.000106812,3.15905e-005], [3.50475e-005,0.000610352,3.15905e-005], [3.50475e-005,-0.00012207,3.15607e-005], [3.50475e-005,-0.000366211,3.15607e-005], [3.49283e-005,-3584,3.15309e-005], [3.50475e-005,-1.25,3.15309e-005], [3.50773e-005,-0.375,3.15309e-005], [3.49283e-005,-0.000183105,3.15309e-005], [3.50773e-005,-0.0234375,3.14713e-005], [3.50177e-005,0.000106812,3.15011e-005], [3.51071e-005,-0.000488281,3.14713e-005], [3.50177e-005,512,3.14415e-005], [3.05176e-005,256,3.12924e-005], [3.48985e-005,-768,3.13818e-005], [3.05176e-005,0.00292969,3.12924e-005], [3.45707e-005,-1.25,3.1352e-005], [3.05176e-005,0.03125,3.1352e-005], [3.05176e-005,512,3.10242e-005], [3.05176e-005,-6144,3.09944e-005], ...)
--   BoneIndexSameBool: true
--   layer: undefined
--   vertex_count: undefined
--   mesh1: undefined
--   bi_arr: undefined
--   bool_for_query_box: undefined
--   sub_m: 3
--   Vert_Normal_Array: #([0.673828,-2.56055,0], [0.642578,-2.57227,0], [0.641602,-2.54492,0], [0.608398,-2.5625,0], [0.641113,-2.53906,0], [0.60791,-2.55859,0], [0.610352,-2.5918,0], [0.597168,-2.59961,0], [0.584473,-2.58008,0], [0.583008,-2.57422,0], [0.591309,-2.60742,0], [0.587402,-2.61719,0], [0.565918,-2.59375,0], [0.563965,-2.58789,0], [0.580566,-2.625,0], [0.564453,-2.59766,0], [0.562012,-2.59375,0], [0.562012,-2.60938,0], [0.564453,-2.60938,0], [0.57959,-2.63086,0], ...)
--   vertIndex_array: undefined
--   parts_array: undefined
--   bnarr: undefined
--   Vert_Positions_array: #([11.1886,34.5501,-68.5123], [14.9766,34.4571,-67.6205], [15.0682,33.6608,-69.0996], [19.0684,33.5187,-67.8128], [15.0987,33.4129,-69.3051], [19.1102,33.2673,-68.0131], [18.8944,34.3404,-66.3362], [20.4632,34.2888,-65.6699], [21.9547,33.3762,-66.6137], [22.086,33.1175,-66.7755], [21.1435,34.3537,-65.2145], [21.6546,34.5096,-64.6172], [24.1451,33.228,-65.587], [24.3439,32.9754,-65.7361], [22.4586,34.5412,-64.0674], [24.3163,33.2953,-65.3503], [24.5497,33.0587,-65.4615], [24.5466,33.4683,-64.6414], [24.3111,33.6471,-64.6728], [22.5702,34.6444,-63.7993], ...)
--   VB_positions: #(769, 0, 1569, 12, 1570, 16, 1571, 20, 1572, 24, 5052, 28, 3074, 32, 3358, 36, 2256, 40, 8244, 48, ...)
--   vbi1: undefined
--   BoneCount_From_Order: 6
--   ba: 0
--   Vert_BiNormals_array: #([3.48985e-005,0.00488281,3.15607e-005], [3.50177e-005,0.000106812,3.15905e-005], [3.50475e-005,0.000610352,3.15905e-005], [3.50475e-005,-0.00012207,3.15607e-005], [3.50475e-005,-0.000366211,3.15607e-005], [3.49283e-005,-3584,3.15309e-005], [3.50475e-005,-1.25,3.15309e-005], [3.50773e-005,-0.375,3.15309e-005], [3.49283e-005,-0.000183105,3.15309e-005], [3.50773e-005,-0.0234375,3.14713e-005], [3.50177e-005,0.000106812,3.15011e-005], [3.51071e-005,-0.000488281,3.14713e-005], [3.50177e-005,512,3.14415e-005], [3.05176e-005,256,3.12924e-005], [3.48985e-005,-768,3.13818e-005], [3.05176e-005,0.00292969,3.12924e-005], [3.45707e-005,-1.25,3.1352e-005], [3.05176e-005,0.03125,3.1352e-005], [3.05176e-005,512,3.10242e-005], [3.05176e-005,-6144,3.09944e-005], ...)
--   face_array: #([2213,1,1], [2,3,4], [5,3,2], [4,3,5], [4,6,2], [7,4,8], [4,7,9], [6,4,4], [8,9,6], [9,10,9], [8,11,12], [9,11,13], [10,9,9], [12,13,10], [13,14,15], [13,12,16], [14,13,13], [15,16,14], [16,17,18], [17,16,18], ...)
--   vbi2: undefined
--   BoneOrderOffset: 1571
--   Submesh_Face_Indice_Count: 3346
--   vbi3: undefined
--   Vert_Diffuse_Array: #([0.101318,0.389648,0], [0.104248,0.389893,0], [0.104187,0.388184,0], [0.107361,0.388916,0], [0.104187,0.387939,0], [0.107361,0.388672,0], [0.107422,0.390869,0], [0.108704,0.391357,0], [0.10968,0.389893,0], [0.109802,0.389648,0], [0.109253,0.391602,0], [0.10968,0.392334,0], [0.111511,0.390625,0], [0.111633,0.390381,0], [0.110352,0.392822,0], [0.111633,0.390869,0], [0.111816,0.390869,0], [0.111877,0.391846,0], [0.111694,0.391846,0], [0.110474,0.393066,0], ...)
--   vbi4: undefined
--   bw_arr: undefined
--   Submesh_Mat_Name_Offset: 12797
--   var6: 1
--   skinMod: undefined
-- Error occurred during fileIn in #C:\Program Files\Autodesk\3ds Max 2012\Scripts\scriptbf4.ms; line number: 391
>> MAXScript FileIn Exception:
-- Runtime error: Vertex index in face out of range: [2213,1,1] <<
Imported parts
Image

These files:
https://yadi.sk/d/FJSl9xVYqi4pC

Re: NFS 16

Posted: Mon Apr 04, 2016 8:31 am
by mono24
Wobble wrote:What textures? You haven't posted any of those. To get textures, I think this info is stored in ebx files. It's a bit of pain to get.
Search for something called Batch Itexture Converter. I think it handles iTextures. Converts them all to dds.
Textures are extracted now, hoping are the right ones, but cant see what they are, IrfanView, Photoshop, Noesis etc, cant preview them, and ctex_all.bat DDS_Converter wont fix them either.
Whole car sample provided in link below, I hope its all there.
kovalevich007 wrote:I modified BF4 script. Import only car parts.
When I import a car, there is an error. I do not know how to fix it.
Error indeed, plus a whole lot of mess.
Full sample provided below, for you to test or those with more knowledge as well.
03.JPG
https://mega.nz/#!upl0waRa!UvxSjMSYTSU6 ... OMlCco3s1w

Cheers.

Re: NFS 16

Posted: Mon Apr 04, 2016 4:02 pm
by Wobble
[out]

Re: NFS 16

Posted: Mon Apr 04, 2016 7:45 pm
by shakotay2
kovalevich007 wrote:I modified BF4 script. Import only car parts.
When I import a car, there is an error. I do not know how to fix it.
Is it your script? :D
(If 'no', read error messages carefully. :) )
"Runtime error: Vertex index in face out of range: [2213,1,1]"

The script is 4 bytes off with face indices, should start at 0x1F1334:
0x1F1330 A4 08 00 00 00 00 01 00 02 00 03 00 04 00 02 00

(0x8A4+1= 2213)

Re: NFS 16

Posted: Mon Apr 04, 2016 9:43 pm
by kovalevich007
shakotay2 wrote: Is it your script? :D
(If 'no', read error messages carefully. :) )
"Runtime error: Vertex index in face out of range: [2213,1,1]"
I changed only these values:

Code: Select all

	--First readouts from .mesh file
	(	
		fseek mFile (80+Inc3) #seek_set 
		ObjectFullPathName_Position = readshort mFile #unsigned
		fseek mFile ObjectFullPathName_Position #seek_set 
		print	("ObjectFullPathName " + (ObjectFullPathName = readstring mFile ))
				
		fseek mFile (88+Inc3) #seek_set 
		ObjectFullName_Position = readshort mFile #unsigned

		fseek mFile ObjectFullName_Position #seek_set 
		print	("ObjectFullName " + (ObjectFullName = readstring mFile))as string

		fseek mFile 136 #seek_set
		print	("ObjectType " + (ObjectType = readShort mFile #unsigned)as string)
	  
		fseek mFile 116 #seek_set
		print	("GUID_Count " + (GUID_Count = readShort mFile #unsigned)as string)
				
		fseek mFile 140 #seek_set
		print	("First_Data_Block_Offset " + (First_Data_Block_Offset = readshort mFile #unsigned)as string)	
			
		fseek mFile 136 #seek_set
		print	("Mesh_Object_Count " + (Mesh_Object_Count = readShort mFile #unsigned)as string)
											
		fseek mFile 220 #seek_set
		print ("FaceIndiceOffset "+ (FaceIndiceOffset = (readlong mFile))as string)
			
	)
and

Code: Select all

	for sub_m = 1 to mesh_object_count do
	(		
		print "------------------------------"
		print ("loop"+(Inc2)as string)
					
		fseek mFile (First_Data_Block_Offset+Inc1+116) #seek_set
		print (("Submesh_"+ (Inc2)as string) + "_VB_Size "  + (VB_Size = readshort mFile #unsigned)as string)	
					
		--For each submesh in the file except the one that has VB size less than 20 ( usually means it`s useless)
		if VB_Size > 20 then 
		(
			VB_positions=#()
			bone_Order_array=#()
					
			fseek mFile (First_Data_Block_Offset+Inc1+61) #seek_set
			print (BoneCount_From_Order = readbyte mFile #unsigned)
						
			-- Read BoneOrderOffset And read Bone Order info into array
			fseek mFile (First_Data_Block_Offset+Inc1+64) #seek_set
			print (BoneOrderOffset = readshort mFile)	
			fseek mFile (BoneOrderOffset) #seek_set
					
			for bn_ord = 1 to BoneCount_From_Order do 
			(
				b = readshort mFile
				append bone_Order_array b	
			)					
						
			fseek mFile (First_Data_Block_Offset+Inc1) #seek_set	

			fseek mFile 8 #seek_cur
			Submesh_Mat_Name_Offset = readshort mFile
				
			fseek mFile 26 #seek_cur
			print (("Submesh_"+ (Inc2)as string) +"_Vert_Count "+(Submesh_Vert_Count = readlong mFile #unsigned)as string)
					
			fseek mFile 12 #seek_cur
			for zulu = 1 to 30 do
			(
				append VB_positions (readshort mFile)
			)
					
			fseek mFile (First_Data_Block_Offset+Inc1+220) #seek_set
			print (("Submesh_"+ (Inc2)as string) + "_Face_Indice_Count " +(Submesh_Face_Indice_Count = readlong mFile #unsigned-var2)as string)
					
			if Inc2 >=1 do (fseek mFile (First_Data_Block_Offset+Inc1+220) #seek_set
			print ("var2 "+(var2= readlong mFile #unsigned)as string))				
					
			fseek mFile Submesh_Mat_Name_Offset #seek_set
			print (("Submesh_" + (Inc2)as string) + "_Material_Name " +(Submesh_Material_Name = readstring mFile )as string)
					
			Inc1 += 192
			Inc2 += 1
			Var1 =  Submesh_Face_Indice_Count

			if vert_start_pos ==0 then (fseek C_File vert_start_pos #seek_set) else fseek C_File last_vert_pos #seek_set
					
			print ("Position before verts "+((ftell C_File)as string))