Giter VIP home page Giter VIP logo

daztoblender's Introduction

Daz To Blender Bridge

A Daz Studio Plugin based on Daz Bridge Library, allowing transfer of Daz Studio characters and props to Blender.

Table of Contents

  1. About the Bridge
  2. Prerequisites
  3. How to Install
  4. How to Use
  5. How to Build
  6. How to QA Test
  7. How to Develop
  8. Directory Structure

1. About the Bridge

This is a refactored version of the original DazToBlender Bridge using the Daz Bridge Library as a foundation. Using the Bridge Library allows it to share source code and features with other bridges such as the refactored DazToUnity and DazToBlender bridges. This will improve development time and quality of all bridges.

The Daz To Blender Bridge consists of two parts: a Daz Studio plugin which exports assets to Blender and a Blender Plugin which contains scripts and other resources to help recreate the look of the original Daz Studio asset in Blender.

2. Prerequisites

  • A compatible version of the Daz Studio application
    • Minimum: 4.10
  • A compatible version of the Blender application
    • Minimum: 2.83 LTS
  • Operating System:
    • Windows 7 or newer
    • macOS 10.13 (High Sierra) or newer

3. How to Install

Daz Studio

  • You can install the Daz To Blender Bridge automatically through the Daz Install Manager or Daz Central. This will automatically add a new menu option under File -> Send To -> Daz To Blender.
  • Alternatively, you can manually install by downloading the latest build from Github Release Page and following the instructions there to install into Daz Studio.

Blender

  1. The Daz Studio Plugin now comes embedded with an installer for Blender. From the Daz To Blender Bridge Dialog, there is now section in the Advanced Settings section for Installing the Blender Plugin.
  2. Select your Blender Version from the drop down menu. If your Blender version is not directly supported by this drop-down or you have a custom plugins folder, then select "Custom Addon Path".
  3. Then click the "Install Plugin" button. If you selected a supported version of Blender, you should see a popup dialog box confirming if the Blender plugin was successfully installed for your version of Blender. Be sure to restart Blender after installing the Blender Plugin.
  4. From Blender, open the Blender Preferences window by selecting Edit -> Preferences from the Blender main menu.
  5. In the Blender Preferences window, click on the Addons button found along the left side of the window.
  6. Scroll down the list of add-ons, and look for "Import-Export: DazToBlender". Check the box next to "Import-Export: DazToBlender" to enable the plugin. A DazToBlender tab should now appear on the Blender "Tool-shelf" which are a set of vertical tabs along the right edge of the Blender viewport window.

The following steps are for people who wish to use the "Custom Addon Path" installation option.

  1. If you chose "Custom Addon Path", you will see a window popup to choose a custom Scripts or Addons folder. The starting folder path will be the location where Blender stores preferences and files for each version of Blender.
  2. If you are using an unsupported version of Blender, you should see a subfolder corresponding to your version from the starting folder path. Open that folder and select the scripts folder. Then click "Select Folder".
  3. If you have configured a custom Scripts path from the Blender Preferences window, then you may navigate to that folder and click "Select Folder". You will then see a confirmation dialog stating if the plugin installation was successful.

4. How to Use

  1. Open your character in Daz Studio.
  2. Make sure any clothing or hair is parented to the main body.
  3. From the main menu, select File -> Send To -> Daz To Blender.
  4. A dialog will pop up: choose what type of conversion you wish to do, "Static Mesh" (no skeleton), "Skeletal Mesh" (Character or with joints), or "Animation".
  5. To enable Morphs or Subdivision levels, click the CheckBox to Enable that option, then click the "Choose Morphs" or "Bake Subdivisions" button to configure your selections.
  6. Click Accept, then wait for a dialog popup to notify you when to switch to Blender.
  7. From Blender, click the "DazToBlender" tab from the Blender toolshelf, located along the right-edge of the Blender viewport.
  8. For Daz Characters or other assets transferred with the "Skeletal Mesh" option, select Import New Genesis Figure. For props or other assets transferred using the "Static Mesh" option, select Import New Env/Prop.

Morphs

  • If you enabled the Export Morphs option, you will see sliders for each Morph in the "Morphs List" section of the DazToBlender toolshelf.

Animation

  • To use the "Animation" asset type option, your Figure must use animations on the Daz Studio "Timeline" system.
  • If you are using "aniMate" or "aniBlocks" based animations, you need to right-click in the "aniMate" panel and select "Bake To Studio Keyframes".
  • Once your animation is on the "Timeline" system, you can start the transfer using File -> Send To -> Daz To Blender.
  • The transferred animation should now be usable through the Blender Animation interface.

Subdivision Support

  • Daz Studio uses Catmull-Clark Subdivision Surface technology which is a mathematical way to describe an infinitely smooth surface in a very efficient manner. Similar to how an infinitely smooth circle can be described with just the radius, the base resolution mesh of a Daz Figure is actually the mathematical data in an equation to describe an infinitely smooth surface. For Software which supports Catmull-Clark Subdivision and subdivision surface-based morphs (also known as HD Morphs), there is no loss in quality or detail by exporting the base resolution mesh (subdivision level 0).
  • For Software which does not fully support Catmull-Clark Subdivision or HD Morphs, we can "Bake" additional subdivision detail levels into the mesh to more closely approximate the detail of the original surface. However, baking each additional subdivision level requires exponentially more CPU time, memory, and storage space.
  • Since version 2.8, Blender has built-in Catmull-Clark Subdivision Surface support like Daz Studio. This is much faster and should be used instead of baking out subdivision levels during the Bridge Export process.
  • Blender Subdivision is fully supported by modern Daz Figures which will transfer to Blender as a fully compatible level 0 subdivision surface, ready for subdivision operations through Blender.
  • You can find out more about Blender's built-in Subdivision Support here: https://docs.blender.org/manual/en/3.1/modeling/modifiers/generate/subdivision_surface.html

5. How to Build

Requirements: Daz Studio 4.5+ SDK, Qt 4.8.1, Autodesk Fbx SDK, Pixar OpenSubdiv Library, CMake, C++ development environment

Download or clone the DazToBlender github repository to your local machine. The Daz Bridge Library is linked as a git submodule to the DazBridge repository. Depending on your git client, you may have to use git submodule init and git submodule update to properly clone the Daz Bridge Library.

Use CMake to configure the project files. Daz Bridge Library will be automatically configured to static-link with DazToBlender. If using the CMake gui, you will be prompted for folder paths to dependencies: Daz SDK, Qt 4.8.1, Fbx SDK and OpenSubdiv during the Configure process.

6. How to QA Test

To Do:

  1. Write QA Manaul Test Cases.md for DazToBlender using Example QA Manual Test Cases.md.
  2. Implement the manual tests cases as automated test scripts in Test/TestCases.
  3. Update Test/UnitTests with latest changes to DazToBlender class methods.

The QA Manaul Test Cases.md document should contain instructions for performing manual tests. The Test folder also contains subfolders for UnitTests, TestCases and Results. To run automated Test Cases, run Daz Studio and load the Test/testcases/test_runner.dsa script, configure the sIncludePath on line 4, then execute the script. Results will be written to report files stored in the Test/Reports subfolder.

