Convert to MHX not working properly

Issue #204 resolved
Chuki Cicha created an issue

With commit b188e28 MHX was working correctly, and with commit 7b12235 and newers it doesn’t. I haven’t tested on commits that are in between, but it seems that MHX stopped working when the new rig was added.
Now here is the problem, while watching the png that I’ve attached, I’ll explain. The left side of the picture is how the plugin worked before, and the right side is how it works with newer commits. As we can see, the armature changes, some bones have their viewport scaling increased or reduced. Also when editing the armature, a lot of bones (and I mean almost all of them) have their “Tail” and “Roll” properties changed (some bones that have changed are hands, pectorals, spine, root, and so on), this is a problem because when copying animations, it gets all destroyed cause the bone rotations aren’t the same due to this changes. Also, if you look at the bottom of the picture, you’ll see, that when selecting the same bone, its rotation was quaternion in older versions (when it worked), and YZX in newer versions. Due to this change, when importing JCMs, they don’t work, the drivers aren’t created.

Edit note: I’m using G8F

Comments (7)

  1. Chuki Cicha reporter

    What I’m doing now, to fix this, is as follows: When I create a new character, and I convert the armature to MHX, I append an armature that I’ve created before, and I manually copy the bones properties from one armature to the other, I don’t know if there’s a way to copy all bones at the same time, but I’m copying them individually (only the bones that changes). Then I check every bone and make sure that its rotation matches the older armature, so I know if it should be Quaternion or just YZX. Maybe there’s a way to do this faster, but right now I’m doing it this way and it’s time-consuming. After I’ve fixed the armature, I import the JCMs and they work.

  2. Chuki Cicha reporter

    I just noticed the Quaternion checkbox under the Global Settings, this fixes the rotation mode, but anyways the roll, tail, and other bone properties change and some poses are suffering some changes, it isn’t hard to fix, but I can fix my animations, delete all keys and update them so they fit like before.

  3. Alessandro Padovani

    The new daz bones use a different roll to better match the daz figures thus allowing to import limits that wasn’t possible before. Of course if you apply an old animation to a new armature it will not work. You can anyway still using the old bones in the global settings. Personally I don’t use limits since they can “stuck” the animation flow and prebending is usually enough to get a stable ik. Then I always use quaternions to avoid ik flippings.

    As for euler rotations disabling drivers I have no answer. May be Thomas provided driver equations for quaternions only.

  4. Thomas Larsson repo owner

    Importing jcms to a new armature works here, and the drivers also work after conversion to mhx. That is the preferred workflow. Copying drivers from an old armature is not something that you are supposed to do. It will probably work if the new armature was imported with orientation set to Blender Legacy. It will definitely not work with the new bone orientation.

    Why don’t you just import the jcms to your new character?

  5. Chuki Cicha reporter

    I’m not copying the drivers. I was copying animations from the older armature to the new one, I had to create a new one because I had problems with the materials so I had to reimport it, and then I transferred the animations between them. I’ll try to create a character with Blender Legacy orientation and see if it transfers them correctly then.

  6. Chuki Cicha reporter

    In global settings you must select Quaternions and Orientation to Blender Legacy for the animations to work between and old and a new armatures. It does have a few issues but it's ok

  7. Log in to comment