Odd behavior when animating, possible bug (JCMs)

Issue #1143 invalid
Buddyspencer13 created an issue

Hi, Thomas, I think I have found a rather unpleasant problem when animating, and it only happens when the Jcm's are active, or it seems to me that the values of the corrections when applied to X bone, jump drastically in value, making it a non-smooth transition and not correct, I will put 2 videos so you can see this happens in the latest version, the stable version did not give problems.

The steps to find this bug are simple :

1- With the last version of the Addon (Diffeomorphic-import_daz-e17cb0cd3c52 = 1.6.2.1157), import GF8.

2- Selecting the model, in the Setup panel, Morphs, Import Standard Morphs, select (Flexions and jCMs, Use Adjusters).

3- Select the armature of the model, go to Panel, Posing, Import Action, and uncheck (Load missing Morphs, Check For Updates, Use Scanned Datebase), the other options are left as default, and import the animation file (Test.duf)

4- Play the animation preview and you will see the problem, then save the Blend file, and compare it with the other version.

To check it with the other version, repeat all the steps again, but this time with the stable version (Stable version 1.6.1 = 1.6.1.0824).

Attached file, duf : https://file.io/th8y27UBk2jh

Bug Dev Ver, video : https://www.veed.io/view/38b43d10-4240-4b2c-a6b6-01a8a8401251

Stable Ver, video : https://www.veed.io/view/849b7e6a-f140-420c-a902-38d97c2be729

Comments (10)

  1. Alessandro Padovani

    Here the pops appear in daz studio too so there’s something wrong with the animation itself. Below it’s the animation played in daz studio, it asked to remove the limits when I loaded the animation and I replied yes.

    edit. p.s. I suppose the issue is caused by the euler system that doesn’t fit free joints. Unfortunately daz studio doesn’t support quaternions, that’s another reason why it’s not good for animation. The best way is to import your figure and animate in blender, rather than trying to import the daz animations.

    steps:

    1. in daz studio load the animation on G8F
    2. play

    https://youtu.be/etYqW_H3Sm8

  2. Buddyspencer13 reporter

    Alessandro, I made the animation in Blender, just to show this, and I used the tool just to show this, I don't use DAZ to animate, I use the addon and do everything in Blender, the animations you see are from Blender and the rendering is the same.

    Maybe I could have saved the action, file, in Blender and share it, but, when loading the animation in the model imported with the stable version, doing it from Doope Sheet, Action Editor, it doesn't load correctly, because in both models, in the stable version the bone "lShldrBend" has a rotation order (YZX) while the dev version changes to (YXZ) perhaps it can be changed manually, but it was better to use the tool.

    So by saving this action with the latest version, importing with the latest version, with the tool, it is possible to use it in the stable version and have it load correctly even with that model imported from the stable version.

    Here what I come to comment, is that at the time of animating with the other version, the stable one, in 1.6.1, there was no popping with the JCM's, I found this in Rigify, and it was driving me crazy, until I found it, it's not nice to have to animate and see this nasty thing spoil the entire animation.

  3. Alessandro Padovani

    The issue is fixed if you use quaternions in the global settings, this way the animation works fine in blender. I can reproduce the issue if I don’t check quaternions thus the euler system is used. You have to use commit e17cb0c since the last commit ef873b8 has issues, see #1145.

    steps:

    1. set quaternions in the global settings
    2. import G8F
    3. import jcms
    4. import the test animation

  4. Buddyspencer13 reporter

    Thank you very much Alessandro, for letting me know, I had no idea that it affected, I just tried it again, enabling the option, and testing an animation with Rigify, the problem is gone ^^

    Although by default, in version 1.6.1 Stable, quaternions option, is disabled as well, but somehow when importing and testing, this problem is not there even with that disabled? just out of curiosity.

    I have just seen your report that you linked and I can confirm also, that exactly it gives error, with the last version when importing jcm's.

  5. Alessandro Padovani

    For a detailed technical explanation why you need quaternions and what’s the difference with 1.6.1 you have to wait the answer by Thomas. What I know is that quaternions work fine with free joints while euler has issues. That is, euler is only good for one or two axis, not for three. This is why quaternions were introduced for animation.

    Let me know if you want to wait for the technical explanation by Thomas, or I’ll close as resolved.

  6. Buddyspencer13 reporter

    I'm curious to know what Thomas might say about this, of course, if it is not too much trouble, many thanks for the help provided and info provided!

  7. Thomas Larsson repo owner

    Your file had been deleted, but I’m pretty sure the popping is due to gimbal lock. The cause of gimbal lock is the representation of orientation in calculations as three axial rotations based on Euler angles. A solution therefore is to represent the orientation in some other way, e.g. quaternions. Internally Blender stores rotations as 3x3 rotation matrices.

    Here is what Wikipedia has to say about gimbal lock: https://en.wikipedia.org/wiki/Gimbal_lock

  8. Buddyspencer13 reporter

    Thanks for your detailed answer Thomas, I was able to get back to normal with the Jcm's by enabling the option, and I have no problems, thank you very much to both of you, if you were curious to test the file, I uploaded the file again, although, this is solved for me now.

  9. Log in to comment