To run UnitTests, you must first build special Debug versions of the DazToBlender and DzBridge Static sub-projects with Visual Studio configured for C++ Code Generation: Enable C++ Exceptions: Yes with SEH Exceptions (/EHa). This enables the memory exception handling features which are used during null pointer argument tests of the UnitTests. Once the special Debug version of DazToBlender dll is built and installed, run Daz Studio and load the Test/UnitTests/RunUnitTests.dsa script. Configure the sIncludePath and sOutputPath on lines 4 and 5, then execute the script. Several UI dialog prompts will appear on screen as part of the UnitTests of their related functions. Just click OK or Cancel to advance through them. Results will be written to report files stored in the Test/Reports subfolder.

For more information on running QA test scripts and writing your own test scripts, please refer to How To Use QA Test Scripts.md and QA Script Documentation and Examples.dsa which are located in the Daz Bridge Library repository: https://github.com/daz3d/DazBridgeUtils.

Special Note: The QA Report Files generated by the UnitTest and TestCase scripts have been designed and formatted so that the QA Reports will only change when there is a change in a test result. This allows Github to conveniently track the history of test results with source-code changes, and allows developers and QA testers to notified by Github or their git client when there are any changes and the exact test that changed its result.

7. How to Modify and Develop

The Daz Studio Plugin source code is contained in the DazStudioPlugin folder. The Blender Plugin source code and resources are available in the /Blender/appdata_common/Blender Foundation/Blender/BLENDER_VERSION/scripts/addons/DTB folder.

The DazToBlender Bridge uses a branch of the Daz Bridge Library which is modified to use the DzBlenderNS namespace. This ensures that there are no C++ Namespace collisions when other plugins based on the Daz Bridge Library are also loaded in Daz Studio. In order to link and share C++ classes between this plugin and the Daz Bridge Library, a custom CPP_PLUGIN_DEFINITION() macro is used instead of the standard DZ_PLUGIN_DEFINITION macro and usual .DEF file. NOTE: Use of the DZ_PLUGIN_DEFINITION macro and DEF file use will disable C++ class export in the Visual Studio compiler.

8. Directory Structure

Within the Blender directory are hierarchies of subdirectories that correspond to locations on the target machine. Portions of the hierarchy are consistent between the supported platforms and should be replicated exactly while others serve as placeholders for locations that vary depending on the platform of the target machine.

Placeholder directory names used in this repository are:

Name Windows macOS
appdata_common Equivalent to the expanded form of the %AppData% environment variable. Sub-hierarchy is common between 32-bit and 64-bit architectures. Equivalent to the ~/Library/Application Support directory. Sub-hierarchy is common between 32-bit and 64-bit architectures.
appdir_common The directory containing the primary executable (.exe) for the target application. Sub-hierarchy is common between 32-bit and 64-bit architectures. The directory containing the primary application bundle (.app) for the target application. Sub-hierarchy is common between 32-bit and 64-bit architectures.
BLENDER_VERSION The directory named according to the version of the Blender application - see Blender Documentation - e.g., "2.80", "2.83", etc. Same on both platforms.

The directory structure is as follows:

  • Blender: Files that pertain to the Blender side of the bridge
    • appdata_common: See table above
      • Blender Foundation: Application data specific to the organization ^ Note: this level of the hierarchy is not present on macOS ^
        • Blender: Application data specific to the application
          • BLENDER_VERSION: See table above
            • ...: Remaining sub-hierarchy
  • DazStudioPlugin: Files that pertain to the Daz Studio side of the DazToBlender bridge
  • dzbridge-common: Files from the Daz Bridge Library used by DazStudioPlugin
  • Test: Scripts and generated output (reports) used for Quality Assurance Testing.

daztoblender's People

Contributors

danielbui78 avatar guto88 avatar rbtwhiz avatar samjay3d avatar vatlu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daztoblender's Issues

"To Rigify" Error

error
-Load Genesis 8 Male in Daz
-Use Daz To Blender Bridge with no morph and no animation
-Import Genesis 8 in Blender
-Use "To Rigify"
-Error

Different Issue Importing Scenes and outfits into Blender

DAZ 4.15
Bridge Version: 2.3.7
This product: https://www.daz3d.com/celebrations-for-baroque-grandeur-iray-addon

When trying to import Celebrations for Baroque Grandeur Iray Addon, nothing else in the scene, on the DAZ side, it acts like there is only people in the scene. First it tells me that transferring 3 or more people will freeze things. Then it asks me to choose the subdivs for each of the items in the scene. It appears to export something.

On the Blender side, nothing happens in the Env/Props import. For figures, I get the tiny tiny collection of shapes you get with a figure armature (maru, octagon, pentagon, etc.) The main thing I get is the image that an error has occurred and the three possibilities about body erasure, unsupported genitals, and geo-grafting.

Also, in importing outfits not fitted to any character, the armature is located flat on the ground on the right side facing to the outfit.
Capture

couple of issues

  1. the download does not create a zip file, in the appdata/roaming/blender foundation folder, the daz addon musty be zipped up manually to install in blender
  2. the export from daz creates a FIG_0 folder in exports folder which causes the blender import to crash, user has to copy the files from FIG_0 and paste into the FIG root folder.
  3. once all the above is done blender import wont crash with errors but.... it does absolutely nothing other than create some collections, no geometry, nothing imported

complete fail

Issues with bones and rig when importing into blender

gfs

I've updated, I've reinstalled Daz Studio, I've manually installed the addon in blender but the rig and it's bones always import wrong. I don't know why. I don't see anyone else complaining about this issue so I'm guessing it's something I've done but I don't know what

Cannot Import Animation Pose Duf Files.

I cannot import poses/animations into Blender that I make myself in Daz Studio but preset poses can be imported successfully.

The same poses (and animations) I make can be applied successfully within Daz Studio so they should work.

Attached is an example of a pose I cannot import. Just remove the .txt extension.
walk-jump.duf.txt

I am using DazToBlender_2.3.8_beta with Blender 2.93

Morphs List becomes empty after load existing .blend files

When I export from Daz and import in Blender, the Morph List works as expected. However, I saved the .blend file, closed Blender, re-open it and load the saved file, Morph List is all gone.

image

Blender version: 2.9.3
DazToBlender version: 2.3.7, 2.3.8, 2.3.9 all have this problem.

IK FK foot exchange cause moving for G3 foot

Though I still not test with default G3 female, but when I exchange FK to IK, or IK to FK,
it change foot pose and move gradually. It is not expected for IK FK compatible rig.
(though one click convert IK FK is awsom I like the way)

  1. load G3F character in blender
  2. click lShin_IK from DazToBlender UI. it move foot around bones.
  3. click lShin_IK to de-activate. it move foot around bones strange way
    continue 2 and 3, now my actor foot corrupted.

I afraid it is because, DAZ made G3 small toes not parented by Toe but be parented by Metalsals.
it make everything difficult when make IK FK foot stable in blender.
So if it not work for G3 only, I request if you remove constrain, (or DAZ ERC) but simply parented by Toe bone.
so when Toe rotate >> child Toe bones rotate.

