lasa01 / Plumber

A Blender addon for importing Source 1 engine maps, models, materials and textures. This addon makes it possible to import full CS:GO, TF2, CS:S or other Source 1 game maps into Blender.
MIT License
395 stars 29 forks source link

Vampire The Masquerade Bloodlines Missing Textures on Import #92

Closed Ms-Dance closed 2 years ago

Ms-Dance commented 3 years ago

I successfully decompiled the BSP map into VMF file. Then open that VMF in hammer and is shows the textures. I then use: io_import_vmf To import into blender. It has all the objects, materials, lights, but no textures. In order to get the textures I have to retrieve the materials from the materials folder and convert the ttz/vmt file into a png. Then import that into blender. The only problem there is that the UV Maps for the objects are WAY TOO BIG and need to be scaled down to resemble the original UV size.

I've set it up to in a multitude of different configurations, selecting different subsects of the game directories, selecting all the VPK archives manually, setting the wildcard directory to the VPK folder and to every folder, but no importing method worked.

It seems like an awful lot of work to get all the textures into blender for every object in the scene. Did I miss a step in the importing process that automatically adds the textures I'm missing, and converts them into PNGs, and sets the UV sizes correctly?

Capture test unknown

lasa01 commented 3 years ago

Materials should be imported automatically if the game is configured correctly.

You can find the gameinfo.txt file inside the game directory to figure out how to correctly configure the game.

The file has multiple search paths, each one has a key and a value (a path). The search paths with "game" in the key are the ones you need to add to the configuration.

If the search path ends with .vpk, you add it as a vpk archive into the configuration. If the .vpk file it points to doesn't exist, you need to select the file with the same name that ends with _dir.vpk.

If the search path is a directory, add it as a game directory into the configuration. You also need to add pak01_dir.vpk inside the directory into the vpk archives configuration if it exists.

If the search path ends in a *, you should add it to the wildcard directories (without the *).

There search paths may contain |GameInfo_Path|, which means go to where gameinfo.txt is and follow the path from there. |All_Source_Engine_Paths| means the game installation directory.

I'm working on making this all automatic but it the meanwhile that should get the game configured correctly.

As for the incorrect uv issue, to calculate the uvs the texture dimensions must be known, so if the textures cannot be found you the uvs will be incorrect.

Ms-Dance commented 3 years ago

VTMB doesn't use gameinfo.txt (from what I read) Because it was developed with the beta version of the original source engine before half-life 1 was created.

https://forums.planetvampire.com/bloodlines-tech-support/bug-after-bug/msg129201/#msg129201

So I'm not 100% sure, but it looks like you have to manually configure hammer to set up HL1 source engine games. Does your plugin only work with HL2 source engine games? Is there an HL1 source engine blender importer?

image image image image 2

lasa01 commented 3 years ago

I don't think it has ever been tested on that kind of games. The configuration looks fine to me.

Can you enable the "Verbose" option before importing and send the console logs here?

