Friday, November 25, 2022

Safely Installing a New Version

When you install a new version of the DAZ Importer it is necessary to remove old versions first and make a clean install, otherwise old files may remain and cause errors when installing the add-on. The problem arises when the new version has either removed or added files. E.g., version 1.6.2 removed globvars.py and added store.py, so those files may cause problems unless you install the add-on cleanly.

Open the Blender preferences window and go to the Addons section. The File: entry shows where the add-ons are installed. In my case the directory is

C:\Users\Comsol\AppData\Roaming\Blender Foundation\2.93\scripts\addons.

Disable the DAZ Importer and MHX RTS add-ons. To install the new version from a zip file, the natural next step would be to press the Install button and to navigate to the zip file which contains the new version.

 However, this does not work unless the old and new versions contain exactly the same files! The exact error message seems to vary, in my case I got the following message and the new versions were not installed:

Traceback (most recent call last):
  File "d:\home\blenders\blender-2.93\2.93\scripts\startup\bl_operators\userpref.py", line 668, in execute
    file_to_extract.extractall(path_addons)
  File "d:\home\blenders\blender-2.93\2.93\python\lib\zipfile.py", line 1633, in extractall
    self._extract_member(zipinfo, path, pwd)
  File "d:\home\blenders\blender-2.93\2.93\python\lib\zipfile.py", line 1687, in _extract_member
    open(targetpath, "wb") as target:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Comsol\\AppData\\Roaming\\Blender Foundation\\Blender\\2.93\\scripts\\addons\\mhx_rts\\animation.py'

Instead we must take make some extra steps to ensure that the new version can be added cleanly. First quit Blender.

In Windows, navigate to the location of the add-ons recorded above. Delete all folders that will be reinstalled, i.e. import_daz and mhx_rts. It is not necessary to remove the daz_hd_morphs folder, because Xin's HD morph plugin is no longer bundled with the DAZ Importer.

Now the old folders are deleted and we can proceed to make a clean install.

Restart Blender and open the Preferences window. Now we can safely press the Install button.

Select the zip file containing the latest version of the add-ons.
Now the new versions should not cause problems anymore. The release contains two add-ons, so the first one shows up. Enable the DAZ Importer.

Then type "mhx" in the search field and enable the MHX Runtime System if you want to.

 

Summary

  1. Disable the add-ons.
  2. Quit Blender.
  3. Erase the old add-ons from disk.
  4. Start Blender.
  5. Install the new add-ons from the zip file.
  6. Enable the add-ons.

Sunday, November 20, 2022

Version 1.6.2 of DAZ Importer and MHX Runtime System Released

Almost a year has past since stable version 1.6.1 was released, and it is now seriously outdated. Today the new stable version 1.6.2 is released. This is merely a snapshot of the current state of the development version. Apart from lots of bug-fixes, the new version has support from Genesis 9. It can be downloaded from

https://www.dropbox.com/s/yq8g3biao9xuf3i/import_daz_mhx_rts_v1_6_2.zip 

The documentation has not been updated for this release. In a few months I will hopefully release version 1.7 with updated documentation. In the same time the documentation will move to the Bitbucket wikis associated with the add-ons. The new documentation locations will be

https://bitbucket.org/Diffeomorphic/import_daz/wiki/Home

Work on the wikis has commenced but it is still at a very early stage.

Midnight Arrow suggested to move the documentation into a wiki to make it searchable. It is not clear to me if relocating to Bitbucket will achieve this goal, but it has several other advantages that are important to myself:

  • Easier to achieve a consistent look and feel.
  • Faster editing.
  • Better backup since the wiki is a git repo.

Also, putting the documentation at the same place as the code feels natural. There is little point in reinventing the wheel when somebody else already has done it.

Tuesday, November 1, 2022

Checking Mesh Size in DAZ Studio

Some DAZ meshes have way too many vertices. Dealing with such huge meshes can be very time-consuming, and I personally avoid the biggest meshes. However, it not so easy to judge the size of a mesh in DAZ Studio. My own method has been to export the character to Blender. If exporting takes a long time, the scene contains some large mesh. Then I replace the large mesh, which usually is the hair, with something else.

However, it is a waste of time to wait a minute for the export script to finish, when all I want to do is to check the mesh sizes. Now there is a new script which displays the mesh sizes without actually doing anything else. The script is call Mesh Stat and is located in the Diffeomorphic script folder.

If you run the Setup Menus script Mesh Statistics becomes a new entry in the File menu.
My scene consists of a Genesis 8 Female with the Basic Wear outfit and Toulouse hair. The script displays a message box with a list of the meshes in the scene. For each mesh the number of vertices, edges, faces, and polylines are shown. The Export To Blender script will only export the base meshes, whereas the Export HD To Blender script exports both the HD and base meshes.

We see that the Toulouse hair has 35228 vertices. Exporting the scene to Blender took 2.308 seconds.

Now I replaced the Toulouse hair with Monica hair. It has 206277 vertices, i.e. almost six times as many as Toulouse hair, and the export time increased to 6.564 seconds. Still quite manageable.

Then I replaced the hair again, this time to Joy hair. It is a polyline hair, so the number of edges and faces is zero, whereas the number of polylines is 75758. But what is important is that the number of vertices is a whopping 1269892, i.e. 36 times bigger than Toulouse hair. As a consequence, the export time increases to 38.381 seconds.

In short, the Mesh Statistics script is a quick way to check the size of the meshes in your scene, and avoid the worst time thiefs.