Though I know, daz studio way which used for Genesis3 is more smart, (it bend each toe bone more naturall)
but there seems no way to make stable IK FK for G3 foot.. (if it move with IK FK switch, it lost means,,,)
(actually I hoped to know, and have serched way to get IK FK foot for G3 figure without remove unique structure,
but when convert rig for blender with IK FK, I could not find good way,,without change strcture)

Mesh and skeleton just go hogwild

A recent update has caused models to start just breaking when imported. Like, this is how it should look, it's fine when I set it to the rest position in Blender.

image

But when initially imported, and set to pose position its just

image

hogwild.

I tried applying the rest pose and various other things to no avail. When applying the rest pose, the skeleton itself goes where it should, but the mesh continues to turn to spaghetti.

image

If anyone has any solution, I would certainly appreciate it. Otherwise, my next course of action shall be an exorcism.

Shape keys are not driven by bones

Blender versions tried: 2.91.2, 2.92
Daz studio 4.15
Daz to Blender 2.1.0 (updated today)

With the basic genesis 8 female (I have also tried 8.1), the character seems to be imported properly but when posing it, the shape keys are not following.
As a result, the mesh is deformed only by bones and joints are that strange:
image

I really love the way importing a character into blender is easy with this bridge. Tell me if I can do anything to help!

Setting scale in Daz leads to incorrect rig

Changing the "scale" parameter in Daz leads to an incorrect rig in Blender - it seems that the rig is scaled up but the mesh is not.

This is not the case when the scale parameter is driven my some other morph, such as a full character morph. In this case the rig will be correct in Blender, as long as the scale parameter was not modified directly.

Here's an example showing a Genesis 8 Male figure with 120% scale in Daz, imported into Blender.

rigproblem

Plugin version: 2.3.7
Blender version: 2.93

G3 smalltoe1 (R and L) roll seems not circulated correctly

I check how toe constrain work with small toes , then confirm it use constrain. it seems reasonable.
but when I pose toe with use local axis, only smalltoe1 (L and R) bend strange direction.

I check consttrain parameters, but it seems correct. then I assume, the SmallToe bone roll is wrong circulated
when imported. I see same problem about both side SmallToe1 of Genesis3 Actor

in daz
daztoe

btoe

Do I need to remove morphs which may adjust foot in daz studio? ( if it cause matter)

yes I confirm actually bone roll is wrong. ( local axis (or normal)) for bend direction about those 2 toe bones. Of couse in daz studio there is no problem about same actor. (which I imported)
wrongroll

(editted to attach pic)

Armature, Shapekeys, and Pose

Genesis 8 female--a more complex pose, but it's not supposed to look horrific like this. DAZ 4.15, Bridge 2.3.1.1

A. All shapekeys are missing
B. Mesh and armature are not the same size, resulting in armature not matching up to mesh, or sometimes it will be the right size but lower.
C. Pose warps mesh in strange ways because of armature
D. Clicking on shin IK takes armature into edit mode but does not show IK bones for posing (at least not that I can find). Okay, edit, I found them behind the feet, but they don't work.
E. Porting clothes over on an empty armature (no genesis figure attached but still poseable clothes) twists bones in strange ways so that mesh is warped. This used to work fine on the old bridge.

Blender Version:
Screenshot 1
Screenshot 2

This is what she's supposed to look like in DAZ (added a dress in this screenshot, so ignore).
Screenshot 3

Figures in Group cause silent failure

First, thanks for adding the checkbox to skip the morph dialog. This speeds things up a lot for me.

Error repro:

  1. Load figure.
  2. Parent figure under a Group node (I do this regularly to manage scenes with lots of figures so I can hide them and all their attachments easily)
  3. Run DTB export.

Result:

  1. Initial dialog (Figure/Env/Both) doesn't appear at all.
  2. The script appears to run with all the usual behaviors (items being made visible, figure pose being reverted to zero) but the export file doesn't appear in the export folder; running the Blender plugin doesn't find the exported data.

Workaround:
Manually unparent figure from Group node before running DTB export.

JCMs not exported

Hello,

I use the latest version 2.3.1 but the JCMs are not exported.
image
This is how it should look like:
image

It also applies expression morphs on the stockings for example:
image

Import error message must be valid and informative

The import script reports "Appropriate FBX is not exists!"

  1. "... DOES not exist_" is grammatically correct.

  2. The exact missing file must be reported instead of general wording like "Appropriate FBX", e.g. "B_FIG.fbx in C:\KDV\Documents\DTB\FIG\FIG1 is missing".
    In case the FBX must fit some criteria, the criteria must be reflected in the error message, e.g. "C:\KDV\Documents\DTB\FIG\FIG1\B_FIG.fbx 'ApplicationVendor' value must be 'DAZ 3D' instead of 'SuppaDuppaPlaceholder'"

Reported this way the errors are much easier to locate and fix, without the need to debug the script sources.

DTB 2.1.0 - Issue with IK not working when set from DazToBlender panel

Hi,

My configuration is:

  • Blender: 2.90
  • DAZStudio: 4.12.1.118
  • Bridge: 2.1.0

I've noticed that if IK mode is selected on any of rHand_IK, lHand_IK, rShin_IK or lShin_IK in the DazToBlender panel, that any movement of the corresponding bone in Pose mode will not work. That is, the bone will move, but the limb will not.

This appears to be due to the buttons on the panel not setting the Influence property in the Bone Constraint properties. If I manually set this to 1.0, the limb moves and to some extent tracks correctly until extreme positions are used, which can cause the limb to warp into an unnatural shape.

image

I can see the functions that do this in init.py.

def set_ik(data_path):
    set_ik_influence(data_path, 1.0)

def set_fk(data_path):
    set_ik_influence(data_path, 0.0)

Getting Error when importing

Hello,

I'm getting a persistent error every time I hit that Import New Genesis Figure in Blender Bridge. Everytime I try, it opens a Report: Error window just before loading the character. The character is then loaded with a bunch of errors in the rig, in the character's accessories, none of the body morphs are imported, some accessories are misplaced, among others. Its just a mess. Could you give me some help?

Running on Daz Studio 4.15 Pro and Blender 2.92

image

Error on import in Blender ,DTB

Hello,
For some reason , I forced closing Daz3d when DTB was sending data . Then I updated DTB to 2.3.7 and sent data . when I used blender for import model , I encountered the Errors . I tried to delete the file and Reinstall DTB , but the error still existed . I don't know the reason of error and how to deal with it . Could you please check and help me ?
Thank you.

error1

Traceback (most recent call last):
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 309, in execute
self.import_one(fbx_adr)
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 196, in import_one
reload_dropdowns("choose_daz_figure")
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 32, in reload_dropdowns
prop = Versions.get_properties(w_mgr.choose_daz_figure)
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\Versions.py", line 33, in get_properties
prop = dropdown.keywords
AttributeError: 'tuple' object has no attribute 'keywords'

location: :-1

Mesh gets pulled using Level 2

