When using a unique to import asset as I always do I got a bunch of errors...

Issue #1726 resolved
Joe Morris @ FAST Animation Studio Toolz created an issue

I put them in a text file at this link i'm not really sure how to debug the errors i'm gonna throw them into chat GPT and see what I could come up with:

It was the FG modern coffee shop

https://drive.google.com/file/d/1T5rA_Ma4OOsIEstPGljYa9rmvMgZudGP/view?usp=sharing

Comments (25)

  1. Joe Morris @ FAST Animation Studio Toolz reporter

    The post title should have been when using the unique setting.. In my testing I deleted the beverage dispenser the invalid mesh and everything worked I really like how you guys added those message boxes I thought that was really cool I forgot where I saw them… But if you could output a message box to the end user when this happens like if an invalid mesh comes in a lot of errors come after that because they may not know what's going on and just say an invalid mesh go to daz studio and delete and say the mesh name…. And just for note it was the FG Modern coffee shop ready scene that I loaded

  2. Joe Morris @ FAST Animation Studio Toolz reporter

    And this is this error isn't being logged via your add on or with silent mode set to false

  3. Alessandro Padovani

    diffeomorphic 1.7.2.1787

    I can confirm the issue. An invalid mesh is detected and this is normal it can happen, then there’s a crash. The scene itself appears to be loaded correctly though, but it’s a large scene I can’t tell if something is missing.

    https://www.daz3d.com/fg-modern-coffee

    steps:

    1. import the modern coffee scene
    Loading C:\Users\Alessandro\Documents\DAZ 3D\Studio\My Library\Scenes\cofee.duf
    Parsing data
    Preprocessing...
    Building objects...
    Invalid mesh "FG Beverage Dispenser-1". Correcting.
    Traceback (most recent call last):
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 225, in run
        self.loadDazFile(filepath, context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 182, in loadDazFile
        inst.finalize(context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\node.py", line 487, in finalize
        self.buildChannels(ob)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\camera.py", line 107, in buildChannels
        value = channel["current_value"]
    KeyError: 'current_value'
    

  4. Alessandro Padovani

    If I load the beverage dispenser alone there’s no crash, but a couple of strange warnings are reported. The scene loads and renders correctly as far as I can see.

    steps:

    1. import the beverage dispenser
    Loading C:\Users\Alessandro\Documents\DAZ 3D\Studio\My Library\Scenes\dispenser.duf
    Parsing data
    Preprocessing...
    Building objects...
    Ignore <Instance Tonemapper%20Options-1 L:Tonemapper Options 0 N: Tonemapper Options P: None R: None>
    Ignore <Instance Environment%20Options-1 L:Environment Options 0 N: Environment Options P: None R: None>
    Invalid mesh "FG Beverage Dispenser-1". Correcting.
    File "C:\Users\Alessandro\Documents\DAZ 3D\Studio\My Library\Scenes\dispenser.duf" loaded in 0.235 seconds
    Draw environment 0
    WARN (bpy.rna): C:\Users\blender\git\blender-v360\blender.git\source\blender\python\intern\bpy_rna.c:1343 pyrna_enum_to_py: current value '0' matches no enum in 'Scene', 'Scene', 'DazMorphCatsContent'
    WARN (bpy.rna): C:\Users\blender\git\blender-v360\blender.git\source\blender\python\intern\bpy_rna.c:1343 pyrna_enum_to_py: current value '0' matches no enum in 'Scene', 'Scene', 'DazMorphCatsContent'
    
    Invalid meshes found and corrected.
    Importing morphs may not work:
      FG Beverage Dispenser-1
    

  5. Joe Morris @ FAST Animation Studio Toolz reporter

    you gotta load the whole ready made scene you know there's console errors but the scene does get imported I haven't really checked it out I just went ahead and deleted the beverage dispenser… but here's the console output:

    Loading C:/Users/W/AppData/Roaming/Blender Foundation/Blender/3.6/scripts/addons/FAST/daz_studio_save/test.duf
    Parsing data
    Preprocessing...
    Building objects...
    Invalid mesh "FG Beverage Dispenser-1". Correcting.
    Error: Python: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 225, in run
        self.loadDazFile(filepath, context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 182, in loadDazFile
        inst.finalize(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\node.py", line 487, in finalize
        self.buildChannels(ob)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\camera.py", line 107, in buildChannels
        value = channel["current_value"]
    KeyError: 'current_value'
    Location: C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py:113
    Error: Python: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 711, in run
        self.easyImport(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 720, in easyImport
        bpy.ops.daz.import_daz(
      File "C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py", line 113, in __call__
        ret = _op_call(self.idname_py(), None, kw)
    RuntimeError: Error: Python: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 225, in run
        self.loadDa... truncated
    ------------------------
    Traceback: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\FAST\fast_operators.py", line 3481, inexecute
        bpy.ops.daz.easy_import_daz(fitMeshes=manager.diffeomorphic_fit_meshes)
      File "C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py", line 113, in __call__
        ret = _op_call(self.idname_py(), None, kw)
    RuntimeError: Error: Python: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 711, in run
        self.easyImport(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 720, in easyImport
        bpy.ops.daz.import_daz(
      File "C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py", line 113, in __call__
        ret = _op_call(self.idname_py(), None, kw)
    RuntimeError: Error: Python: Traceback (most recent call last):
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 225, in run
        self.loadDazFile(filepath, context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 182, in loadDazFile
        inst.finalize(context)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\node.py", line 487, in finalize
        self.buildChannels(ob)
      File "C:\Users\W\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\camera.py", line 107, in buildChannels
        value = channel["current_value"]
    KeyError: 'current_value'
    Location: C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py:113
    Location: C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\modules\bpy\ops.py:113
    

    I would like if there was some way to report to the end user like via a message box you know exactly what mesh wasn't invalid mesh so they could go directly to their DAZ studio file and delete it and that would really improve things i've been at it all day and I can't really figure out how to grab the console output above the trace back it's like just one thing that I'm still learning is outputting the entire console output to the file so I could search it…. I'll start again tomorrow on it though...I was going to search for nodes dot PY and finalize is that valid will the line 487 I think it is error always occur when there's an error an invalid mesh error

  6. Joe Morris @ FAST Animation Studio Toolz reporter

    and when I import like an arbitrary old Genesis 3 with driver warnings I don't know if this happens every time but I get two of your message boxes one of them is blank the other one is informative though.

  7. Alessandro Padovani

    The message box doesn’t appear because python crashes. If Thomas can fix the crash then the message box will appear.

  8. Thomas Larsson repo owner

    I don’t have this asset, but I’m pretty sure that the last commit will fix the crash.

  9. Thomas Larsson repo owner

    As for the warnings, it is Blender that prints them and I don’t know why, but they seem to be harmless.

  10. Alessandro Padovani

    Commit 1b558f7.

    Now there’s a division by zero if we import the coffee scene.

    Loading C:\Users\Alessandro\Documents\DAZ 3D\Studio\My Library\Scenes\cofee.duf
    Parsing data
    Preprocessing...
    Building objects...
    Invalid mesh "FG Beverage Dispenser-1". Correcting.
    Traceback (most recent call last):
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\error.py", line 222, in execute
        self.run(context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 225, in run
        self.loadDazFile(filepath, context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\main.py", line 182, in loadDazFile
        inst.finalize(context)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\node.py", line 487, in finalize
        self.buildChannels(ob)
      File "C:\Users\Alessandro\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\import_daz\camera.py", line 126, in buildChannels
        self.aspectRatio = value[1]/value[0]
    ZeroDivisionError: division by zero
    

  11. Thomas Larsson repo owner

    Unfortunately I cannot import the camera because it is specific to this asset:

    Some assets were not found. Check that all DAZ root paths have been set up correctly.
      /data/Fugazi1968/FG Modern Coffee Shop/Camera 1/Camera 1.dsf
    

    Nevertheless, I think the last commit will do it.

  12. Joe Morris @ FAST Animation Studio Toolz reporter

    Thank you very much…. Yeah, I'll keep trying to find more information about the warnings… It's too bad they don't give better details… I know a programmer hes like the best I've ever met like. I'll run up by him and I'll tell him even high level people like you are wondering too 👍

  13. Alessandro Padovani

    Commit 6ef1f15.

    Nope, always division by zero. Here’s the dsf.

    note. The underscore is added by Bitbucket when I upload, the original name is “Camera 1.dsf“

    note. I had a look at the cameras in daz studio but didn’t notice any strange value that may cause a division by zero, also in #75 we don’t use divisions when converting values to blender, unless something is changed.

  14. Alessandro Padovani

    update.

    If we look at the camera dsf we see that the cameras properties are defined in a extra list named “studio node channels“. Apparently daz studio loads it correctly while the addon gets confused, and this is why we get errors. Hope this helps. Let us know.

  15. Thomas Larsson repo owner

    Fixed in last commit. I also turned on depth of field if the focus distance is given.

  16. Alessandro Padovani

    Commit faf3cba.

    bug. camera 1. All cameras work fine but camera 1. For some reason the camera sensor height is set to 64 mm, while in daz studio the frame width is 36 mm. This results in a different zoom factor. The blender sensor height should be the same as the daz frame width as reported in #75.

    # camera conversion
    blender focal lenght = daz focal lenght
    blender sensor fit = vertical
    blender sensor height = daz frame width
    

    bug. dof. The depth of field property should be set on or off the same as daz studio, while in blender it is always on. Please note that daz studio sets the focus distance automatically whenever we change a camera parameter, so when there’s a focus distance it doesn’t imply it is correct and intended for dof.

    note. When I load the coffee scene, apart the invalid mesh there’s a bunch of “fix mapping“ messages that I don’t know what they are. Are they from blender or from the addon ? The rendering works fine.

  17. Thomas Larsson repo owner

    Dof is no longer automatically enabled if there is a focus distance.

    The Fix mapping warnings can be ignored and should probably be suppressed. The plugin sets the translation, rotation and scale of mapping nodes when they are created, but when the importer has finished the translation value is always reset to zero; rotation and scale remain correct. I have no idea why this happens. To fix it the importer keeps a list with mapping nodes and the correct translations, and set the translation again as a last step.

  18. Alessandro Padovani

    Commit b191dc6.

    The dof works fine, thank you for the fix. The sensor bug with camera 1 is not fixed.

    As for “fix mapping” I agree these warnings are not useful and should be hidden, unless for debug purposes. As it’s an “internal fix“ and not something wrong in the duf file.

  19. Log in to comment