Ms-Dance commented 3 years ago
Read prefs: C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\config\userpref.blend
found bundled python: C:\censored\Desktop\misc\blender-2.83.16-windows-x64\2.83\python
Indexing game files...
Indexing done in 9.683669090270996 s
Started importing VMF 'D:\censored\Vampire The Masquerade - Bloodlines\Patch_Extras\Developer Tools\Bloodlines SDK\SDKContent\MapSrc\sm_gallery_1_d.vmf'
[1/12] Parsing map...
[2/12] Determining required game files...
[WARNING] MATERIAL stone/lawwlla NOT FOUND
[VERBOSE] Staging material stone/galb
[WARNING] MATERIAL stone/galb NOT FOUND
[VERBOSE] Staging material brick/galintwndwa
[WARNING] MATERIAL brick/galintwndwa NOT FOUND
[WARNING] MATERIAL wood/ohfloora NOT FOUND
[VERBOSE] Staging material concrete/concrete1
[WARNING] MATERIAL concrete/concrete1 NOT FOUND
[VERBOSE] Staging material tools/toolsnodraw
[WARNING] MATERIAL tools/toolsnodraw NOT FOUND
[WARNING] MATERIAL stone/gal NOT FOUND
[WARNING] MATERIAL stone/galb NOT FOUND
[VERBOSE] Staging material concrete/galbase
[WARNING] MATERIAL concrete/galbase NOT FOUND
[VERBOSE] Staging material tile/galroofb
[WARNING] MATERIAL tile/galroofb NOT FOUND
[VERBOSE] Staging material wood/plywooda
[WARNING] MATERIAL wood/plywooda NOT FOUND
[WARNING] MATERIAL tile/galroofb NOT FOUND
[VERBOSE] Staging material wood/floord
[WARNING] MATERIAL wood/floord NOT FOUND
[VERBOSE] Staging material plaster/wllp
[WARNING] MATERIAL plaster/wllp NOT FOUND
[VERBOSE] Staging material stone/galdoor
[WARNING] MATERIAL stone/galdoor NOT FOUND
[VERBOSE] Staging material brick/galbrcka
[WARNING] MATERIAL brick/galbrcka NOT FOUND
[WARNING] MATERIAL plaster/wllp NOT FOUND
[VERBOSE] Staging material stone/galwndwb
[WARNING] MATERIAL stone/galwndwb NOT FOUND
[VERBOSE] Staging material wood/galply
[WARNING] MATERIAL wood/galply NOT FOUND
[VERBOSE] Staging material stone/galwndwa
[WARNING] MATERIAL stone/galwndwa NOT FOUND
[WARNING] MATERIAL metal/galbeams NOT FOUND
[WARNING] MATERIAL plaster/lawwlla NOT FOUND
[WARNING] MATERIAL concrete/galbase NOT FOUND
[WARNING] MATERIAL wood/galply NOT FOUND
[WARNING] MATERIAL brick/galbrcka NOT FOUND
[VERBOSE] Staging material stone/galdoorb
[WARNING] MATERIAL stone/galdoorb NOT FOUND
[WARNING] MATERIAL effects/black NOT FOUND
[WARNING] MATERIAL tools/toolsclip NOT FOUND
[WARNING] MATERIAL stone/galdoorb NOT FOUND
[WARNING] MATERIAL tools/toolsnodraw NOT FOUND
[WARNING] MATERIAL drapery/galdrapery NOT FOUND
[WARNING] MATERIAL tools/toolsinvisible NOT FOUND
[WARNING] MATERIAL decals/signs/noir_label_cain_curse NOT FOUND
[WARNING] MATERIAL decals/signs/noir_label_cain_spurn NOT FOUND
[WARNING] MATERIAL decals/signs/noir_label_cain_slays NOT FOUND
[WARNING] MATERIAL decals/signs/noir_label_cain_meet NOT FOUND
[WARNING] MATERIAL stone/galdoor NOT FOUND
[VERBOSE] Staging model models/scenery/structural/gallight/gallight
[VERBOSE] Staging model models/scenery/structural/switches/switch
[VERBOSE] Staging model models/items/cashbox/ground/cashbox
[VERBOSE] Staging model models/scenery/structural/doorknoba/drknobantiquel
[VERBOSE] Staging model models/scenery/structural/doorknoba/drknobantique
[VERBOSE] Staging model models/scenery/furniture/desk/desk
[VERBOSE] Staging model models/scenery/misc/cash_register/cash_registerdrawr
[VERBOSE] Staging model models/scenery/furniture/chair/office_chair
[VERBOSE] Staging model models/scenery/misc/cash_register/cash_register
[VERBOSE] Staging model models/scenery/misc/brad_bust_1/brad_bust_1
[VERBOSE] Staging model models/scenery/furniture/vase/vasea
[VERBOSE] Staging model models/scenery/furniture/vase/vaseb
[VERBOSE] Staging model models/scenery/furniture/vase/vasec
[3/12] Importing 13 models (reusing 0 existing)...
[VERBOSE] Loading all models...
[VERBOSE] Importing model models/scenery/structural/gallight/gallight...
[ERROR]: MODEL models/scenery/structural/gallight/gallight LOADING FAILED: models/scenery/structural/gallight
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/structural/gallight
[VERBOSE] Importing model models/scenery/structural/switches/switch...
[ERROR]: MODEL models/scenery/structural/switches/switch LOADING FAILED: models/scenery/structural/switches
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/structural/switches
[VERBOSE] Importing model models/items/cashbox/ground/cashbox...
[ERROR]: MODEL models/items/cashbox/ground/cashbox LOADING FAILED: models/items/cashbox/ground
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/items/cashbox/ground
[VERBOSE] Importing model models/scenery/structural/doorknoba/drknobantiquel...
[ERROR]: MODEL models/scenery/structural/doorknoba/drknobantiquel LOADING FAILED: models/scenery/structural/doorknoba
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/structural/doorknoba
[VERBOSE] Importing model models/scenery/structural/doorknoba/drknobantique...
[ERROR]: MODEL models/scenery/structural/doorknoba/drknobantique LOADING FAILED: models/scenery/structural/doorknoba
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/structural/doorknoba
[3/12] Importing models... 38.4615 %
[VERBOSE] Importing model models/scenery/furniture/desk/desk...
[ERROR]: MODEL models/scenery/furniture/desk/desk LOADING FAILED: models/scenery/furniture/desk
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/furniture/desk
[VERBOSE] Importing model models/scenery/misc/cash_register/cash_registerdrawr...
[ERROR]: MODEL models/scenery/misc/cash_register/cash_registerdrawr LOADING FAILED: models/scenery/misc/cash_register
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/misc/cash_register
[VERBOSE] Importing model models/scenery/furniture/chair/office_chair...
[ERROR]: MODEL models/scenery/furniture/chair/office_chair LOADING FAILED: models/scenery/furniture/chair
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/furniture/chair
[VERBOSE] Importing model models/scenery/misc/cash_register/cash_register...
[ERROR]: MODEL models/scenery/misc/cash_register/cash_register LOADING FAILED: models/scenery/misc/cash_register
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/misc/cash_register
[VERBOSE] Importing model models/scenery/misc/brad_bust_1/brad_bust_1...
[ERROR]: MODEL models/scenery/misc/brad_bust_1/brad_bust_1 LOADING FAILED: models/scenery/misc/brad_bust_1
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/misc/brad_bust_1
[3/12] Importing models... 76.9231 %
[VERBOSE] Importing model models/scenery/furniture/vase/vasea...
[ERROR]: MODEL models/scenery/furniture/vase/vasea LOADING FAILED: models/scenery/furniture/vase
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/furniture/vase
[VERBOSE] Importing model models/scenery/furniture/vase/vaseb...
[ERROR]: MODEL models/scenery/furniture/vase/vaseb LOADING FAILED: models/scenery/furniture/vase
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/furniture/vase
[VERBOSE] Importing model models/scenery/furniture/vase/vasec...
[ERROR]: MODEL models/scenery/furniture/vase/vasec LOADING FAILED: models/scenery/furniture/vase
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 246, in load_all
    self._load(name, staged)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 309, in _load
    raise FileNotFoundError(mdl_dir)