I need highest quality so im using level 2 but the mesh gets pulled. Screen shot of issue in Blender. Also in Daz, after daz to blender does its thing it messes up my character. You can see its a scal
Snap 2021-06-17 at 21 11 18
Snap 2021-06-17 at 21 15 46
ing issues of some sort.

Transparency maps mapped from Alpha chanel

Transparency maps imported to Blender are using the alpha channel instead of the Colour channel of the Texture Map node. All transparency textures I've ever seen in DAZ use black for transparent and white for opaque, not the alpha channel, so I have to go through all textures with transparencies on import and move the link from the alpha of the texture node to the color. This is very time-consuming, especially on things like hair objects which often have several channels.

Error on import in Blender ,DTB version 2.3.7

Hello,
For some reason , I forced closing Daz3d when DTB was sending data . Then I updated DTB to 2.3.7 and sent data . when I used blender for import model , I encountered the Errors . I tried to delete the file and Reinstall DTB , but the error still existed . I don't know the reason of error and how to deal with it . Could you please check and help me ?blender version is 2.83 .
Thank you.
error1
error2
Traceback (most recent call last):
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 309, in execute
self.import_one(fbx_adr)
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 196, in import_one
reload_dropdowns("choose_daz_figure")
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\DtbOperators.py", line 32, in reload_dropdowns
prop = Versions.get_properties(w_mgr.choose_daz_figure)
File "C:\Users\QJF\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\DTB\Versions.py", line 33, in get_properties
prop = dropdown.keywords
AttributeError: 'tuple' object has no attribute 'keywords'

location: :-1

Get Command / Genital / nothing work with command List

Blender 2.9.2.0 (Bridge Version 2.3.1.1)
Daz 4.15
Bridge latest Version

Blender Preferences
Addons:
Bridge in Blender -> Activated
Rigging: Rigify (0.6.2) -> activated
Save & Load -> AutoRun Python Scripts -> Checked

Daz
Daz to Blender.dsa
Daz to Blender_Genital.dsa
Daz to Blender_MorphExporter.dsa
Placed:
E:\DAZ 3D\Applications\64-bit\DAZ 3D\DAZStudio4\scripts\support\DAZ
I can see the Menu in the Application and use the Menu Points

Procedure:
In Daz:
I create a male character (with genital).
Click on -> Scripts>Bridges>Blender>DazToBlender

In Blender:
In Shelf (DazToBlender).
Everything normal so far also in the tab:
Command List -> Here I see the text field with the search button "Command".
20-04-2021-15-33-31.png

Click -> Import New Genesis Figure
The Genesis figure (Genesis 8) is imported and displayed.

But now the interface will be updated once and the tab
Command List is changed. The button disappears and only the text field remains.
20-04-2021-15-36-47.png

I can enter commands here but nothing happens.

In addition, the "genital.dsa" menu item works in DAZ but the morphs etc. are not imported into Blender.
This is probably because the CommandBox does not work.
Also, Python error messages appear from time to time.
However, I missed to save them. Since I had updated the bridge afterwards and since then the command box no longer works. Now I can not reproduce the errors.

Edit:
After some more testing I was able to enter commands again.
However, when I do this, the following error (Python error) appears every time:
20-04-2021-16-44-10.png

Shapekey breaks Blender rendering

I imported a genesis 8 model from DAZ to Blender and some of the shapekeys end up corrupted somehow.

  • The shapekeys work as intended in viewport solid mode
  • Viewport rendered mode (Cycles or Eevee) work without the shapekeys set
  • Setting the shapekeys and setting the viewport in rendered mode freezes Blender to a halt

The reason that makes the think the shapekeys end up corrupted somehow is that if I create a new shapekey [from mix], then the new shapekey works as intended.

I reported this bug to Blender as well
https://developer.blender.org/T87971

bridge only import first frame of animation

and every other keyframes have same pose with first frame.
so importing animation is not importing animation, it just does only import first pose of animation during animation period.
I'm using Blender 2.92 and Daz Studio 4.15 Pro.

first frame of importing g8 female - bow-g8f
2

50th frame of same model
3

Animations aren't coming through

So when I export my figure with my animations to Blender using the Daz3D to Blender Bridge, it creates all the keyframes but nothing happens.
Seems like all the keyframes are just set for a location, but they're all the same location.

I'm not sure what I can do anymore, I tried a bunch of different animations but it's the same for all.
I tried different genesis figures, but couldn't get any working.
I'm running Blender 2.93 and Daz Studio 4.15 Pro and DazToBlender 2.3.7

What is coming through though?
The textures, the poses, props, pretty much everything else.

Parts of Genesis 8 face are not rigged correctly

I have created an empty Genesis 8 character in Daz studio 4.15. Did not add anything, no hair, no cloths, no morphs. I have exported it using Daz to Blender exporter (without morphs and without animation). Used "To Rigify" functonality. Most of the rig works correctly, but one vertex on the head and whole upper portion of teeth does not seem to follow after the rig. This deforms the head as in picture : https://prnt.sc/11vrvvo

Enhancement request: Morph transfer dialog

Clarity: The export script appears to transfer the current shape regardless of morphs chosen in this dialog, so when this appears it's not immediately clear that it's possible to skip it without picking anything and have the character exported as-is.

Workflow: An option on the previous dialog like "Export no morphs/Export current or active morphs only/Use last selection/Load preset/Display morph transfer dialog" would be helpful for those times where I just want to export a scene as quickly as possible without fidgeting with the morph selection.

Install Bridge Fails...

Spent all day with the new update 2.31...Install from Daz Central..and Installs in Blender 2.9...But you can't activate it as Blender doesn't know it has been installed. No sign of a zip file anywhere...
Made up a new zip from the DBT folder Central installed in Blender 2.9 and was able to activate it...first try to import Daz Character ended in this error...
image

DTB 2.1.0 - Issues with drivers relating bones to shapekeys

Hi,

I've posted this issue from the Daz3D Blender forum (https://www.daz3d.com/forums/discussion/469551/daz-to-blender-update-2-0). My configuration is:

  • Blender: 2.90
  • DAZStudio: 4.12.1.118
  • Bridge: 2.1.0

The Issue

I've noticed that an imported figure (g3f or g8f) has issues with the shape of the mesh around the joints (i.e. shoulders, elbows and feet). This occurs if the figure is imported in a non-default pose or is imported with a default pose and subsequently posed in Blender.

  1. Load Genesis 8 figure
  2. Run the script. In the DAZ to Blender: Morph Names dialog, copy/paste the morphs below to be exported with the figure.
  3. Export figure from DAZ.
  4. Import figure in Blender.
