• Daz 3D
  • Shop
  • 3D Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare
  • Download Studio
ADVANCED SEARCH
  • Menu
  • Daz 3D
ADVANCED SEARCH
Add image
  • Shop
  • 3d Software
    • Daz Studio Premier
    • Daz Studio
    • Install Manager
    • Partnerships
    • AI Training data
    • Exporters
    • Daz to Roblox
    • Daz to Maya
    • Daz to Blender
    • Daz to Unreal
    • Daz to Unity
    • Daz to 3ds Max
    • Daz to Cinema 4D
  • 3D Models
    • Genesis 9
    • Genesis 8.1
    • Free 3D Models
  • Community
    • Our Community
    • Gallery
    • Forums
    • Blog
    • Press
    • Help
  • Memberships
    • Daz Premier
    • Daz Plus
    • Daz Base
    • Compare

Notifications

You currently have no notifications.

Loading...
    • Categories
    • Recent Discussions
Daz 3D Forums > 3rd Party Software > Unity Discussion

Unity and Daz3d have different the rotation of bone.

lawwlekluzelawwlekluze Posts: 19
November 2021 in Unity Discussion

Hi,

I'm using DTU 1.2, there is one problem, the rotation value of bone are different.

I hope to make 'pJCM Corrective morph' in Unity. but it needs the same rotation between Daz3d and Unity.

imageimage

As above pics, when Genesis 8 female is imported in Unity, It seems that has changed 'Joint Orient' automatically.

I want to make pJCM morph Driver for each bone I need. Is there a good solution?

I would very appreciate it if you could help me.

 