FileNotFoundError: models/scenery/furniture/vase
[3/12] Importing models... 100.0000 %
[4/12] Importing 0 textures (reusing 0 existing) and 0 materials (reusing 0 existing, 26 cannot be imported)...
[VERBOSE] Loading all materials...
[5/12] Importing materials... 100.0000 %
[6/12] Building geometry...
[VERBOSE] Building worldspawn_2...
[VERBOSE] Building worldspawn_3...
[VERBOSE] Building worldspawn_4...
[VERBOSE] Building worldspawn_5...
[VERBOSE] Building worldspawn_6...
[VERBOSE] Building worldspawn_7...
[VERBOSE] Building worldspawn_8...
[VERBOSE] Building worldspawn_9...
[VERBOSE] Building worldspawn_10...
[VERBOSE] Building worldspawn_11...
[VERBOSE] Building worldspawn_12...
[VERBOSE] Building worldspawn_13...
[VERBOSE] Building worldspawn_14...
[VERBOSE] Building worldspawn_15...
[VERBOSE] Building worldspawn_16...
[VERBOSE] Building worldspawn_17...
[VERBOSE] Building worldspawn_18...
[VERBOSE] Building worldspawn_19...
[VERBOSE] Building worldspawn_20...
[VERBOSE] Building worldspawn_21...
[VERBOSE] Building worldspawn_22...
[VERBOSE] Building worldspawn_23...
[VERBOSE] Building worldspawn_24...
[VERBOSE] Building worldspawn_25...
[VERBOSE] Building worldspawn_26...
[VERBOSE] Building worldspawn_27...
[VERBOSE] Building worldspawn_28...
[VERBOSE] Building worldspawn_29...
[VERBOSE] Building worldspawn_30...
[VERBOSE] Building worldspawn_31...
[VERBOSE] Building worldspawn_32...
[VERBOSE] Building worldspawn_33...
[VERBOSE] Building worldspawn_34...
[VERBOSE] Building worldspawn_35...
[VERBOSE] Building worldspawn_36...
[VERBOSE] Building worldspawn_37...
[VERBOSE] Building worldspawn_38...
[VERBOSE] Building worldspawn_39...
[VERBOSE] Building worldspawn_40...
[VERBOSE] Building worldspawn_41...
[VERBOSE] Building worldspawn_42...
[VERBOSE] Building worldspawn_43...
[VERBOSE] Building worldspawn_44...
[VERBOSE] Building worldspawn_45...
[VERBOSE] Building worldspawn_46...
[VERBOSE] Building worldspawn_47...
[VERBOSE] Building worldspawn_48...
[VERBOSE] Building worldspawn_49...
[VERBOSE] Building worldspawn_50...
[VERBOSE] Building worldspawn_51...
[VERBOSE] Building worldspawn_52...
[VERBOSE] Building worldspawn_53...
[VERBOSE] Building worldspawn_54...
[VERBOSE] Building worldspawn_55...
[VERBOSE] Building worldspawn_56...
[VERBOSE] Building worldspawn_57...
[VERBOSE] Building worldspawn_58...
[VERBOSE] Building worldspawn_59...
[VERBOSE] Building worldspawn_60...
[VERBOSE] Building worldspawn_61...
[VERBOSE] Building worldspawn_62...
[VERBOSE] Building worldspawn_63...
[VERBOSE] Building worldspawn_64...
[VERBOSE] Building worldspawn_65...
[VERBOSE] Building worldspawn_66...
[VERBOSE] Building worldspawn_67...
[VERBOSE] Building worldspawn_68...
[VERBOSE] Building worldspawn_69...
[VERBOSE] Building worldspawn_70...
[VERBOSE] Building worldspawn_71...
[VERBOSE] Building worldspawn_72...
[VERBOSE] Building worldspawn_73...
[VERBOSE] Building worldspawn_74...
[VERBOSE] Building worldspawn_75...
[VERBOSE] Building worldspawn_76...
[VERBOSE] Building worldspawn_77...
[VERBOSE] Building worldspawn_78...
[VERBOSE] Building worldspawn_79...
[VERBOSE] Building worldspawn_80...
[VERBOSE] Building worldspawn_81...
[VERBOSE] Building worldspawn_82...
[VERBOSE] Building func_door_rotating_212...
[VERBOSE] Building func_brush_214...
[VERBOSE] Building func_brush_216...
[VERBOSE] Building func_door_rotating_224...
[VERBOSE] Building func_door_rotating_226...
[VERBOSE] Building func_illusionary_310...
[VERBOSE] Building func_illusionary_312...
[VERBOSE] Building func_illusionary_314...
[VERBOSE] Building func_illusionary_316...
[VERBOSE] Building func_detail_326...
[VERBOSE] Building func_detail_328...
[VERBOSE] Building func_detail_330...
[VERBOSE] Building func_detail_332...
[6/12] Building geometry... 70.4225 %
[VERBOSE] Building func_detail_334...
[VERBOSE] Building func_detail_336...
[VERBOSE] Building func_detail_338...
[VERBOSE] Building func_detail_340...
[VERBOSE] Building func_detail_342...
[VERBOSE] Building func_detail_344...
[VERBOSE] Building func_detail_346...
[VERBOSE] Building func_detail_348...
[VERBOSE] Building func_detail_350...
[VERBOSE] Building func_detail_352...
[VERBOSE] Building func_detail_354...
[VERBOSE] Building func_detail_356...
[VERBOSE] Building func_detail_358...
[VERBOSE] Building func_detail_360...
[VERBOSE] Building func_detail_362...
[VERBOSE] Building func_detail_364...
[VERBOSE] Building func_detail_366...
[VERBOSE] Building func_detail_368...
[VERBOSE] Building func_detail_370...
[VERBOSE] Building func_detail_372...
[VERBOSE] Building func_detail_374...
[VERBOSE] Building func_detail_376...
[VERBOSE] Building func_detail_378...
[VERBOSE] Building func_detail_380...
[VERBOSE] Building func_detail_382...
[VERBOSE] Building func_detail_384...
[VERBOSE] Building func_detail_386...
[VERBOSE] Building func_detail_388...
[VERBOSE] Building func_detail_390...
[VERBOSE] Building func_detail_392...
[VERBOSE] Building func_detail_394...
[VERBOSE] Building func_detail_396...
[VERBOSE] Building func_detail_398...
[VERBOSE] Building func_detail_400...
[VERBOSE] Building func_detail_402...
[VERBOSE] Building func_detail_404...
[VERBOSE] Building func_detail_406...
[VERBOSE] Building func_detail_408...
[VERBOSE] Building func_detail_410...
[VERBOSE] Building func_detail_412...
[WARNING] MATERIAL tools/toolstrigger NOT FOUND
[6/12] Building geometry... 100.0000 %
[7/12] Building overlays...
[8/12] Placing props...
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/switches/switch hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/switches/switch hasn't been imported
[ERROR] LOADING PROP FAILED: model models/items/cashbox/ground/cashbox hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/items/cashbox/ground/cashbox hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/gallight/gallight hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/gallight/gallight hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/doorknoba/drknobantiquel hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/doorknoba/drknobantiquel hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/doorknoba/drknobantique hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/doorknoba/drknobantique hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/structural/doorknoba/drknobantiquel hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/structural/doorknoba/drknobantiquel hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/desk/desk hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/desk/desk hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/misc/cash_register/cash_registerdrawr hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/misc/cash_register/cash_registerdrawr hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/chair/office_chair hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/chair/office_chair hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/misc/cash_register/cash_register hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/misc/cash_register/cash_register hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/misc/brad_bust_1/brad_bust_1 hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/misc/brad_bust_1/brad_bust_1 hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vasea hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vasea hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vaseb hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vaseb hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vasec hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vasec hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vasea hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vasea hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vaseb hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vaseb hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/furniture/vase/vasec hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/furniture/vase/vasec hasn't been imported
[ERROR] LOADING PROP FAILED: model models/scenery/misc/brad_bust_1/brad_bust_1 hasn't been imported
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 280, in load
    self._load_prop(prop_entity, context, prop_collection)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 805, in _load_prop
    obj = self._qc_importer.get_unique(name, collection, context)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 429, in get_unique
    return self.get_unique_smd(name, collection, context).a
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_qc.py", line 409, in get_unique_smd
    raise Exception(f"model {name} hasn't been imported")