Face Controls
Expressions
Visemes
All Body Morphs
pJCMAbdomen2Fwd_40
pJCMAbdomen2Side_24_L
pJCMAbdomen2Side_24_R
pJCMAbdomenFwd_35
pJCMAbdomenLowerFwd_Navel
pJCMAbdomenUpperFwd_Navel
pJCMBigToeDown_45_L
pJCMBigToeDown_45_R
pJCMChestFwd_35
pJCMChestSide_20_L
pJCMChestSide_20_R
pJCMCollarTwist_n30_L
pJCMCollarTwist_n30_R
pJCMCollarTwist_p30_L
pJCMCollarTwist_p30_R
pJCMCollarUp_55_L
pJCMCollarUp_55_R
pJCMFootDwn_75_L
pJCMFootDwn_75_R
pJCMFootUp_40_L
pJCMFootUp_40_R
pJCMForeArmFwd_135_L
pJCMForeArmFwd_135_R
pJCMForeArmFwd_75_L
pJCMForeArmFwd_75_R
pJCMHandDwn_70_L
pJCMHandDwn_70_R
pJCMHandUp_80_L
pJCMHandUp_80_R
pJCMHeadBack_27
pJCMHeadFwd_25
pJCMIndex1Dwn_90_L
pJCMIndex1Dwn_90_R
pJCMIndex2Dwn_105_L
pJCMIndex2Dwn_105_R
pJCMIndex3Dwn_90_L
pJCMIndex3Dwn_90_R
pJCMMid1Dwn_95_L
pJCMMid1Dwn_95_R
pJCMMid2Dwn_105_L
pJCMMid2Dwn_105_R
pJCMMid3Dwn_90_L
pJCMMid3Dwn_90_R
pJCMNeckBack_27
pJCMNeckFwd_35
pJCMNeckLowerSide_40_L
pJCMNeckLowerSide_40_R
pJCMNeckTwist_22_L
pJCMNeckTwist_22_R
pJCMNeckTwist_Reverse
pJCMPelvisFwd_25
pJCMPinky1Dwn_95_L
pJCMPinky1Dwn_95_R
pJCMPinky2Dwn_105_L
pJCMPinky2Dwn_105_R
pJCMPinky3Dwn_90_L
pJCMPinky3Dwn_90_R
pJCMRing1Dwn_95_L
pJCMRing1Dwn_95_R
pJCMRing2Dwn_105_L
pJCMRing2Dwn_105_R
pJCMRing3Dwn_90_L
pJCMRing3Dwn_90_R
pJCMShinBend_155_L
pJCMShinBend_155_R
pJCMShinBend_90_L
pJCMShinBend_90_R
pJCMShldrDown_40_L
pJCMShldrDown_40_R
pJCMShldrFront_n110_Bend_n40_L
pJCMShldrFront_n110_Bend_p90_L
pJCMShldrFront_p110_Bend_n90_R
pJCMShldrFront_p110_Bend_p40_R
pJCMShldrFwd_110_L
pJCMShldrFwd_110_R
pJCMShldrUp_90_L
pJCMShldrUp_90_R
pJCMThighBack_35_L
pJCMThighBack_35_R
pJCMThighFwd_115_L
pJCMThighFwd_115_R
pJCMThighFwd_57_L
pJCMThighFwd_57_R
pJCMThighSide_85_L
pJCMThighSide_85_R
pJCMThumb1Bend_50_L
pJCMThumb1Bend_50_R
pJCMThumb1Up_20_L
pJCMThumb1Up_20_R
pJCMThumb2Bend_65_L
pJCMThumb2Bend_65_R
pJCMThumb3Bend_90_L
pJCMThumb3Bend_90_R
pJCMToesUp_60_L
pJCMToesUp_60_R
pJCMFlexBiceps_L
pJCMFlexBiceps_R
pJCMFlexCalf_L
pJCMFlexCalf_R
pJCMFlexCollarUpperBack_L
pJCMFlexCollarUpperBack_R
pJCMFlexHamstring_L
pJCMFlexHamstring_R
pJCMFlexTriceps_L
pJCMFlexTriceps_R

If the figure is in its default pose, there is no issue. However if the figures is posed, it becomes apparent that some of the shapekeys are not being applied correctly. In the example below, I have posed the feet - the figures right foot is the correct shape (after a fix I applied to the driver), whilst the left foot has the original driver and shows the issue.

image

There are 2 types of issues with the drivers:

  1. The formula is wrong (i.e. the result of the formula is not a positive value and so the shapekey is not applied).
  2. The rotation axis the shapekey is applied to is wrong.

I went digging through the bridge files and found Database.py in AppData\Roaming\Blender Foundation\Blender\2.90\scripts\addons\DTB. The two sections of interest are tbl_mdrive_g3 and tbl_mdrive. These tables set up the drivers and the properties in these tables backed up what I was seeing in Blender, so if I was to fix the issues I was seeing, it would be here.

The Solution

Two tables have been modified. Below is a snapshot of the changes I've made. I should note that, I don't know what happens with characters beyond G3F and G8F base figures or to clothing.

tbl_mdrive_g3=[                                                             # Rotations: X = 0, Y = 1, Z = 2
    ['pJCMShldrDown_75_L', 'lShldrBend', 0, 'val*-0.764'],                  # G3F ORIGINAL WAS 2, 'val*0.764'],
    ['pJCMShldrDown_75_R', 'rShldrBend', 0, 'val*0.764'],                   # G3F ORIGINAL WAS 2, 'val*-0.764'],
    ['pJCMShldrFwd_95_L', 'lShldrBend', 2, 'val*-0.603'],                   # G3F ORIGINAL WAS 0
    ['pJCMShldrFwd_95_R', 'rShldrBend', 2, 'val*-0.603'],                   # G3F ORIGINAL WAS 0
    ['pJCMShldrUp_35_L', 'lShldrBend', 0, 'val*1.637'],                     # G3F ORIGINAL WAS 2, 'val*-1.637'],
    ['pJCMShldrUp_35_R', 'rShldrBend', 0, 'val*-1.637'],                    # G3F ORIGINAL WAS 2, 'val*1.637'],
    ['pJCMCollarUp_50_L', 'lCollar', 0, 'val*1.146'],                       # G3F ORIGINAL WAS 'val*-1.146'],
    ['pJCMCollarUp_50_R', 'rCollar', 0, 'val*-1.146']                       # G3F ORIGINAL WAS 'val*1.146'],
]

