Markemp / Cryengine-Importer

Imports converted Cryengine assets into Blender
38 stars 10 forks source link

Star Citizen illum_shader material Issues #15

Open Baconator650 opened 3 years ago

Baconator650 commented 3 years ago

Getting this error when trying import some SC assets (some work correctly)

Python: Traceback (most recent call last): File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer__init__.py", line 110, in execute return Cryengine_Importer.import_asset(context, **keywords) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\Cryengine_Importer.py", line 520, in import_asset constants.materials.update(materials.create_materials(file, constants.basedir, use_dds, use_tif)) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\materials.py", line 48, in create_materials create_illum_shader_material(material_xml, material, file_extension) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\materials.py", line 184, in create_illum_shader_material texture_node = create_image_texture_node(tree_nodes, texture, file_extension) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\materials.py", line 253, in create_image_texture_node texture_image = bpy.data.images.load(constants.basedir + "\textures\default_mat_warning" + file_extension) RuntimeError: Error: Cannot read 'D:\Star Citizen Master Texture\textures\default_mat_warning.tif': No such file or directory

location: :-1

Solution Request: Have a brute force option that creates a blank material with the name of the proper material to be recreated manually by the user.

Markemp commented 3 years ago

Hmm... I fixed this in 2.0.6 by having it use the material warning texture, but that assumes that it exists. Can you check to see if there is a \Textures\default_mat_warning.tif file? I'm guessing that you converted all the related .dds files to .tif, but this one is outside of the normal Objects folder.

Baconator650 commented 3 years ago

You are correct that I converted all the textures. Searched the files and didn't find a "default_mat_warning.tif" and check several other extracted databases that I keep on separate drives (3.13 and 3.8) didn't find one either. Would creating one fix the issue?

Markemp commented 3 years ago

It should fix it. Although I will also harden the script so that if it can't find the file, it will do something else. Maybe include it in the zip file so that I don't have to worry about it not being available?

Baconator650 commented 3 years ago

Got rid of the last error, but this part is still showing up:

Python: Traceback (most recent call last): File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer__init__.py", line 110, in execute return Cryengine_Importer.import_asset(context, **keywords) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\Cryengine_Importer.py", line 520, in import_asset constants.materials.update(materials.create_materials(file, constants.basedir, use_dds, use_tif)) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\materials.py", line 76, in create_materials create_glass_material(material_xml, tree_nodes, shaderPrincipledBSDF, file_extension) File "C:\Users\krazy\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\io_cryengine_importer\materials.py", line 290, in create_glass_material if os.path.isfile(texturefile): UnboundLocalError: local variable 'texturefile' referenced before assignment

location: :-1

Markemp commented 3 years ago

Can you pull the zip file addon for the latest push to master and see if that works better? I added better error handling if the texture is missing (including adding a missing texture .png).

Baconator650 commented 3 years ago

I'll need to do some research on how to. Something that I notice is that it isn't consistent; I am getting errors in the buildingset objects, but it isn't consistent. Example: hanger/discount/addon objects work fine, but \human\hightech\alpha\int\airlock does not.

EDIT: tried loading the files individually and Blender's collada importer won't do it. Are you using a different collada plugin other then the stock one for blender?

Baconator650 commented 3 years ago

Got it to work oddly, by starting the Blender via powershell.