Exception: model models/scenery/misc/brad_bust_1/brad_bust_1 hasn't been imported
[8/12] Placing props... 100.0000 %
[9/12] Optimizing props...
[10/12] Placing lights...
[10/12] Placing lights... 100.0000 %
[11/12] Importing skybox...
[ERROR] FAILED LOADING SKYBOX: materials/skybox/santamonicalf.vmt
Traceback (most recent call last):
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmf.py", line 349, in load
    output_res=self.sky_resolution, context=context,
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\import_vmt.py", line 1250, in load_sky
    sky_vmt = vmt.VMT(fs.open_file_utf8(f"{skyname}{suffix}.vmt"), fs)
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\deps\vmfpy\fs.py", line 170, in open_file_utf8
    return TextIOWrapper(cast(IO[bytes], self.open_file(path)), encoding='utf-8')
  File "C:\censored\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\io_import_vmf\deps\vmfpy\fs.py", line 166, in open_file
    raise FileNotFoundError(path)
FileNotFoundError: materials/skybox/santamonicalf.vmt
[12/12] Skipped sky origin
Done in 0.2749 s
Imported 142 solids (0 failed)
Imported 0 overlays (0 failed)
Imported 0 props (44 failed)
Imported 48 lights (0 failed)
lasa01 commented 3 years ago