tbl_mdrive = [                                                               # Rotations: X = 0, Y = 1, Z = 2
    # G3F Drivers should not be here unless they are shared with other models.
    # Doing so defines the driver twice in Blender.
    #['pJCMShldrDown_75_L', 'lShldrBend', 0, 'val*-0.764'],                  # G3F ORIGINAL WAS 2, 'val*0.764'],
    #['pJCMShldrDown_75_R', 'rShldrBend', 0, 'val*0.764'],                   # G3F ORIGINAL WAS 2, 'val*-0.764'],
    #['pJCMShldrFwd_95_L', 'lShldrBend', 2, 'val*-0.603'],                   # G3F ORIGINAL WAS 0
    #['pJCMShldrFwd_95_R', 'rShldrBend', 2, 'val*-0.603'],                   # G3F ORIGINAL WAS 0
    #['pJCMShldrUp_35_L', 'lShldrBend', 0, 'val*1.637'],                     # G3F ORIGINAL WAS 2, 'val*-1.637'],
    #['pJCMShldrUp_35_R', 'rShldrBend', 0, 'val*-1.637'],                    # G3F ORIGINAL WAS 2, 'val*1.637'],
    #['pJCMCollarUp_50_L', 'lCollar', 0, 'val*1.146'],                       # G3F ORIGINAL WAS 'val*-1.146'],
    #['pJCMCollarUp_50_R', 'rCollar', 0, 'val*-1.146'],                      # G3F ORIGINAL WAS 'val*1.146'],
    
    # Unknown
    ['lShldrBend_CTRLMD_N_YRotate_n110', 'lShldrBend', 1, 'val*-0.521'],
    ['lShldrBend_CTRLMD_N_ZRotate_90', 'lShldrBend', 2, 'val*0.637'],
    ['lShldrBend_CTRLMD_N_ZRotate_n40', 'lShldrBend', 2, 'val*-1.433'],
    
    # G8F Drivers
    ['pJCMAbdomen2Fwd_40', 'abdomenUpper', 0, 'val*1.433'],                 # GOOD
    ['pJCMAbdomen2Side_24_L', 'abdomenUpper', 2, 'val*-2.389'],             # GOOD
    ['pJCMAbdomen2Side_24_R', 'abdomenUpper', 2, 'val*2.389'],              # GOOD
    ['pJCMAbdomenFwd_35', 'abdomenLower', 0, 'val*1.638'],                  # GOOD
    ['pJCMAbdomenLowerFwd_Navel', 'abdomenLower', 0, 'val*1.638'],          # GOOD
    ['pJCMAbdomenUpperFwd_Navel', 'abdomenUpper', 0, 'val*1.433'],          # GOOD
    ['pJCMBigToeDown_45_L', 'lBigToe', 0, 'val*-1.274'],                    # ORIGINAL WAS 'val*1.274'],
    ['pJCMBigToeDown_45_R', 'rBigToe', 0, 'val*-1.274'],                    # ORIGINAL WAS 'val*1.274'],
    ['pJCMChestFwd_35', 'chestLower', 0, 'val*1.638'],                      # GOOD
    ['pJCMChestSide_20_L', 'chestLower', 2, 'val*-2.866'],                  # GOOD
    ['pJCMChestSide_20_R', 'chestLower', 2, 'val*2.866'],                   # GOOD
    ['pJCMCollarTwist_n30_L', 'lCollar', 1, 'val*-1.911'],                  # ORIGINAL WAS 'val*1.911'],
    ['pJCMCollarTwist_n30_R', 'rCollar', 1, 'val*1.911'],                   # ORIGINAL WAS 'val*-1.911'],
    ['pJCMCollarTwist_p30_L', 'lCollar', 1, 'val*1.911'],                   # ORIGINAL WAS 'val*-1.911'], 
    ['pJCMCollarTwist_p30_R', 'rCollar', 1, 'val*-1.911'],                  # ORIGINAL WAS 'val*1.911'], 
    ['pJCMCollarUp_55_L', 'lCollar', 0, 'val*1.042'],                       # ORIGINAL WAS 2, 'val*-1.042'],
    ['pJCMCollarUp_55_R', 'rCollar', 0, 'val*-1.042'],                      # ORIGINAL WAS 2, 'val*1.042'],
    ['pJCMFootDwn_75_L', 'lFoot', 0, 'val*-0.764'],                         # ORIGINAL WAS 'val*0.764'],
    ['pJCMFootDwn_75_R', 'rFoot', 0, 'val*-0.764'],                         # ORIGINAL WAS 'val*0.764'],
    ['pJCMFootUp_40_L', 'lFoot', 0, 'val*1.433'],                           # ORIGINAL WAS 'val*-1.433'],
    ['pJCMFootUp_40_R', 'rFoot', 0, 'val*1.433'],                           # ORIGINAL WAS 'val*-1.433'],
    ['pJCMForeArmFwd_135_L', 'lForearmBend', 0, '(val-1.309)*0.955'],       # ORIGINAL WAS '(val+1.309)*-0.955'],
    ['pJCMForeArmFwd_135_R', 'rForearmBend', 0, '(val+1.309)*-0.955'],      # GOOD
    ['pJCMForeArmFwd_75_L', 'lForearmBend', 0, 'val*0.764'],                # ORIGINAL WAS 'val*-0.764'],
    ['pJCMForeArmFwd_75_R', 'rForearmBend', 0, 'val*-0.764'],               # GOOD
    ['pJCMHandDwn_70_L', 'lHand', 0, 'val*-0.819'],                         # ORIGINAL WAS 2, 'val*0.819']
    ['pJCMHandDwn_70_R', 'rHand', 0, 'val*0.819'],                          # ORIGINAL WAS 2, 'val*-0.819']
    ['pJCMHandUp_80_L', 'lHand', 0, 'val*0.717'],                           # ORIGINAL WAS 2, 'val*-0.717']
    ['pJCMHandUp_80_R', 'rHand', 0, 'val*-0.717'],                          # ORIGINAL WAS 2, 'val*0.717']
    ['pJCMHeadBack_27', 'head', 0, 'val*-2.123'],                           # GOOD
    ['pJCMHeadFwd_25', 'head', 0, 'val*2.293'],                             # GOOD
    ['pJCMIndex1Dwn_90_L', 'lIndex1', 0, 'val*-0.637'],                     # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMIndex1Dwn_90_R', 'rIndex1', 0, 'val*0.637'],                      # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMIndex2Dwn_105_L', 'lIndex2', 0, 'val*-0.546'],                    # ORIGINAL WAS 2, 'val*0.546'],
    ['pJCMIndex2Dwn_105_R', 'rIndex2', 0, 'val*0.546'],                     # ORIGINAL WAS 2, 'val*-0.546'],
    ['pJCMIndex3Dwn_90_L', 'lIndex3', 0, 'val*-0.637'],                     # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMIndex3Dwn_90_R', 'rIndex3', 0, 'val*0.637'],                      # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMMid1Dwn_95_L', 'lMid1', 0, 'val*-0.603'],                         # ORIGINAL WAS 2, 'val*0.603'], 
    ['pJCMMid1Dwn_95_R', 'rMid1', 0, 'val*0.603'],                          # ORIGINAL WAS 2, 'val*-0.603'],
    ['pJCMMid2Dwn_105_L', 'lMid2', 0, 'val*-0.546'],                        # ORIGINAL WAS 2, 'val*0.546'],
    ['pJCMMid2Dwn_105_R', 'rMid2', 0, 'val*0.546'],                         # ORIGINAL WAS 2, 'val*-0.546'],
    ['pJCMMid3Dwn_90_L', 'lMid3', 0, 'val*-0.637'],                         # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMMid3Dwn_90_R', 'rMid3', 0, 'val*0.637'],                          # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMNeckBack_27', 'neckUpper', 0, 'val*-0.7581'],                     # GOOD
    ['pJCMNeckBack_27', 'neckLower', 0, 'val2*-1.197'],                     # GOOD
    ['pJCMNeckFwd_35', 'neckUpper', 0, 'val*0.76203'],                      # GOOD
    ['pJCMNeckFwd_35', 'neckLower', 0, 'val2*1.20327'],                     # GOOD
    ['pJCMNeckLowerSide_40_L', 'neckLower', 2, 'val*-1.911'],               # GOOD
    ['pJCMNeckLowerSide_40_R', 'neckLower', 2, 'val*1.911'],                # GOOD
    ['pJCMNeckTwist_22_L', 'neckLower', 1, 'val*2.606'],                    # GOOD
    ['pJCMNeckTwist_22_R', 'neckLower', 1, 'val*-2.606'],                   # GOOD
    
    # Unknown
    ['pJCMNeckTwist_Reverse', 'neckLower', 0, 'val*1.433'],
    
    # G8F
    ['pJCMPelvisFwd_25', 'pelvis', 0, 'val*-2.293'],                        # ORIGINAL WAS 'val*2.293'],
    ['pJCMPinky1Dwn_95_L', 'lPinky1', 0, 'val*-0.637'],                     # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMPinky1Dwn_95_R', 'rPinky1', 0, 'val*0.637'],                      # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMPinky2Dwn_105_L', 'lPinky2', 0, 'val*-0.546'],                    # ORIGINAL WAS 2, 'val*0.546'],
    ['pJCMPinky2Dwn_105_R', 'rPinky2', 0, 'val*0.546'],                     # ORIGINAL WAS 2, 'val*-0.546'],
    ['pJCMPinky3Dwn_90_L', 'lPinky3', 0, 'val*-0.637'],                     # ORIGINAL WAS 2, 'val*0.637']
    ['pJCMPinky3Dwn_90_R', 'rPinky3', 0, 'val*0.637'],                      # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMRing1Dwn_95_L', 'lRing1', 0, 'val*-0.637'],                       # ORIGINAL WAS 2, 'val*0.637'],  
    ['pJCMRing1Dwn_95_R', 'rRing1', 0, 'val*0.637'],                        # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMRing2Dwn_105_L', 'lRing2', 0, 'val*-0.546'],                      # ORIGINAL WAS 2, 'val*0.546'],
    ['pJCMRing2Dwn_105_R', 'rRing2', 0, 'val*0.546'],                       # ORIGINAL WAS 2, 'val*-0.546'],
    ['pJCMRing3Dwn_90_L', 'lRing3', 0, 'val*-0.637'],                       # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMRing3Dwn_90_R', 'rRing3', 0, 'val*0.637'],                        # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMShinBend_155_L', 'lShin', 0, '(val-1.571)*0.882'],                # GOOD
    ['pJCMShinBend_155_R', 'rShin', 0, '(val-1.571)*0.882'],                # GOOD
    ['pJCMShinBend_90_L', 'lShin', 0, 'val*0.637'],                         # GOOD
    ['pJCMShinBend_90_R', 'rShin', 0, 'val*0.637'],                         # GOOD
    ['pJCMShldrDown_40_L', 'lShldrBend', 0, 'val*-1.433'],                  # ORIGINAL WAS 2, 'val*1.433'],
    ['pJCMShldrDown_40_R', 'rShldrBend', 0, 'val*1.433'],                   # ORIGINAL WAS 2, 'val*-1.433'],
    ['pJCMShldrFwd_110_L', 'lShldrBend', 2, 'val*-0.521'],                  # ORIGINAL WAS 0
    ['pJCMShldrFwd_110_R', 'rShldrBend', 2, 'val*-0.521'],                  # ORIGINAL WAS 0
    ['pJCMShldrUp_90_L', 'lShldrBend', 0, 'val*0.637'],                     # ORIGINAL WAS 2, 'val*-0.637'],
    ['pJCMShldrUp_90_R', 'rShldrBend', 0, 'val*-0.637'],                    # ORIGINAL WAS 2, 'val*0.637'],
    ['pJCMThighBack_35_L', 'lThighBend', 0, 'val*1.638'],                   # GOOD
    ['pJCMThighBack_35_R', 'rThighBend', 0, 'val*1.638'],                   # GOOD
    ['pJCMThighFwd_115_L', 'lThighBend', 0, '(val+0.995)*-0.988'],          # GOOD
    ['pJCMThighFwd_115_R', 'rThighBend', 0, '(val+0.995)*-0.988'],          # GOOD
    ['pJCMThighFwd_57_L', 'lThighBend', 0, 'val*-1.006'],                   # GOOD
    ['pJCMThighFwd_57_R', 'rThighBend', 0, 'val*-1.006'],                   # GOOD
    ['pJCMThighSide_85_L', 'lThighBend', 2, 'val*-0.674'],                  # GOOD
    ['pJCMThighSide_85_R', 'rThighBend', 2, 'val*0.674'],                   # GOOD
    ['pJCMThumb1Bend_50_L', 'lThumb1', 0, 'val*1.146'],                     # GOOD
    ['pJCMThumb1Bend_50_R', 'rThumb1', 0, 'val*-1.146'],                    # ORIGINAL WAS 'val*1.146'],
    ['pJCMThumb1Up_20_L', 'lThumb1', 2, 'val*-2.866'],                      # GOOD
    ['pJCMThumb1Up_20_R', 'rThumb1', 2, 'val*-2.866'],                      # ORIGINAL WAS 'val*2.866'],
    ['pJCMThumb2Bend_65_L', 'lThumb2', 0, 'val*-0.882'],                    # ORIGINAL WAS 'val*0.882'],
    ['pJCMThumb2Bend_65_R', 'rThumb2', 0, 'val*0.882'],                     # GOOD
    ['pJCMThumb3Bend_90_L', 'lThumb3', 0, 'val*-0.637'],                    # ORIGINAL WAS 'val*0.637'],
    ['pJCMThumb3Bend_90_R', 'rThumb3', 0, 'val*0.637'],                     # GOOD
    ['pJCMToesUp_60_L', 'lToe', 0, 'val*0.955'],                            # ORIGINAL 'val*-0.955'],
    ['pJCMToesUp_60_R', 'rToe', 0, 'val*0.955'],                            # ORIGINAL 'val*-0.955'],
    
    # Unknown
    ['rShldrBend_CTRLMD_N_YRotate_110', 'rShldrBend', 1, 'val*0.521'],
    ['rShldrBend_CTRLMD_N_ZRotate_40', 'rShldrBend', 2, 'val*1.433'],
    ['rShldrBend_CTRLMD_N_ZRotate_n90', 'rShldrBend', 2, 'val*-0.637'],
  #  ['EyesSideSide', 'sight', 2, 'val * -0.955'],
  #  ['EyesSideR', 'sight', 2, 'val * -0.955'],
  #  ['EyesSideL', 'sight', 2, 'val * 0.955'],
  #  ['EyesUpDown', 'sight', 0, 'val * 0.955'],
]