Comments

  • Richard HaseltineRichard Haseltine Posts: 107,968
    November 2021

    Please use a non-textured view if showing nude figures.

    Are you sure the difference is in the bone orientation and not in the manipulator? In Daz Studio at least you can chnage the axeis orientation used in the Tool Settings pane.

  • ArtiniArtini Posts: 10,305
    November 2021

    Try Genesis 3 based figures and you will see a big difference in Unity - no difference in bone rotation.

    Just change the rig in Unity to humanoid and you could easily create a ragdoll out of Genesis 3, 2 and original Genesis.

    It does not work that way with Genesis 8 - probably because Genesis 8 using A pose as a default

    instead of T pose, that was default with previous generations.

     

     

  • Richard HaseltineRichard Haseltine Posts: 107,968
    November 2021

    For Genesis 3 the axes of the thigh are very nearly aligned with the world axes anyway. Is it only these bones that show the issue?

  • lawwlekluzelawwlekluze Posts: 19
    November 2021

    Richard Haseltine said:

    For Genesis 3 the axes of the thigh are very nearly aligned with the world axes anyway. Is it only these bones that show the issue?

    Thank you for replying. not only thigh, Collar, Forearm, Hand, Shin, Foot, every joint have different Joint Orientaiton even I didn't touch anything. I don't know why.

    There seems to be no other way but to use Genesis 3. 

  • lawwlekluzelawwlekluze Posts: 19
    November 2021

    lawwlekluze said:

    Richard Haseltine said:

    For Genesis 3 the axes of the thigh are very nearly aligned with the world axes anyway. Is it only these bones that show the issue?

    Thank you for replying. not only thigh, Collar, Forearm, Hand, Shin, Foot, every joint have different Joint Orientaiton even I didn't touch anything. I don't know why.

    There seems to be no other way but to use Genesis 3. 

    Sadly, Genesis3Female also have different bone rotation :( Its ThighFoward115.

    image

    I've got no clue how to match bone rotation between Daz3d(Genesis) and Unity. 

    K-238.png
    1091 x 1035 - 737K
  • danielbui78danielbui78 Posts: 333
    November 2021 edited November 2021

    EDIT: Sorry, following information was wrong

    lawwlekluze said:

    I've got no clue how to match bone rotation between Daz3d(Genesis) and Unity. 

    Hi.  I think the problem is not with just Unity or the DTU Bridge, but with the FbxExporter Daz plugin which almost all of the fbx-based exporters use.  I am working on a new OpenSource FBX exporter, but it won't be done for several more months.  Here is some information and a workaround algorithm for UE4:

    • https://inu-games.com/category/daz3d-to-ue4/
    • https://inu-games.com/2019/07/24/bone-driven-controller-with-custom-rotation-order-anim-node-for-ue4/#more-2297

    I'll try to keep looking into this to see if there is an easier solution or workaround.  However, I am currently working out of town -- so I will need a some time to set up a  debugging/testing/development environment.

     

    Post edited by danielbui78 on November 2021
  • ArtiniArtini Posts: 10,305
    November 2021

    lawwlekluze said:

    lawwlekluze said:

    Richard Haseltine said:

    For Genesis 3 the axes of the thigh are very nearly aligned with the world axes anyway. Is it only these bones that show the issue?

    Thank you for replying. not only thigh, Collar, Forearm, Hand, Shin, Foot, every joint have different Joint Orientaiton even I didn't touch anything. I don't know why.

    There seems to be no other way but to use Genesis 3. 

    Sadly, Genesis3Female also have different bone rotation :( Its ThighFoward115.

    image

    I've got no clue how to match bone rotation between Daz3d(Genesis) and Unity. 

     Could you explain more, why is that an issue?

    Thanks. I have no solution, but would like to understand the issue better.

     

  • danielbui78danielbui78 Posts: 333
    November 2021

    Sorry for my misinformation in the last post.  I have been testing the bone rotations and JCMs for G8 and G3 in unity and I agree with Artini and Richard Haseltine regarding bone orientations and manipulators.  I will try to make a brief tutorial of how to use JCMs in Unity and how to make a JCM driver script.

  • danielbui78danielbui78 Posts: 333
    November 2021 edited November 2021

    Step-By-Step Instructions:

    1. In Daz Studio, load your character in default pose, select your character in the scene tree, then select File -> "Send To" -> "Daz To Unity" or "Unofficial DTU".
    2. In the DTU Bridge dialog popup, be sure to check "Enable Morphs" and then click on "Choose Morphs".
    3. Choose your desired JCM morphs.  For demonstration images, I chose the "Add JCMs: Legs" option at the bottom of the dialog window.
    4. When done with selecting morphs, click Accept.  Then click Accept again to send to Unity.
    5. If using Unofficial DTU, wait for the "export phase complete" message window and switch to Unity.
    6. In Unity, after Daz character is done importing, and the Prefab is created, you can pose the character using the Prefab's skeleton.
    7. For demonstration images, I've set the Left Thigh to 115 Forward ==> which is actually -115 degrees X rotation.
      1. I have included comparison images in Daz Studio to show that the -115 degree X rotation of the lThighBend bone is equivalent to -115 Bend of the Left Thigh Bend in Daz Studio (Wire Texture and Iray Viewport render modes).
    8. Back in Unity, select each individual mesh which needs the JCM morph applied and apply it to the correct strength and direction (probably main figure and all clothing meshes).
    9. For demonstration, I've selected the Genesis3Female_pJCMThighFwd_115_L and set it to -100.
      1. On the Unity Blendshapes UI, you will see that the blendshapes can only be applied from 0 to 100 percent.  However, you are able to type in any amount and direction in the text box off to the side.  This is very important, since almost all Daz morphs assume that morphs can be applied in any direction and at any amount (above 100%).
      2. I first set the JCM to 100% but saw that the morph was going in the wrong direction, so I switched it to -100% and the correct shape was applied.
      3. I have not had enough experience using JCMs to figure out why the degrees are both negative for bone positioning while the JCM seems to apply at positive 115 degrees.

    BTW, all images were captured with the scene view / camera set to Isometric mode to minimize differences caused by camera position.  That way you can quickly and objectively look at the figures and see that the angle of the limb is nearly the same or not.

    Also, the are some differences in morph and figure shape due to the fact that I imported at Zero subdivisions, but the Daz Studio viewport is set to Subdivision Level 2.

    Hope this helps with any confusion regarding bone positions and applying exported JCMs in Unity.  I'll try to make a sample automated JCM driver script when I have time, but I will probably not have time to write that script any time soon (before the end of the year).

    Morph Selection Dialog.png
    1920 x 1080 - 658K
    Pose, Left Thigh 115 Forward.png
    1920 x 1080 - 392K
    Daz Studio, Wire Texture, Left Thigh Bend -115.png
    1920 x 1080 - 697K
    Daz Studio, Iray mode, Left Thigh Bend -115.png
    1920 x 1080 - 722K
    pJCMThighFwd_115_L, 100.png
    1920 x 1080 - 493K
    pJCMThighFwd_115_L, -100.png
    1920 x 1080 - 494K
    Post edited by danielbui78 on November 2021
  • lawwlekluzelawwlekluze Posts: 19
    November 2021

    danielbui78 said:

    Step-By-Step Instructions:

    1. In Daz Studio, load your character in default pose, select your character in the scene tree, then select File -> "Send To" -> "Daz To Unity" or "Unofficial DTU".
    2. In the DTU Bridge dialog popup, be sure to check "Enable Morphs" and then click on "Choose Morphs".
    3. Choose your desired JCM morphs.  For demonstration images, I chose the "Add JCMs: Legs" option at the bottom of the dialog window.
    4. When done with selecting morphs, click Accept.  Then click Accept again to send to Unity.
    5. If using Unofficial DTU, wait for the "export phase complete" message window and switch to Unity.
    6. In Unity, after Daz character is done importing, and the Prefab is created, you can pose the character using the Prefab's skeleton.
    7. For demonstration images, I've set the Left Thigh to 115 Forward ==> which is actually -115 degrees X rotation.
      1. I have included comparison images in Daz Studio to show that the -115 degree X rotation of the lThighBend bone is equivalent to -115 Bend of the Left Thigh Bend in Daz Studio (Wire Texture and Iray Viewport render modes).
    8. Back in Unity, select each individual mesh which needs the JCM morph applied and apply it to the correct strength and direction (probably main figure and all clothing meshes).
    9. For demonstration, I've selected the Genesis3Female_pJCMThighFwd_115_L and set it to -100.
      1. On the Unity Blendshapes UI, you will see that the blendshapes can only be applied from 0 to 100 percent.  However, you are able to type in any amount and direction in the text box off to the side.  This is very important, since almost all Daz morphs assume that morphs can be applied in any direction and at any amount (above 100%).
      2. I first set the JCM to 100% but saw that the morph was going in the wrong direction, so I switched it to -100% and the correct shape was applied.
      3. I have not had enough experience using JCMs to figure out why the degrees are both negative for bone positioning while the JCM seems to apply at positive 115 degrees.

    BTW, all images were captured with the scene view / camera set to Isometric mode to minimize differences caused by camera position.  That way you can quickly and objectively look at the figures and see that the angle of the limb is nearly the same or not.

    Also, the are some differences in morph and figure shape due to the fact that I imported at Zero subdivisions, but the Daz Studio viewport is set to Subdivision Level 2.

    Hope this helps with any confusion regarding bone positions and applying exported JCMs in Unity.  I'll try to make a sample automated JCM driver script when I have time, but I will probably not have time to write that script any time soon (before the end of the year).

    Thank you, it was really helpful. but I have one more problem.

    image

    I only moved X-axis (local rotation) but Y,Z-axis also has been moved. I need to set only one axis for making Blendshape Driver(pJCM).

    How can I solve this problem?

     

    K-233.png
    1424 x 735 - 676K
  • charlescharles Posts: 866
    November 2021

    lightBlue has a fix for this on the AssetStore.

  • danielbui78danielbui78 Posts: 333
    November 2021

    lawwlekluze said:

    I only moved X-axis (local rotation) but Y,Z-axis also has been moved. I need to set only one axis for making Blendshape Driver(pJCM).

    How can I solve this problem?

    Make sure you are using the rotation tool and not the universal tool (which can rotate/translate/scale).  Then make sure your are selecting only the curved line that corresponds with the desired axis (the line will light up during mouse-over).  If the axis does not light-up when you click and rotate with your mouse, Unity Editor will treat your action as a free-hand rotation in ALL axes, instead of rotaiton in only one axis.  For the X axis, the color is usually RED.  Good luck!

  • lawwlekluzelawwlekluze Posts: 19
    November 2021

    charles said:

    lightBlue has a fix for this on the AssetStore.

     Bad news, I bought JCMFix but it is for setup blendshapes in Unity not fix the bone rotation :(

  • lawwlekluzelawwlekluze Posts: 19
    November 2021

    danielbui78 said:

    lawwlekluze said:

    I only moved X-axis (local rotation) but Y,Z-axis also has been moved. I need to set only one axis for making Blendshape Driver(pJCM).

    How can I solve this problem?

    Make sure you are using the rotation tool and not the universal tool (which can rotate/translate/scale).  Then make sure your are selecting only the curved line that corresponds with the desired axis (the line will light up during mouse-over).  If the axis does not light-up when you click and rotate with your mouse, Unity Editor will treat your action as a free-hand rotation in ALL axes, instead of rotaiton in only one axis.  For the X axis, the color is usually RED.  Good luck!

    Thank you for advise. sadly, I can't make it. still the rotation leg is different. Z-axis is slightly different.  It seems hopelessly impossible to make Unity and Daz3d have the same rotation.

  • danielbui78danielbui78 Posts: 333
    November 2021

    lawwlekluze said:

    Thank you for advise. sadly, I can't make it. still the rotation leg is different. Z-axis is slightly different.  It seems hopelessly impossible to make Unity and Daz3d have the same rotation.

    Sorry we couldn't help you.  You probably need someone face-to-face or over webcam or screensharing to see exactly what the problem is.  Try contacting Unity Support or asking an expert on the Unity Forums.  Hopefully they will have a quick and easy answer for you.  Good luck!

  • pokotiontanpokotiontan Posts: 0
    September 2022
    Maybe it's a gimbal lock issue by using euler angles.
    

    try uising this angle value

    float angle = 0.0f;
    Vector3 axis = Vector3.zero;
    transform.rotation.ToAngleAxis(out angle, out axis);
    
Sign In or Register to comment.
Adding to Cart…

Daz 3D is part of Tafi

Connect

DAZ Productions, Inc.
7533 S Center View Ct #4664
West Jordan, UT 84084

HELP

Contact Us

Tutorials

Help Center

Sell Your 3D Content

Affiliate Program

Documentation Center

Open Source

Consent Preferences

JOIN DAZ

Memberships

Blog

About Us

Press

Careers

Bridges

Community

In the Studio

Gallery

Forum

DAZ STORE

Shop

Freebies

Published Artists

Licensing Agreement | Terms of Service | Privacy Policy | EULA

© 2025 Daz Productions Inc. All Rights Reserved.