Modifying surface's name of a prop break the import of this prop

Issue #228 resolved
ratus ratus created an issue

Hello Thomas,

There’s a problem when I modify the name of any prop fitting to a daz character : the import of the prop fail

Let say I put a pair of shoe to my character, I select the shoes then I open Window>Panes> tools settings

In Tools settings I select in active tool : geometry editor and in target groups : surfaces

Now I’m able to modify the name of the surface

If I change any name of the shoe surface I can’t import in blender the shoe (the character and other props are importing well)

Scale 0.009999999776482582

Loading D:- 0. Album- Personnages\Femmes\00. Gen8 Female Ref\1.Daz\test.duf
Parsing data
+FILE /d%3a/-%200.%20album/-%20personnages/femmes/00.%20gen8%20female%20ref/1.daz/test.duf
+FILE /data/rarestone/rs%20deco%20highheeled%20shoes/rs%20deco%20highheels%20b/heels%20b_50548.dsf
+FILE /data/rarestone/rs%20deco%20highheeled%20shoes/rs%20deco%20highheels%20b/uv%20sets/rarestone/base/default.dsf
-FILE /data/rarestone/rs%20deco%20highheeled%20shoes/rs%20deco%20highheels%20b/uv%20sets/rarestone/base/default.dsf
-FILE /data/rarestone/rs%20deco%20highheeled%20shoes/rs%20deco%20highheels%20b/heels%20b_50548.dsf
+FILE /data/daz%203d/genesis%208/female/genesis8female.dsf
+FILE /data/daz%203d/genesis%208/female/uv%20sets/daz%203d/base/base%20female.dsf
-FILE /data/daz%203d/genesis%208/female/uv%20sets/daz%203d/base/base%20female.dsf
-FILE /data/daz%203d/genesis%208/female/genesis8female.dsf
+FILE /data/daz%203d/genesis%208/female%20eyelashes/genesis8femaleeyelashes.dsf
+FILE /data/daz%203d/genesis%208/female%20eyelashes/uv%20sets/daz%203d/base/basic%20female.dsf
-FILE /data/daz%203d/genesis%208/female%20eyelashes/uv%20sets/daz%203d/base/basic%20female.dsf
-FILE /data/daz%203d/genesis%208/female%20eyelashes/genesis8femaleeyelashes.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlrtoesspread.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlrtoesspread.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlrfootheeledshoe.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlrfootheeledshoe.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlltoesspread.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrlltoesspread.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrllfootheeledshoe.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/pctrllfootheeledshoe.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_lfoot_pctrlltoesspread.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_lfoot_pctrlltoesspread.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_lfoot_pctrllfootheeledshoe.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_lfoot_pctrllfootheeledshoe.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_rfoot_pctrlrtoesspread.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_rfoot_pctrlrtoesspread.dsf
+FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_rfoot_pctrlrfootheeledshoe.dsf
-FILE /data/daz%203d/genesis%208/female/morphs/daz%203d/base%20pose/alias_rfoot_pctrlrfootheeledshoe.dsf
-FILE /d%3a/-%200.%20album/-%20personnages/femmes/00.%20gen8%20female%20ref/1.daz/test.duf
Fitting objects with dbz file...
Mismatch Heels B_50548, geometry: 50548 != 0
Preprocessing...
Building objects...
Dependency loop: lToe lMetatarsals
Dependency loop: rToe rMetatarsals
Python: Traceback (most recent call last):
File "C:\Users\chris\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\Diffeomorphic-import_daz-b188e28ea2ec\error.py", line 247, in execute
self.run(context)
File "C:\Users\chris\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\Diffeomorphic-import_daz-b188e28ea2ec\daz.py", line 48, in run
getMainAsset(self.filepath, context, self)
File "C:\Users\chris\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\Diffeomorphic-import_daz-b188e28ea2ec\main.py", line 95, in getMainAsset
asset.build(context, inst) # Builds morphs
File "C:\Users\chris\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\Diffeomorphic-import_daz-b188e28ea2ec\modifier.py", line 333, in build
self.makeArmatureModifier(context, ob, rig)
File "C:\Users\chris\AppData\Roaming\Blender Foundation\Blender\2.91\scripts\addons\Diffeomorphic-import_daz-b188e28ea2ec\modifier.py", line 345, in makeArmatureModifier
mod.object = rig
AttributeError: 'NoneType' object has no attribute 'object'

location: <unknown location>:-1

