MichaelBFS Posted May 8 Share Posted May 8 Does anyone know how to extract models from DriveClub (PS4)? I've seen mods for other games (AssettoCorsa) made from DriveClub. The quality of the cars is quite good with the correct topology. The models are extracted, but I couldn't find any information about tools and converters. I extracted 2 PKG archives with PKG PS4PKGViewer.v1.5-LMAN. (screenshots below). There are .dat files in them. I can't unpack them. I tried quickbms but it can't decompress, in the process some temp file is created and then it is deleted immediately.... Maybe someone has all the tools and can tell me how to do it or extract all the machines and post them as an archive here, please? Link to comment Share on other sites More sharing options...
Engineer h3x3r Posted May 8 Engineer Share Posted May 8 https://github.com/Nenkai/DriveClubFS Link to comment Share on other sites More sharing options...
MichaelBFS Posted May 8 Author Share Posted May 8 1 hour ago, h3x3r said: https://github.com/Nenkai/DriveClubFS I tried this tool, but nothing happens when I run it. I also transferred dat to exe and it doesn't work... Link to comment Share on other sites More sharing options...
Engineer h3x3r Posted May 8 Engineer Share Posted May 8 (edited) I run the tool but it gives error. E:\DOWNLOAD\DriveClub\Unpacked>DriveClubFS unpackall -i E:\DOWNLOAD\DriveClub\Unpacked -o unpacked DriveClubFS 0.1 - by Nenkai#9075 [:] Loading Evo File System from directory: E:\DOWNLOAD\DriveClub\Unpacked Unhandled exception. System.IO.InvalidDataException: Data corrupted. 0x12345678 after index entries not found. Now i am checking source. Maybe i can do something with it. EDiT: @MichaelBFS what game version you have? I think it's targeted for latest. Just wild guess. Well when i dissabled some of exceptions i get at least some file names. But as you can see some of them are linked to the files which acctualy doesn't exists. Like > game250.dat or > game116.dat. E:\DOWNLOAD\DriveClub\unpacker>DriveClubFS unpackall -i E:\DOWNLOAD\DriveClub\Unpacked -o E:\DOWNLOAD\DriveClub\Unpacked\unpacked DriveClubFS 0.1 - by Nenkai#9075 [:] Loading Evo File System from directory: E:\DOWNLOAD\DriveClub\Unpacked [!] Loading Evo File System from game.idx file [:] Version: 4300 [:] Data Files registered: 63 [:] Version: 4300 [:] File System entries: 5343 [/] File System loaded. [x] Cound not process 'data/nexus/statemachine/crowd/female_27_flare_03_still.rpk' - Data File 'game120.dat' missing or errored [x] Cound not process 'newui/fonts/fonts_default.ctl' - Data File 'game005.dat' missing or errored [x] Cound not process 'liveryeditor/assets/stickers/decal_subculture_09_3x1.tif_pixel_buffer.rpk' - Data File 'game088.dat' missing or errored [x] Cound not process 'liveryeditor/assets/club_symbol/clubbadge_symbol_dominant_01.tif_pixel_buffer.rpk' - Data File 'game250.dat' missing or errored [x] Cound not process 'data/cameras/vehicle/driver_head_cameras/jaguar_c-x75_concept.txt' - Data File 'game116.dat' missing or errored [x] Cound not process 'liveryeditor/assets/designs/livery_master_55.tif_pixel_buffer.rpk' - Data File 'game051.dat' missing or errored [x] Cound not process 'data/nexus/statemachine/crowd/female_26_flare_02_wave.rpk' - Data File 'game192.dat' missing or errored [x] Cound not process 'data/nexus/skel/wiper/mclaren_mp4-12c.rpk' - Data File 'game152.dat' missing or errored [x] Cound not process 'data/cameras/vehicle/replay_cameras/bmw_m3_gts/wheel_rear.txt' - Data File 'game066.dat' missing or errored [x] Cound not process 'data/nexus/skel/wiper/ferrari_enzo.rpk' - Data File 'game178.dat' missing or errored [x] Cound not process 'data/leveldata/chile_road_point_04_n.rpk' - Data File 'game044.dat' missing or errored [x] Cound not process 'data/cameras/vehicle/replay_cameras/pagani_huayra/drift.txt' - Data File 'game051.dat' missing or errored [x] Cound not process 'data/leveldata/chile_road_point_04_r.rpk' - Data File 'game072.dat' missing or errored [x] Cound not process 'liveryeditor/assets/designs/livery_patterns_03.tif_pixel_buffer.rpk' - Data File 'game230.dat' missing or errored [x] Cound not process 'data/nexus/skel/wiper/bmw_m3_gts.rpk' - Data File 'game040.dat' missing or errored [x] Cound not process 'liveryeditor/assets/stickers/decal_motorsport_12_3x1.tif_pixel_buffer.rpk' - Data File 'game234.dat' missing or errored Problem is with this magic. If it doesn't match it throws error. And if I change it to matching one it throws another error with index. So i assuming it's not for initial version of the game 1.00. Still downloading 1.28 so time will tell. EDiT: Yep, it's for 1.28 version of the game. Now it unpacks. Edited May 8 by h3x3r Link to comment Share on other sites More sharing options...
MichaelBFS Posted May 9 Author Share Posted May 9 Wow!! Thanks, looks like I downloaded the wrong version. Could you send me a link to the correct version? I'll try downloading a different one. I just had a couple more questions. If I manage to download the other version and unzip it, what do I do next to open the models and textures? What tools are needed? Here is an example of an extracted car from Driveclub. Screenshot and in FBX format and textures in the archive link below. example extracted car from Driveclub in FBX and textures: https://www.mediafire.com/file/cv8wfb0yco1j2ih/Driveclub_ferrari_f40.zip/file Link to comment Share on other sites More sharing options...
Turbulence Posted May 12 Share Posted May 12 (edited) I'm trying to extract the Camaro ZL1 model. I have both base and 1.28 version extracted with orbis-pub-chk but I don't know how to run the DriveClubFS tool. It doesn't have an .exe and the files there default to visual studio which I have no idea how to use. Am I supposed to compile an .exe myself in visual studio or...? Edit: I'm stupid the .exe was attached separately. I will update my progress Edit 2: Extracted the .dat files and now I need to another tool to extract the .rpk file. Edited May 13 by Turbulence Updating progress Link to comment Share on other sites More sharing options...
thebroker2392 Posted June 5 Share Posted June 5 any updates? 1 Link to comment Share on other sites More sharing options...
Turbulence Posted June 11 Share Posted June 11 Run DriveClubFS.sln in VsCode Make sure you download the DriveClubFS.exe and put it in DriveClubFS\bin\net6.0\DriveClubFS.exe or it will give you an error when trying to run it. Next the program seems to be looking for a specific directory saying "game.ndx does not exist in the folder" I don't know how to go in the code and change it or if it should be changed but i recreated the directory by reformatting a flash drive to change the letter then making all the folders. One thing to note, I combined the base game files with the update files without replacing duplicates. A handful of game files fail to extract without the base game files. At this point the data is readable in .rpk form but I used Quickbms to extract it even further. I don't know if you should extract it more since I know very little about datamining, but either way you can begin to extract the actual model. Link to comment Share on other sites More sharing options...
MxjorZ Posted June 12 Share Posted June 12 17 hours ago, Turbulence said: Run DriveClubFS.sln in VsCode Make sure you download the DriveClubFS.exe and put it in DriveClubFS\bin\net6.0\DriveClubFS.exe or it will give you an error when trying to run it. Next the program seems to be looking for a specific directory saying "game.ndx does not exist in the folder" I don't know how to go in the code and change it or if it should be changed but i recreated the directory by reformatting a flash drive to change the letter then making all the folders. One thing to note, I combined the base game files with the update files without replacing duplicates. A handful of game files fail to extract without the base game files. At this point the data is readable in .rpk form but I used Quickbms to extract it even further. I don't know if you should extract it more since I know very little about datamining, but either way you can begin to extract the actual model. could you elaborate more about the model researcher pro part of the extraction? because i dont seem to understand how to get at least the meshes from the model Link to comment Share on other sites More sharing options...
Turbulence Posted June 12 Share Posted June 12 (edited) 1 hour ago, MxjorZ said: could you elaborate more about the model researcher pro part of the extraction? because i dont seem to understand how to get at least the meshes from the model I hardly understand it myself. I'm trying to study data structures so I can extract it but for now the only thing I figured out was how to get floating points. here's a guide for starters https://mr.game-viewer.org/tutorial.php Edited June 12 by Turbulence adding a link 1 Link to comment Share on other sites More sharing options...
Engineer h3x3r Posted June 15 Engineer Share Posted June 15 (edited) Well here is bms script for *.RPK. Thanks to Nenkai for his 010 editor template on which is bms based but with some edits. There are still duplicates. You can automatically rename them or just skip it. Spoiler ##################################### # Drive Club *.rpk - Unpacker # ##################################### get BaseFileName basename getdstring Dummy 0x36 get Version uint32 get MarkerMagicStart uint32 get ResourceCount uint32 get Unknown_0 uint32 get Unknown_1 uint32 get ResourcesNameLength uint32 get SourceFileNamesLength uint32 get Unknown_2_Count uint32 get Unknown_3_Count uint32 getdstring MainIdentifier 0x6 get MainIdentifierType uint16 savepos ResourcesNameBaseOffset getdstring ResourcesNameData ResourcesNameLength savepos SourceFileNamesBaseOffset getdstring SourceFileNamesData SourceFileNamesLength savepos TableOffset for i = 0 < ResourceCount getdstring Identifier 0x6 get IdentifierType uint16 get DataSize uint32 get DataOffset uint32 get UnkResourceIdentifierCount uint16 savepos Tmp goto DataOffset getdstring Dummy 0x8 get FileId uint32 goto Tmp for j = 0 < UnkResourceIdentifierCount getdstring Identifier 0x6 get UnkIdentifierType uint16 next j get ResourceNameCount uint16 for k = 0 < ResourceNameCount get ResourceNameOffset uint32 savepos ResourceNameOffsetTmp xmath ResourceNameOff "ResourceNameOffset + ResourcesNameBaseOffset" goto ResourceNameOff get ResourceName string goto ResourceNameOffsetTmp next k get SourceAssetPathCount uint16 for l = 0 < SourceAssetPathCount get SourceAssetPathOffset uint32 savepos SourceAssetPathOffsetTmp xmath SourceAssetPathOff "SourceAssetPathOffset + SourceFileNamesBaseOffset" goto SourceAssetPathOff get SourceAssetPath string goto SourceAssetPathOffsetTmp next l if IdentifierType == 0 set Extension string "Unknown" elif IdentifierType == 1 set Extension string "ResourceInfoBlock" elif IdentifierType == 2 set Extension string "StreamFormat" elif IdentifierType == 3 set Extension string "VertexBuffer" elif IdentifierType == 4 set Extension string "IndexBuffer" elif IdentifierType == 5 set Extension string "PixelBuffer" elif IdentifierType == 6 set Extension string "Shader" elif IdentifierType == 7 set Extension string "Material" elif IdentifierType == 8 set Extension string "Mesh" elif IdentifierType == 9 set Extension string "ResourceCollection" elif IdentifierType == 10 set Extension string "Havok" elif IdentifierType == 11 set Extension string "Hierarchy" elif IdentifierType == 12 set Extension string "RigidBodyBindings" elif IdentifierType == 13 set Extension string "MotorstormWorld" elif IdentifierType == 14 set Extension string "Meshes" elif IdentifierType == 15 set Extension string "Scene" elif IdentifierType == 16 set Extension string "MotorstormVehicle" elif IdentifierType == 17 set Extension string "Font" elif IdentifierType == 18 set Extension string "Cameras" elif IdentifierType == 19 set Extension string "Camera" elif IdentifierType == 20 set Extension string "MotorstormSceneobject" elif IdentifierType == 21 set Extension string "MotorstormEnvironment" elif IdentifierType == 22 set Extension string "MotorstormCharacter" elif IdentifierType == 23 set Extension string "BasicBitmap" elif IdentifierType == 24 set Extension string "MotorstormSolids" elif IdentifierType == 25 set Extension string "MotorstormGroundRush" elif IdentifierType == 26 set Extension string "MotorstormPatricleEffect" elif IdentifierType == 27 set Extension string "Roadsystem" elif IdentifierType == 28 set Extension string "GpuProgram" elif IdentifierType == 29 set Extension string "GpuProgramBase" elif IdentifierType == 30 set Extension string "AttributeSet" elif IdentifierType == 31 set Extension string "AttributeSetBindings" elif IdentifierType == 32 set Extension string "BasicFont" elif IdentifierType == 33 set Extension string "OcTree" elif IdentifierType == 34 set Extension string "GuiAnim" elif IdentifierType == 35 set Extension string "Plant" elif IdentifierType == 36 set Extension string "Animations" elif IdentifierType == 37 set Extension string "MotorstormLights" elif IdentifierType == 38 set Extension string "Bin" elif IdentifierType == 39 set Extension string "Xml" elif IdentifierType == 40 set Extension string "Patch" elif IdentifierType == 41 set Extension string "NexusCharacter" elif IdentifierType == 42 set Extension string "NexusAnimation" elif IdentifierType == 43 set Extension string "LevelData" elif IdentifierType == 44 set Extension string "LevelTriggerVolumeResource" elif IdentifierType == 45 set Extension string "LevelDoResetVolumeResource" elif IdentifierType == 46 set Extension string "LevelNoResetVolumeResource" elif IdentifierType == 47 set Extension string "LevelSpawnPoint" elif IdentifierType == 48 set Extension string "LevelRoadRegionVolumeResource" elif IdentifierType == 49 set Extension string "LevelStartStartFinishVolumeResource" elif IdentifierType == 52 set Extension string "LevelRoadData" elif IdentifierType == 53 set Extension string "AudioVehicleAudio" elif IdentifierType == 54 set Extension string "AudioVehicleSoundEffect" elif IdentifierType == 55 set Extension string "AudioVehicleSample" elif IdentifierType == 56 set Extension string "RoadNetwork" elif IdentifierType == 57 set Extension string "LevelSplitVolumeResource" elif IdentifierType == 58 set Extension string "Dem" elif IdentifierType == 59 set Extension string "DemTitle" elif IdentifierType == 60 set Extension string "VehicleCustomData" elif IdentifierType == 61 set Extension string "LevelScriptedRoadLine" elif IdentifierType == 62 set Extension string "ProceduralPlacement" elif IdentifierType == 63 set Extension string "ActorData" elif IdentifierType == 64 set Extension string "HaboobTexAtlasIndex" elif IdentifierType == 65 set Extension string "Crowds" elif IdentifierType == 66 set Extension string "AudioSoundGroup" elif IdentifierType == 67 set Extension string "SvgMesh" elif IdentifierType == 68 set Extension string "LevelDriftZone" elif IdentifierType == 69 set Extension string "AudioFsb" elif IdentifierType == 70 set Extension string "AnimationLib" elif IdentifierType == 71 set Extension string "TopMips" elif IdentifierType == 72 set Extension string "LevelAiMaxSpeedVolumeResource" elif IdentifierType == 73 set Extension string "ScriptedRoadRegionVolumeVolumeResource" elif IdentifierType == 74 set Extension string "TriggerData" elif IdentifierType == 75 set Extension string "DustData" elif IdentifierType == 76 set Extension string "VehicleParticlesData" else set Extension string "dat" endif if IdentifierType == 2 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 3 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 4 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 5 string Name p "%s/%s" BaseFileName SourceAssetPath elif IdentifierType == 38 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 71 string Name p "%s/%s" BaseFileName SourceAssetPath else string Name p "%s/%s/%s.%s" BaseFileName SourceAssetPath ResourceName Extension endif log Name DataOffset DataSize next i DC_templates.7z Edited June 15 by h3x3r 3 Link to comment Share on other sites More sharing options...
Turbulence Posted June 15 Share Posted June 15 1 hour ago, h3x3r said: Well here is bms script for *.RPK. Thanks to Nenkai for his 010 editor template on which is bms based but with some edits. There are still duplicates. You can automatically rename them or just skip it. Reveal hidden contents ##################################### # Drive Club *.rpk - Unpacker # ##################################### get BaseFileName basename getdstring Dummy 0x36 get Version uint32 get MarkerMagicStart uint32 get ResourceCount uint32 get Unknown_0 uint32 get Unknown_1 uint32 get ResourcesNameLength uint32 get SourceFileNamesLength uint32 get Unknown_2_Count uint32 get Unknown_3_Count uint32 getdstring MainIdentifier 0x6 get MainIdentifierType uint16 savepos ResourcesNameBaseOffset getdstring ResourcesNameData ResourcesNameLength savepos SourceFileNamesBaseOffset getdstring SourceFileNamesData SourceFileNamesLength savepos TableOffset for i = 0 < ResourceCount getdstring Identifier 0x6 get IdentifierType uint16 get DataSize uint32 get DataOffset uint32 get UnkResourceIdentifierCount uint16 savepos Tmp goto DataOffset getdstring Dummy 0x8 get FileId uint32 goto Tmp for j = 0 < UnkResourceIdentifierCount getdstring Identifier 0x6 get UnkIdentifierType uint16 next j get ResourceNameCount uint16 for k = 0 < ResourceNameCount get ResourceNameOffset uint32 savepos ResourceNameOffsetTmp xmath ResourceNameOff "ResourceNameOffset + ResourcesNameBaseOffset" goto ResourceNameOff get ResourceName string goto ResourceNameOffsetTmp next k get SourceAssetPathCount uint16 for l = 0 < SourceAssetPathCount get SourceAssetPathOffset uint32 savepos SourceAssetPathOffsetTmp xmath SourceAssetPathOff "SourceAssetPathOffset + SourceFileNamesBaseOffset" goto SourceAssetPathOff get SourceAssetPath string goto SourceAssetPathOffsetTmp next l if IdentifierType == 0 set Extension string "Unknown" elif IdentifierType == 1 set Extension string "ResourceInfoBlock" elif IdentifierType == 2 set Extension string "StreamFormat" elif IdentifierType == 3 set Extension string "VertexBuffer" elif IdentifierType == 4 set Extension string "IndexBuffer" elif IdentifierType == 5 set Extension string "PixelBuffer" elif IdentifierType == 6 set Extension string "Shader" elif IdentifierType == 7 set Extension string "Material" elif IdentifierType == 8 set Extension string "Mesh" elif IdentifierType == 9 set Extension string "ResourceCollection" elif IdentifierType == 10 set Extension string "Havok" elif IdentifierType == 11 set Extension string "Hierarchy" elif IdentifierType == 12 set Extension string "RigidBodyBindings" elif IdentifierType == 13 set Extension string "MotorstormWorld" elif IdentifierType == 14 set Extension string "Meshes" elif IdentifierType == 15 set Extension string "Scene" elif IdentifierType == 16 set Extension string "MotorstormVehicle" elif IdentifierType == 17 set Extension string "Font" elif IdentifierType == 18 set Extension string "Cameras" elif IdentifierType == 19 set Extension string "Camera" elif IdentifierType == 20 set Extension string "MotorstormSceneobject" elif IdentifierType == 21 set Extension string "MotorstormEnvironment" elif IdentifierType == 22 set Extension string "MotorstormCharacter" elif IdentifierType == 23 set Extension string "BasicBitmap" elif IdentifierType == 24 set Extension string "MotorstormSolids" elif IdentifierType == 25 set Extension string "MotorstormGroundRush" elif IdentifierType == 26 set Extension string "MotorstormPatricleEffect" elif IdentifierType == 27 set Extension string "Roadsystem" elif IdentifierType == 28 set Extension string "GpuProgram" elif IdentifierType == 29 set Extension string "GpuProgramBase" elif IdentifierType == 30 set Extension string "AttributeSet" elif IdentifierType == 31 set Extension string "AttributeSetBindings" elif IdentifierType == 32 set Extension string "BasicFont" elif IdentifierType == 33 set Extension string "OcTree" elif IdentifierType == 34 set Extension string "GuiAnim" elif IdentifierType == 35 set Extension string "Plant" elif IdentifierType == 36 set Extension string "Animations" elif IdentifierType == 37 set Extension string "MotorstormLights" elif IdentifierType == 38 set Extension string "Bin" elif IdentifierType == 39 set Extension string "Xml" elif IdentifierType == 40 set Extension string "Patch" elif IdentifierType == 41 set Extension string "NexusCharacter" elif IdentifierType == 42 set Extension string "NexusAnimation" elif IdentifierType == 43 set Extension string "LevelData" elif IdentifierType == 44 set Extension string "LevelTriggerVolumeResource" elif IdentifierType == 45 set Extension string "LevelDoResetVolumeResource" elif IdentifierType == 46 set Extension string "LevelNoResetVolumeResource" elif IdentifierType == 47 set Extension string "LevelSpawnPoint" elif IdentifierType == 48 set Extension string "LevelRoadRegionVolumeResource" elif IdentifierType == 49 set Extension string "LevelStartStartFinishVolumeResource" elif IdentifierType == 52 set Extension string "LevelRoadData" elif IdentifierType == 53 set Extension string "AudioVehicleAudio" elif IdentifierType == 54 set Extension string "AudioVehicleSoundEffect" elif IdentifierType == 55 set Extension string "AudioVehicleSample" elif IdentifierType == 56 set Extension string "RoadNetwork" elif IdentifierType == 57 set Extension string "LevelSplitVolumeResource" elif IdentifierType == 58 set Extension string "Dem" elif IdentifierType == 59 set Extension string "DemTitle" elif IdentifierType == 60 set Extension string "VehicleCustomData" elif IdentifierType == 61 set Extension string "LevelScriptedRoadLine" elif IdentifierType == 62 set Extension string "ProceduralPlacement" elif IdentifierType == 63 set Extension string "ActorData" elif IdentifierType == 64 set Extension string "HaboobTexAtlasIndex" elif IdentifierType == 65 set Extension string "Crowds" elif IdentifierType == 66 set Extension string "AudioSoundGroup" elif IdentifierType == 67 set Extension string "SvgMesh" elif IdentifierType == 68 set Extension string "LevelDriftZone" elif IdentifierType == 69 set Extension string "AudioFsb" elif IdentifierType == 70 set Extension string "AnimationLib" elif IdentifierType == 71 set Extension string "TopMips" elif IdentifierType == 72 set Extension string "LevelAiMaxSpeedVolumeResource" elif IdentifierType == 73 set Extension string "ScriptedRoadRegionVolumeVolumeResource" elif IdentifierType == 74 set Extension string "TriggerData" elif IdentifierType == 75 set Extension string "DustData" elif IdentifierType == 76 set Extension string "VehicleParticlesData" else set Extension string "dat" endif if IdentifierType == 2 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 3 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 4 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 5 string Name p "%s/%s" BaseFileName SourceAssetPath elif IdentifierType == 38 string Name p "%s/%u.%s" BaseFileName FileId Extension elif IdentifierType == 71 string Name p "%s/%s" BaseFileName SourceAssetPath else string Name p "%s/%s/%s.%s" BaseFileName SourceAssetPath ResourceName Extension endif log Name DataOffset DataSize next i DC_templates.7z 5.71 kB · 2 downloadsfile and template.rar cool that's the same script I used. I've made a point cloud and I've found some of the face tables, but how do you figure out where the face start offset is? and how do you interpret a file like this? here's the template with my progress if you need it. Link to comment Share on other sites More sharing options...
Engineer h3x3r Posted June 15 Engineer Share Posted June 15 (edited) 1 hour ago, Turbulence said: how do you figure out where the face start offset is? Everything is in *.Mesh file. I partially reversed it. You can use my template on it. I have a version which prints some info like this: Model Index: 1 Vertex Buffer Id: 3248779072 Index Buffer Id: 2139299717 Vertex Count: 7829 Index Offset: 31b5e Index Count: 384 Vertex Count: 7730 Index Offset: 31e5e Index Count: 576 Vertex Count: 7553 Index Offset: 322de Index Count: 25107 Edited June 15 by h3x3r Link to comment Share on other sites More sharing options...
Turbulence Posted June 15 Share Posted June 15 (edited) 48 minutes ago, h3x3r said: Everything is in *.Mesh file. I partially reversed it. You can use my template on it. I have a version which prints some info like this: Model Index: 1 Vertex Buffer Id: 3248779072 Index Buffer Id: 2139299717 Vertex Count: 7829 Index Offset: 31b5e Index Count: 384 Vertex Count: 7730 Index Offset: 31e5e Index Count: 576 Vertex Count: 7553 Index Offset: 322de Index Count: 25107 How do you use the template to print information? What are indexes and vertex buffers used for? Also just occurred to me that I gave you the template without the file chevrolet_camaro_zl1.rar Edited June 15 by Turbulence Link to comment Share on other sites More sharing options...
Engineer h3x3r Posted June 15 Engineer Share Posted June 15 I don't use Model Researcher. Only H2O "hex to object" just to confirm stride info. Which is variable and i don't know where to get that stride type/order. There is only stride size in vertex buffer. BTW vertex buffers are vertices + normals + uv and maybe more. Index buffers are face indices. Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 15 Engineer Share Posted June 15 (edited) Seems getting the meshes is a little bit tricky: chevi camaro part Not useful to get the parts one by one, here mudguards: chevi mudguards Maybe there's some magic tables? Edited June 15 by shak-otay Link to comment Share on other sites More sharing options...
Turbulence Posted June 15 Share Posted June 15 59 minutes ago, shak-otay said: Seems getting the meshes is a little bit tricky: chevi camaro part Not useful to get the parts one by one, here mudguards: chevi mudguards Maybe there's some magic tables? What do you mean by magic tables? Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 15 Engineer Share Posted June 15 (edited) That was a rhetorical question only. (I'll talk about it when I found them, if any.) Are these the mesh names? There's 110 of them: dash_decals#dash_decals glass_toughened_damage_outside#glass_toughened_damage_outside_lod1 radiator_grille#radiator_grille glass_windscreen_outside_rain#glass_windscreen_outside_rain_lod2 leather_rain#leather_rain ... body_livery_damage_carbon#body_livery_damage_carbon_lod3 leather#leather wheel_paint_damage#wheel_paint_damage body_user_damage_carbon#body_user_damage_carbon_lod1 plastic_damage#plastic_damage_lod1 ------------- (A mix of lods, so they have to be grouped somehow.) I assume you can collect the vertex blocks in a simpple manner. after the 010000 the count and the stride (32 and 12): rpk vertex blocks (The harder thing will be to combine them with the face indices.) edit: hmm, these 32 vertices don't form a mesh. Bad example... v-block at 0x147f4, vCnt=5400 is the first one Edited June 15 by shak-otay Link to comment Share on other sites More sharing options...
Turbulence Posted June 15 Share Posted June 15 (edited) 3 hours ago, shak-otay said: That was a rhetorical question only. (I'll talk about it when I found them, if any.) Are these the mesh names? There's 110 of them: dash_decals#dash_decals glass_toughened_damage_outside#glass_toughened_damage_outside_lod1 radiator_grille#radiator_grille glass_windscreen_outside_rain#glass_windscreen_outside_rain_lod2 leather_rain#leather_rain ... body_livery_damage_carbon#body_livery_damage_carbon_lod3 leather#leather wheel_paint_damage#wheel_paint_damage body_user_damage_carbon#body_user_damage_carbon_lod1 plastic_damage#plastic_damage_lod1 ------------- (A mix of lods, so they have to be grouped somehow.) I assume you can collect the vertex blocks in a simpple manner. after the 010000 the count and the stride (32 and 12): rpk vertex blocks (The harder thing will be to combine them with the face indices.) edit: hmm, these 32 vertices don't form a mesh. Bad example... v-block at 0x147f4, vCnt=5400 is the first one Those are actually material names according to the template. If you run nenkai's template in 010 editor, it'll show you all of the names. Yea that's the same trick I've been using to get vertex blocks, setting the offset somewhere after 00 00 01 00 Edited June 15 by Turbulence Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 16 Engineer Share Posted June 16 These windshields' frames have a stride of 24: windshields' frames Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 16 Engineer Share Posted June 16 (edited) Lamborghini_aventador: some vertices use half floats: Lamborghini_aventador, HF cabin Edited June 16 by shak-otay Link to comment Share on other sites More sharing options...
Turbulence Posted June 17 Share Posted June 17 8 hours ago, shak-otay said: Lamborghini_aventador: some vertices use half floats: Lamborghini_aventador, HF cabin Do you have any idea why the cabins are squished? Its the same way on the Camaro model. Also what program are you using? Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 17 Engineer Share Posted June 17 (edited) The quishingi s usually caused by a missing scaling factor. The program is hex2obj Edited June 17 by shak-otay Link to comment Share on other sites More sharing options...
DKDave Posted June 17 Share Posted June 17 There seems to be 2 different types of vertex data files - one has just the basic vertices, and the other has vertices, UVs, etc with some vetex scaling. The different vertex parts and material info are referenced from the "Mesh" file type, some meshes use multiple vertex and face files. Just an example from some manual testing of "|BODY_COL|BODY|BODY_LOD1|BODY_LOD1Shape" Link to comment Share on other sites More sharing options...
Engineer shak-otay Posted June 18 Engineer Share Posted June 18 (edited) edit for the types: # 0xb304d, 37437 [12] # 0x120b78, 37437 [44] # 0x468741, 628 [12] # 0x46a500, 628 [44] # 0x47110c, 24514 [12] # 0x4b8e73, 24514 [44] # 0x66b2db, 3623 [12] # 0x675cf4, 3623 [36] # 0x695a8c, 17136 [12] # 0x6c7e11, 17136 [36] and yeah, it's generally a little bit tricky: chevi_camaro Using the given vertex count sometimes results in extra faces: camaro seats Edited June 18 by shak-otay Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now