Star Citizen Texture Paths are Wrong
SMLudwig opened this issue · comments
When I import a Star Citizen 3.14.1 ship into Blender 2.93 (e.g. AEGS Avenger), I get the model without textures. Running Blender in the Windows Power Shell shows that the texture files are not found when importing the model (many Image not found
warnings).
An example is this path: Data\Objects\objects\spaceships\ships\aegs\textures\exterior\metal\textures\aegs_avenger_pads_ddna.dds
I checked and found the file here:
Data\Objects\objects\spaceships\ships\aegs\textures\exterior\metal\aegs_avenger_pads_ddna.dds
Somehow the \textures\ folder was added to all the image paths.
Second example:
Data\Objects\textures\defaults\textures\white.dds
I found the file in this path:
Data\Objects\textures\defaults\white.dds
I also opened a .dae file in the text editor and saw that indeed the \textures\ folder was wrongly in all the paths.
I converted the full Star Citizen build with this command:
foreach ($file in (get-childitem -recurse .cga,.cgf,.chr,.skin)) { C:\Users\Shadow\Documents\StarCitizenBlender\cgf-converter.exe $file -noconflict -objectdir "C:\Users\Shadow\Documents\Star Citizen Blender\blender_advocacy_tracker\Data" }
I then also tried re-converting the Avenger specifically with this command, specifying the actual Objects path:
foreach ($file in (get-childitem -recurse .cga,.cgf,.chr,.skin)) { .\cgf-converter.exe $file -noconflict -objectdir "C:\Users\Shadow\Documents\Star Citizen Blender\blender_advocacy_tracker\Data\Objects" }
Any idea what is going on?
Thanks
First of all, make sure you convert the DDS files. SC likes to break them up based on their mip-map size. There's programs for fixing that, but Blender can't read the extracted files, so they might show up as Image not found
.
As for the extra textures
in the image paths, that's odd. We'll have to look into it.
This should have been fixed as of 1.4.0. Can you confirm that it's still an issue?
The old logic tried to find the materials based on some assumptions. But 1.4 added a lot better material handling, and it should be able to find them from the -objectdir
parameter if you pass it in.
Oh... just noticed. Don't include Objects
in the -objectdir parameter. Just point to the root. That may have been the original issue.
Closing as resolved (issue is wrong path used in -objectDir
argument).