Rig mismatch with G8F figure

I have noticed that if figure uses a morph that has a translation in it and fixes it by adding opposite translation applied to the hip (Daz Studio -> "Height" parameter for example), then whole rig does not match the figure. It is translated precisely by that translation on the hip.

Reproduction:
Create G8F in Daz studio
Change Height using Shapes (Actor->Full Body->Real World->Height).
Export to Blender
Import in blender
Observe whole rig translated.

Check Y translation on G8F hip
Observe that translation in blender matches that translation value in daz studio.

Error after updating to v2.3.6

Hello,

I downloaded the DazToBlender bridge after a long time, the new version seems to be v2.3.6.

When I export the model from Daz using the script, it seems to work fine but when I try to import it into Blender with the plugin I get this error (pastebin link below) and the bones seems to be lumped together on the head for some reason, could you please check and tell me what I am doing wrong here? I didnt have this problem when I used to use v2.3.1

Thank you.

image

https://pastebin.com/3Cawih9X

Error when trying to import environments/props

I am a very new user to Blender. I have created a simple scene with animation in Daz (empty room, Gen 8.1 figure, clothing in obj seq I created in CLO3D, and runway walk animation). The whole thing works fine in Daz, have even rendered it out. But I wanted to try rendering the animation and scene in Blender to cut down on rendering time. I am using the Daz to Blender bridge. Export from Daz seems to work okay. Import into Blender is the tricky part. If I click on import new Gen character, she loads in fine, but is missing her clothing, the environment & the animation seems to come in but doesn't actually do anything when I hit play.
If I click import new environment/props I get the error message below. No idea what I am doing wrong or if it is a bug. Please help.