Seems it just can't find the files. Can you manually see if you find any of the textures/models inside either one of the vpks (you can use GCFScape to browse them) or inside normal directories.

Ms-Dance commented 3 years ago

So the cache is able to extract out the VPK contents. Which I would think means it found what it was looking for. I've extracted every single file from the VPK into its own loose file directory. I don't know how it actually searches for files but in windows the directory separator is backslash '\' not forwardslash '/'. So if its looking in the directory for "materials/skybox/santamonicalf.vmt" and not "materials\skybox\santamonicalf.vmt". It won't work. Because it does exhist and it just waiting there to be read. Is it that the vmt parser can't read the VMT file correctly? Or does it not know how to convert tth / ttz files to png files? I set my game directory just to the vpkcontents, but that also didn't work. But it was able to copy out the cache. So there must be either a disconnect between the importing code and caching code. Or part of the importing code can't handle converting old texture files to new texture files. Can it convert DXT5 formatted images? And yes, the texture and prop files are in the .VPK files as well.

image image image image image image

Ms-Dance commented 3 years ago

Here is a ceramic blue vase .mdl file with the texture files attached to them. I sued HLMV.exe to view the model. And vtfedit to view the texture. And I used MDL 2 SMD to decompile from mdl to qc.

vase.zip

https://developer.valvesoftware.com/wiki/Model_Viewer https://valvedev.info/tools/vtfedit/