Comments (11)

  1. engetudouiti

    ratus it seems same problem, which you experienced already.

    when you edit surface group name, temporally in current duf scene, untill you save the modified prop as dsf data, daz only show your modification for current scene prop.

    But About this case, I suppose add on can not keep your modification.

    I suppose it need to confirmed by Thomas, but temporally, try do same thing.

    1. modifi something which actually change geometry material , rig etc.
    2. save the modfied prop , save as Figure and prop again , so your modification are saved as new data for the prop.
    3. then re-load again new saved item
    4. save as new scene, export dbz.

    after that import the duf. with options.

    If you do not do the step 2, add on need to serch around your edit parameters in scene duf only. it may need many modification for add on I think.

    There is exceptional case, add on can get parameters even though you modify,

    like labell name of the actor mesh in the scene.

    But if you modify data related parameters,

    or temporally import new morphs, in daz scene, then use it, maybe you better once save as dsf data, and keep your modifcation for the item and morphs. (if you hope so)

    overwrite daz offered assets data ofen cause issue, I know way but can not recommend, without I actually confrim with same props.

  2. ratus ratus reporter

    Hello engetudouiti,

    yes it’s kind of same but here the prop is not importing and there’s an error message

    I was just thinking about what you told : re-save the prop as a prop and yes it’s working 😉

    Thanks for your help, I will use this as a workaround

  3. engetudouiti

    Yes but may better Thomas check it .

    because I still do not know which case actually plug in can not export temp modification.

    If I can epxort with edit geometry, with add on it seems enhance much.

    but to achive it, maybe add on need to get all infomation from duf, and related files.

    I do not remember all detail of daz file management system, but I remember some temp modification data is not stored in duf. (daz will auto generate special dsf for the temp modified, but it was really difficult to serch the dsf data, without we check the saved duf code. and about those assets, it need special step to get parameters which user modfied.

  4. Thomas Larsson repo owner

    First of all, commit b188e28 is from August 15. Please update to the current version.

    There seems to be some problem with the dbz file; it does not seem to findHeels B_50548: Mismatch Heels B_50548, geometry: 50548 != 0

    I managed to change the name of a surface with the tool settings tool and then import the scene into Blender. But I’m no Daz guru and this was the first time I heard about tool settings.

  5. engetudouiti

    caution! if some one try to test with daz assets,, never save as figure prop and overwrite pelase without you know what is going on.

    (if you do it, save as different figure, so it generate real heavy data for your new figure, so do not save it actually you need to make new figure)

    So I did simple test with recent beta. it may show almost same problem

    1_ change G8 men suface group name hand to TKhand in geometry editro suface group (for mat)

    2_then save as scene.duf, export dbz, load in to blender

    3_ I do not see erroer about this case, but improter can not apply material correctly, (maybe can not generate node group with texture), then it lost material or UV

    Then I check material in blender, now it lost TKhand group, then they happend to be merged in pupils -1 ^^;

    and pupils seems lost assgined sufrace .(corrupt UV)

    in daz studio, even though I modify surface group, it seems keep current modfication. as same as we edit material group name in blender.

    But when import duf with dbz data, add on can not serch modifed surface group linked material data.

    Material "Arms" not found in <Geometry /data/DAZ%203D/Genesis%208/Male/Genesis8Male.dsf#geometry <bpy_struct, Mesh("geometry") at 0x00000126D8CE9068>>
    Existing materials:
    dict_keys(['Face', 'Lips', 'Teeth', 'Torso', 'Ears', 'Legs', 'EyeSocket', 'Mouth', 'TKarms', 'Pupils', 'EyeMoisture', 'Fingernails', 'Cornea', 'Irises', 'Sclera', 'Toenails'])
    Material "Arms" not found
    Dependency loop: lToe lMetatarsals
    Dependency loop: rToe rMetatarsals
    Unknown bone: lPectoral
    Unknown bone: rPectoral

  6. Thomas Larsson repo owner

    I had forgotten about this issue, but now it should be resolved. At least engetudouiti’s test case comes in correctly, except that the plugin does not guess that TK Arms should be colored as skin in the viewport. The problem did not have anything to do with the dbz file, which does not contain any material info. Instead, changing something in the geometry editor apparently makes a copy of the entire mesh in the scene file, but it maintains a reference to the original file and the plugin took the material names from there.

    I notice that using the geometry editor costs disk space, because the entire mesh is saved instead of just a reference, even if you just change a material name. Indeed, a scene with G8F weighs 109 kB, but that increases to 547 kB after the material name is changed.

  7. Alessandro Padovani

    In daz studio any change we make to an asset makes a copy of the asset in the scene file, to keep the user changes. It is the same as append with the blender linked libraries. If we want the modified asset to be referenced in multiple scenes then we have to save it as a support asset, file > save as > support asset. This will generate a new asset and it’s the same as link with the blender linked libraries.

    I guess the plugin is more intended to import “linked” assets than “appended” assets. But it’s good to know that support to “appended” assets is improved.

  8. engetudouiti

    @Thomas Larson

    Yes I usually seldom use to import “edit geometry scene “ for blender. at same time there are a few useful case. the above case is just test. eg when you hope to add different color for r-eye and l-eye with use vendor material.

    Though many daz user may manually make texture, but you may hope to just change color only use shader propertys. then we need to divide material group for r and l temporally. then save it as scene.

    Though I do not test, if I divide surface group as r and l for eyes how new commit work, but I know once I edit default figure geometry, then save it as scene, or subset, it need to describe all group in the duf. so it should be huge. (and once edit surface group, everytime user manually copy and paste when change material for each surface group.

    But I think it is good commit, when I really need it for some case. thank you.

  9. engetudouiti

    Though I think it arealdy resolve op issue, but I expect if it work ,,(I may test later) when divide sruface group in one UV island. Aobut this case, we can not save as dsf data (or ovwrite defult figure) so sometimes I may hope only save as scene.

    Then if importer can generate same surface group without save as dsf, there seems many case, I may hope to use it to import character.

    (once generate surface group as same as daz in blender, and could apply textres for shader nodes, I need not keep original saved duf scene for daz,,)

    Though as you know, we can do samething in blender ^^;

  10. Log in to comment