Python: Traceback (most recent call last):
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbOperators.py", line 305, in execute
Environment.EnvProp()
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\Environment.py", line 34, in init
self.execute()
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\Environment.py", line 56, in execute
ReadFbx(os.path.join(self.env_root, 'ENV' + str(i)), i, int_progress)
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\Environment.py", line 84, in init
if self.read_fbx():
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\Environment.py", line 94, in read_fbx
objs = self.convert_file(adr)
File "C:\Users\jonei\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\Environment.py", line 154, in convert_file
use_prepost_rot = False
File "C:\Program Files\Blender Foundation\Blender 2.92\2.92\scripts\modules\bpy\ops.py", line 132, in call
ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Couldn't open file 'C:\Users\jonei\Documents\DAZ 3D\Bridges\Daz To Blender\Exports\ENV\ENV2\B_ENV.fbx' (16)

location: :-1

morph names that breaks the import

Hello guys, thanks for your work on the bridge.

I was getting some errors while importing my figure, so I decided to run some tests to try to understand the causes. I'm sharing the results to try to help.

I used the eye blink morphs for the test.

  • long names on single morphs: no console error

  • long labels on single morphs: no console error

  • long names on drive morphs: no console error

  • long labels on drive morphs: import error

  • long labels on drive morphs and on the morphs that are driven: import error if the sum is high

  • special characters on names on drive morphs: no error

  • special characters on labels on drive morphs: no error

I think this issue could be solved if after importing the fbx file all morph labels are trimmed to the max length of 63 characters before running the other functions.

This KeyError: 'the length of IDProperty names is limited to 63 characters' seems to be the root cause.

Python: Traceback (most recent call last):
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbOperators.py", line 112, in invoke
    return self.execute(context)
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbOperators.py", line 275, in execute
    self.import_one(fbx_adr)
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbOperators.py", line 212, in import_one
    dsk.make_drivers()
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbShapeKeys.py", line 28, in make_drivers
    self.make_driver(dobj, body_obj)
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbShapeKeys.py", line 485, in make_driver
    self.make_body_mesh_drivers(body_mesh_obj)
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbShapeKeys.py", line 403, in make_body_mesh_drivers
    shape_key_max
  File "C:\Users\PC\AppData\Roaming\Blender Foundation\Blender\2.92\scripts\addons\DTB\DtbShapeKeys.py", line 266, in add_custom_shape_key_prop
    mesh_obj[morph_label] = 0.0
KeyError: 'the length of IDProperty names is limited to 63 characters'

location: <unknown location>:-1

The new plugin doesn't work

I have upgraded to the latest version 2.3.1
Like in the title... After exporting Genesis 2 char and moving to blender the plugin imports... nothing
It worked fine before the upgrade

please help

thanks

Feedback/Suggestions/Framework

Version 2.1.0
In this version only Expressions is being imported into Blender.
I tried selecting the new Presets but they doesn't import:
Face Controls
Expressions
Visemes
All Body Morphs

Only bones is showing up and not the visual rig. Maybe this is on purpose and Rigify is the way to go now?

I'm working on a Tutorial that is utilizing this Addon and it's not that this addon should be catered to my needs. But i do feel that the goal of this addon should be to Export a fully rigged character with all the correct morphs, and every feature on top of that is a nice to have, like animation, posing etc.

Exporting from Daz3D, is not very intuitive when it comes to deciding Morphs. Even with minimal morphs ticked, it will export all expressions that I have installed.

Possible solution:

Having a section for each type of morphs like:
Joint Corrective Morphs(JCM) (Select one)
Flexions (Select one)
Expressions (Select multiple)
Visemes (Select multiple)
and for genesis 8.1
FACS (Select one)
FACS Units (Select one)
All standard morphs are selected by default.

Quick example mockup - maybe having the same export window for every bridge would make sense?
Maybe include subdivision in this window?
Daz3D export
This would make it a lot more clear what is being exported.

When exporting from Daz to other DCC, morph detail is lost and this makes the teeth's, morphs look really bad as it's being exported in subdivision 0 in most cases.
For Blender i usually export in SubD 1 to keep some of the details, but this slows me down when it comes to animation/posing.

Possible solution:
could be to implemented Daz3D Subdivision Algorithm "Catmark" into other DCC, i tried searching about this "Catmark" algorithm but i didn't find much about. But it seems to be based on Open Subdiv which most DCC supports.

Or it would have to be specific for each DCC, in Blenders case maybe Multires could help?

2.3.0.1 Blender plugin error: "Appropriate FBX does not exist"

  1. Replaced DS scripts with items from package. Behavior is updated; morph selection panel appears. It's unclear if it will automatically include those with changed values or if I need to locate and select all of them individually.
  2. Replaced Blender plugin scripts. Validated correct version shows in preferences panel. Tool panel is updated with new buttons.
  3. In DS: Attempted to export existing 8.1 figure, completed export script inputs, waited for process to complete.
  4. In Blender plugin: "Import new Genesis figure" produces error: "Appropriate FBX does not exist!"
  5. Loaded new, empty DS scene, new 8.1 figure, repeated process and got same error from Blender plugin.

How is that 2.79 version coming

I was wondering how your 2.79 version is coming. Ive already made mine, but that was done with older version of this script.

Please support for G3 anatomy (daz official) as same as G8 (REQUEST)

I tried new importer with my actor. but it only show error log plane in blender scene.
I tried to remove problem,

  1. remove daz product shoes (which hide poligons I suppose)
  2. remove non daz official genitals.
    3 attach daz official genitals .

then import to blender.

So I clear understand, this importer seems not support for G3 genitals even though it is daz official.
My request is simple , please show more interest for Genesis3 as same as Genesis8 for daz official blender plug in.
(Then many product which daz sold use hide poligons for shoes, or there are many graft items. I really expect they can be imported without show error plane about official plug in.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.