You can get all the tools i'm using from the bloodlines SDK file. https://www.moddb.com/mods/vtmb-unofficial-patch/downloads/bloodlines-sdk

When I ran the "CrowbarCommandLineDecomp.exe" it failed to decompile the model file. That may be the reason why the props aren't importing, because the decompile is failing. And I would hedge a bet that the textures failing is the same reason.

image image image image

lasa01 commented 3 years ago

The problem is definitely the tth/ttz files, the addon only supports vtf texture files. Seems like they are slightly modified vtf files split into two parts, but I don't think vtflib can read those.

Also, if crowbarcmd can't decompile the models they can't be imported. Seems like the model format is quite different, since there are no vvd files. Can you check if normal crowbar is able to decompile them?

Ms-Dance commented 3 years ago

The bloodlines SDK has a special version of crowbar that works with bloodlines.

https://www.moddb.com/mods/vtmb-unofficial-patch/downloads/bloodlines-sdk

It converts it to a .qc file that I'm able to import then apply the texture manually to. There is also a TexConvert.exe that converts TTH to TGAs. So I think I have an idea of how to make this work.

1) Use crowbar to convert every .mdl to .qc 2) Convert every TTH to tga 3) Modify your blender plugin to check if the loaded directory contains "vampire.exe". If true, then move to step 4. 4) Instead of looking for the normal places for .mdl and textures to convert, it looks for the already converted .qc and .tga files and uses those. Skipping the conversion process. 5) ... 6) Profit!

Now it is possible to wrap the bloodlines texture conversion tool into the addon and do the conversion when it asks for it. But there is no command line tool for crowbar that works with bloodlines. So if we're already manually converting one we might as well convert the other. Hopefully the crowbar command tool gets updated to one that supports VTMB. When that happens, then this whole process can be automated. But until then, as long as it works, I'm happy.

image image image

lasa01 commented 3 years ago

In that case you can work around the problem without any modifications needed into the addon.

  1. Specify a cache directory in the addon preferences.
  2. Create a directory inside the cache directory with the same name as the VTMB game definition's name. Inside that directory, create a directory named "dec_models".
  3. Decompile all models inside there. Decompiled model directory structure should be {cache}/{VTMB}/dec_models/models/props/example_prop.qc for example. Make sure to disable "Folder for each model" option in Crowbar.
  4. Convert all textures into vtf, place them into the same place where the original textures are.

After that, the import should work normally.

lasa01 commented 2 years ago

Closing since I don't have time to add support for these special file formats, you can use the workaround if you need it.