Saturday, August 17, 2024

Blender Extensions and GPL

In Blender 4.2 a new feature was introduced: Blender Extensions. The Blender Extensions platform is the online directory of free and Open Source extensions for Blender. The goal of this platform is to make it easy for Blender users to find and share their add-ons and themes, entirely within the Free and Open Source spirit. 

DAZ Importer version 4.1.0 is a legacy add-on, but the next release will be an extension, which I eventually hope to upload to the Blender extensions site. As a first step the Diffeomorphic add-ons have now been converted to extensions in the development version.

Download the development versions of the DAZ Importer and the other Diffeomorphic scripts. We see that Bitbucket adds some extra stuff to the file names. Before installing the new add-ons, make sure that no old add-ons remains, following the instructions in Safely Installing a New Version .

In Blender 4.2, open the Blender preferences window and go to the Get Extensions tab. Press on the arrow at the top right and choose Install from Disk.
Navigate to the place where the downloaded files are saved, and install the import_daz zip file. The default settings work fine.
And the new extension is installed.

We can now repeat the procedure to install the remaining add-ons.
If we switch to the Add-ons tab we see that the extension appear here too.

The add-ons are installed in the Blender/4.2/extensions/user_default directory. This is the location of Blender extensions. Legacy add-ons, like previous versions of the DAZ Importer, would be placed in the Blender/4.2/scripts/addons folder. Make sure that the same add-on does not appear in both locations.

The Diffeomorphic add-ons are backwards compatible and the same files can be installed  on Blender 4.1. The main ones are even compatible all the way back to Blender 2.83, although some features may not work correctly. Let us review how to install the add-ons on Blender 4.1.

Here we go to the Add-ons tab and press the Install button.
Select the import_daz file and install it. It is not enabled by default, so we press the checkbox to the left.
However, when we repeat the same process with one of the dependent add-ons like the Shell Editor, the add-on can not be enabled. Instead there is an error message.
The reason is that this add-ons uses the DAZ Importer, which much be named import_daz. When we look in the addons directory, we see that the add-on is named like the zip file. With extensions this problem doesn't arise.

 

GNU Public License

The Blender Extensions platform only accepts GNU GPL compliant software. Previous versions o fthe Diffeomorphic add-ons were released under a FreeBSD license. Although BSD is GNU GPL compliant, GPL is preferred, and therefore I chose to change the licence of the Diffeomorphic add-ons to GPL, more precisely GNU General Public License v2.0 or later. This change should not affect the end user in any way.

Sunday, August 11, 2024

Single DBZ Export Script and the HD Convention

The dedicated HD export script has been removed from the Diffeomorphic scripts in the development version. Instead the ordinary Export To Blender script can handle both plain and HD export. It is in fact more powerful than before because the user can now decide which figures should be exported as HD meshes.

In the Diffeomorphic folder, the Export HD To Blender script is gone (you have to remove it manually, but it is not part of the import_daz repo anymore).
We are going to export the Victoria 9 HD figure with some clothes and hair. As is often the case for HD figures made for DAZ Studio, the name of the main figure ends with "HD". The full figure consists of several subfigures, and we notice that none of them have names that end with "HD".

Now double-click on the Export Blender icon, or select Export Blender from the File menu if you have run the Setup Menus script. After confirming the file path of the dbz file, we are prompted with another popup dialog with three options:

  • Export HD. If disabled, no HD data is saved in the dbz file, and the other two options have no effect. This corresponds to the behaviour of the old "Export Blender" script.
  • HD Convention. If Export HD is enabled, HD data is only exported for figures whose names end with the letter "HD", otherwise it is exported for all figures.
  • Export HD UVs. Export the UV map for HD meshes. This is the same option as in the old dedicated HD exporter.

When we now import the file in Blender, all meshes are imported at base resolution. The Victoria 9 HD mesh is renamed to "Victoria 9 Mesh".
Let us now export the DBZ file again, but this time we turn on the Export HD option, while leaving the HD Convention option disabled. Now HD data is exported for all figures. This is what the old "Export HD to Blender" script did.
When we import the file into Blender, two collections are created. The Victoria 9 collection contains all the base meshes, and the Victoria 9 HD collection contains the HD objects. They base and HD objects are different, except for the line meshes that lack faces.
We can see the difference between the base and HD meshes in the modifier tab. The base mesh typically has a subsurf modifier, whereas the HD mesh has a multires modifier.
Finally let us export the file with both Export HD and HD Convention enabled. The HD convention is that HD data is only exported for figures that end with the letters "HD". Many modern DAZ figures that have interesting HD data are already named thus.
The only figure in our scene that ends with "HD" is Victoria 9 HD. When imported into Blender, this is the only mesh which has a multires modifier. All the other meshes are imported at base resolution with subsurf modifiers.
We can use the HD convention to select which meshes that we want to export HD data for, and thus which meshes will have a multires modifier in Blender. Simply add a "HD" to the end of the figure name. Here we added "HD" to the eyes, bikini and bra.
In Blender there are again two collections. The base collection contains the base versions of the bikin, bra and eyes, and the HD collection contains the HD versions of the same meshes.
And if we look in the modifier tab, the HD meshes have a multires modifier instead of a subsurf modifier.