JCM problem in MHX but now in Knee and Elbow

Issue #1144 resolved
Alejandro Huerga created an issue
  1. Load JCMs
  2. Make all bones posable
  3. Convert to MHX

Getting bad deformations only in elbows and knees. Please help me again 😢

Comments (64)

  1. Alejandro Huerga reporter

    Actually the elbow problem happens even with the default DAZ rig. JCMs are not working there

  2. Alessandro Padovani

    Here it works fine. If you’re using a custom figure other than the standard G8F then you may need to load the custom jcms.

    steps:

    1. import G8F
    2. import jcms
    3. convert to mhx

  3. Alejandro Huerga reporter

    Thanks for replying. But I’m pretty sure we are having an issue here. Please check the default G8.1F. In the inner part of the leg there’s an incorrect deformation only in MHX

    1. Load default
    2. Add JCM’s
    3. Convert rig to MHX

  4. Alejandro Huerga reporter

    Mmmm something related to rotation???

    I got this pose just rotating the elbow and knee in local axis with default rig, saving it as duf and then load it in mhx in master bone mode

  5. Alessandro Padovani

    daz studio 4.15.0.30, blender 3.2.2, diffeomorphic 1.6.2.1160

    Ok I can reproduce the issue. It seems only mhx is affected. Below there’s a comparison with the same test pose g81f-knee.duf included. We can see that the daz rig and rigify work fine while mhx doesn’t.

    edit. p.s. As a side note the knee shape in rigify doesn’t seem quite right too, though the issue is less evident. The daz rig works fine so I guess simple ik will work fine too though I didn’t test.

    edit. Yes I can confirm that simple ik works fine.

    edit. note. important. Not really related to the issue but a note on simple ik. We have two buttons “add custom shapes“ and “add simple ik“ then the rig panel is titled “simple rig“. We may have a unique button “Convert to Simple IK“ and the panel titled “Simple IK“. This is more consistent with the other mhx and rigify rigs.

    steps:

    1. import g81f and merge rigs
    2. import jcms and make bones posable
    3. convert to mhx or rigify
    4. import the test pose g81f-knee.duf

  6. Thomas Larsson repo owner

    One difference is that the shin is connected to the thigh. This is necessary for IK, but it does change the rest pose slightly. The problem doesn’t seem to be related to jcms, because both pJCMShinBend_90_L = 1.0 and pJCMShinBend_155_L = 1.0 in all cases.

    And rigify doesn’t look good either in my test.

  7. Alessandro Padovani

    Don’t really want to step in your design, also because I know very little about rigging. But usually there are “control” bones for ik/posing and “deform“ bones for shaping. Then the deform bones follow the control bones using constraints. This way you could leave the daz bones untouched as “deform“ bones and the poses/jcms will look exactly as daz studio.

    This would essentially require to add contraints to the “deform“ daz rig to follow the “control“ mhx/rigify rigs. That’s the same a retargeting tool does.

    Unless I miss something that’s entirely possible since I’m not a rig expert.

    note. Then probably the control rigs will not require the fk parts, as fingers and toes for example if they are posed using fk the deform bones can be used directly.

  8. Alessandro Padovani

    note. important. Please note that you need to use my pose preset to reveal the issue with jcms since bending the knee is not enough, though it doesn’t work completely fine because of the different bones, it’s not the same issue. Please follow the steps and use the pose preset this is why I did it.

  9. Thomas Larsson repo owner

    Both mhx and rigify work as you suggest. There are two control bones, FK and IK, and the deform bone follows them with copy transforms constraints. But that supposes that the rest poses of all three bones are the same. The deform and FK bones don’t have to be connected, but they must be aligned with the IK bone that must be connected.

    (In reality the “deform” bone doesn’t deform either. The real deform bones are the bend and twist bones.)

  10. Thomas Larsson repo owner

    And yes, I used your test file. However, some problems related to #1145 may still have lingered when you tested. Can you confirm that of pJCMShinBend_90_L and pJCMShinBend_155_L are both fully active.

  11. Alessandro Padovani

    That doesn’t look as my test pose since you don’t get the same deformations. For the test pose to work you have to remove the limits if you use limits. And of course load the jcms. Usually when I apply the daz poses I always remove the limits because this is what daz studio does with most poses, it asks to remove the limits. May be we could add a “remove limits“ option in the load pose panel to mimic daz studio.

    As reported above I tested with 1.6.2.1160 where #1145 should be fixed. I re-exported the dbz if this is what you mean. Going to test with the last commit so I can confirm.

    edit. p.s. To me it makes little sense that the deform and control bones must have the same rest pose. But again I’m not a rig expert so I trust you.

  12. Alessandro Padovani

    update.

    I can confirm that commit 0ae894f has the same issue. Below there’s my rigging settings where I don’t use limits to load the daz poses, as daz studio does. And the required shin jcms.

    edit. Also I tested g8f and has the same issue as g81f.

    edit. Below there’s my import pose settings if it may help but there’s nothing fancy. Morphs are not used by the pose, it only uses bones for the shin bend and side-side out of the limits. As you can see by loading the pose in daz studio. Specifically it’s the side-side that breaks the jcms.

  13. Thomas Larsson repo owner

    Two changes to the mhx rig:

    1. Before the bend and twist vertex groups were combined into a single group and then split again. Now the original daz groups are kept. Perhaps a small improvement.
    2. There is an option to keep the original daz bone locations instead of connecting the bones. This option is disabled because it doesn’t work well with the pole targets. Bend and twist bones are still slightly displaced, because they are controlled by constraints and not freely posable as in DS.

    Here is a comparison of your pose for the mhx rig (colored bones, blue mesh) and the daz rig (plain bone color, skin colored mesh). We see that the thigh bones overlap, but the shin bone is slightly off. Perhaps it is because the foot is connected, but I’m too tired to check that now.

  14. Alejandro Huerga reporter

    Thank you so much bro, hope you can check it later. I’ll remember you in 2 days. Have a good rest!

  15. Alejandro Huerga reporter

    looks like its working a little better with default g8 but as soon as I load my character this is what happen

  16. engetudouiti

    About this issue, Thomas better not hurry up. Such Non connected IK rig never work well. (for pose and reasonable snap)

    I do not see any rig which can keep non connected. All rig converter may try to connect IK chain bones, with align bone twist. (aka bone roll)

    And first, may better compare without jcms, and how it change deform when we input same rotation values.(In daz and in blender) compare weight deform, without jcm but input same rotation value) first.

    Real work flow should be, when convert rig to Compatible rig, adjust weight map if it need.

    after that (IK FK) we might need to adjust (or make) new jcm for the rig and use it. (but it is not auto script work, and even though someone offer each rotaiton jcm shape keysfor MHX it seems difficult to offer for user.

    Daz JCM is really made for each daz original bone role (aka bone oriientation) But when we make Compatible rig, we need to change bone orientation even though it is only 1 or 2 degree, it change how jcm work. (because all jcm are made with each local axis degree and mixing up with multi axis rotation.

    Then for such case, I had requested option to add individual jcm multipler. I said it should be useful.

    But yours not agreed about it. because you said, jcm should not be user adjusting.

  17. engetudouiti

    Then usual workflow ( I sometimes add it), is add blender smooth modifiers, with limit only about those area (vertex group) it can ease problem. (sometimes work better than jcm which deformed with other character FBM)

    You may first try this.

    https://docs.blender.org/manual/en/3.2/modeling/modifiers/deform/corrective_smooth.html

    Actually there should be case a few jcm cause un-expected deform. (if you convert to IK rig), but usually ease many deform issue, than Non jcm. it depend user, you may not use jcm, or use jcms with edit when you convert to rig-fy or MHX. if you do not need to use IK, you need not convert >> JCM work best.

    (btw before we can not use jcm for MHX, and even though import jcm for def-rigs, it actually did not show same deform. because before def rig can not keep same daz roll and connected.

    so this add on keep improved too many things user may expect all work as same as daz. but actually it not ^^; I think we should see same issue for any 3d apricaiton when import daz rig (or convert to IK compatible rig) then usually most of them may ignore JCM I suppose.

    https://forum.reallusion.com/405610/Reallusion-Why-not-buy-out-Daz

    (it is bad tittle I like daz vendor work, but it is what daz jcm will cause when user import to another standard 3d apricaiton I suppose. do not know how Maya importer or 3ds max can make it work with converted rig though)

  18. engetudouiti

    You may disable (or remove driver, and check how it improve ) about such case, jcm individual multipler (if it offered as UI ) user can adjust the effect, (and it can be separate from pose = not prevent user make animation. they can adjust each jcm effect,, when they pose and confirm)

    in this case, we may hope to adjust only about this jcm. (at least weaken)

    without JCM (disable) is far better. (or I may hope to multiple 0.2 etc, to weak this effect only)

  19. engetudouiti

    And one more,, MHX have tweak bones, (which can adjust those un-expected JCM effect with specific pose)

    You should try those tweak bones. because it is actual deform bone, and can rotate (twist, transform, scale each axis as free) for most of part.

    It is reason why Thomas have added twk bone for MHX. even thogh we can pose without them.

    with full use twk bones, we can adjust deform detail mix use jcm easy.

  20. Alessandro Padovani

    Commit e09aa1f doesn’t work.

    Again the bones and jcms issues are two separate issues. To keep the original daz bones sure helps with the deformations but it’s not the jcms issue. Below there’s the comparison with daz studio and mhx. Since both the daz rig and the simple ik rig work fine there must be something in mhx messing up the jcms.

    To be sure to be in the same boat I’m also providing the simple scene I’m using for testing, it’s g81f at base resolution with a camera to spot the pose.

    steps:

    1. import the test scene g81f.duf
    2. import jcms and flexions and make all bones posable (I added flexions just to be sure but it doesn’t matter)
    3. convert to mhx (with or without the daz bones option it doesn’t matter)
    4. import the test pose g81f-knee.duf

    edit. note. As for unconnected bones not working fine with ik/poles it would be useful if you can provide a practical example so we can understand better. I suppose simple ik is affected as well since it uses unconnected bones with poles.

    edit. note. Of course I bolded the text above not to “scream“ but to “stress“ important points, thank you Thomas for the hard work you’re doing on this.

  21. Thomas Larsson repo owner

    I cannot check until tonight, so this is from memory.

    The thigh bone goes from the thigh bend head to the thigh twist tail, the bend and twist are not necessarily the same. In Blender (mhx) they must be perfectly aligned, but not so in DS since they are not controlled by a single bone there.

    I don’t think that the shapekey drivers are wrong, since the relevant shapekeys are at 1.0 anyway.

    I loaded two G8F and converted one to mhx, so the poses could be compared in the same file. Turn shapes off and change the view mode to Stick so do the comparison. What I found was that the thighs overlapped perfectly, but the shin bones did not, although the local rotations were the same. Presumably this happens because the mhx shin ends where the foot begins, whereas there is an offset in the daz rig. Not sure how to avoid this, since the foot is essentially the ik target. Perhaps create a new ik target that is offset from the foot head, but that would open for new and worse problems.

  22. Alessandro Padovani

    @Thomas I'd rather advise to understand why simple ik works and mhx doesn’t. If you get this you can probably fix it, or at least know exactly why it doesn’t work and what’s the difference. Then if mhx can’t be fixed please see if you can fix the simple ik feet #1138, so we have a functional rig for daz poses and animations.

    edit. Looking at the geometry may be the roll angle of the shin bone is different in mhx. That should not since the pose is loaded in fk mode.

    edit. Nope, the roll angle is slightly different but quite right, so it must be the jcms. Though the pose angle should be (160,0,-15) to be precise.

  23. Thomas Larsson repo owner

    The problem is that the mhx shin ends where the foot starts, and that is probably inevitable if you want to have IK. Here are the simple and mhx rigs overlapping in the same pose. We see that the thighs are aligned, and the local rotations of the simple and mhx shins are the same (160, 0, -15). The mhx local rotation was in fact slightly different, as you show, but I changed it to be the same.

    Clearly the global shin rotations are different. This happens because of the difference in rest pose; the mhx shin ends at the foot head, but the simple shin has an offset.

    This may seem fine, but consider what happens if we turn on IK for the simple rig, still in rest pose. The shin moves to point at the IK effector. So there is a big problem with FK-IK snapping with the simple rig, which is a much worse problem.

  24. engetudouiti

    There seems no chance, make SImple IK rig will work better than MHX with keep daz def rig bone structure.

    Then I simply hope return MHX to commit 0ae894f please.

    You do not need to add un-usable option ( = Option to keep daz bone location.)

    About the weight map (remain as same as before), if you confirm it work better with MHX , I think it is welcom. but if it just tried to ease those JCM issue, I think you need not and should not.

    because weight map adjustment need to modify with current using rig structure(MHX) should not think about JCM (=aka corrective morphs) first. Though I do not think it cause terrible issue, but do not think it work better.

  25. engetudouiti

    The only thing user need to know (and maybe Thomas better to add it in description)

    MHX >> it is for IK <> FK with snap and pose as real IK constrain rig. so it need to change daz rig strcuture.

    it may cause some jcm issues. (we can not avoid it, or we need to edit JCMs)

    SImple IK >> it force to add IK constrain for def rig with keep daz bone strcuture, >> JCM may show more good effect but it never get real IK FK snap. and flexible IK posing manner. because daz rig do not locate bones for blender IK rig manner.

    (actually simple IK is really limit for pose as standard IK rig manner, compare with MHX/rig-fy)

  26. Thomas Larsson repo owner

    Yes, I agree. Since the Daz bones option didn’t solve this issue and may complicate ik, it is useless. Now removed.

    I kept the new weight maps, since I think that the daz artists probably do a better job at weighting than I am. It is not mainly about jcms but where the twisting occurs.

  27. engetudouiti

    @Thomas

    Ok. I do not know how you convert weight map (maybe just devided along with bend and twist?)

    if so maybe daz vendor already made weight may work better. (though they are made not for your perfecly connected and cupselized in one Bone (bend and twist and set roll for all to face same angle), Though I may hope to test both case if You can.

    (offer option temporally for weight map modify, and compare your way and daz vendor way, which is better for converted chain (connected and change roll a bit). )

    If it should work better, you may safe change new weight map as default thanks.

    (so I do not against, if you think you need to keep new option = use daz def bone structure, though, I almost confirm it never work correctly)

    About New type-rig (though I actually do not understand how it can keep jcm without change bone structure) , modify or edit or test as other people like (If Thomas hope it) as Def rig experimental option. (aka simple IK etc) but keep separate from current MHX rig. untill you decide to change MHX strucutre.

    (so I really do not think there are reliable users who have clear knowledge how daz and blender rig work and deform, then not recommend quick request and change >> test >> find issue >> break many >> try to adjust for new change >> break things which worked before)

  28. Alessandro Padovani

    @Thomas If both mhx and simple ik can’t be fixed then please add a note in the docs explaining the issues, so the users are aware. That mhx gets different poses and jcm shapes because of the different rest pose. And the simple ik feet will offset switching from fk to ik, so they get “jittering“. At this point the best for daz poses and animations is simple ik then, apart the feet.

    note. Again it makes little sense to me that we can’t use different rest poses for the deform and pose bones. But I trust you that this can’t be done. Eventually will do some tests if I can understand mhx and simple ik better.

    note. important. This issue also makes jcms essentially “broken“ for the mhx and rigify rigs, though rigify seems to work better. That is, jcms are designed to fix the shape for a good deformation, but if they can’t work with the same daz bones and rest pose then the shape will be bad anyway, or at least not as intended.

  29. jeroen b

    Risking saying something stupid, but if the issue is the gap in the DAZ armature between shin & foot (and others), why not bridge this gap with an extra bone (parented to the shin) that does nothing except keeping the IK constraint?

  30. Thomas Larsson repo owner

    Jeroen, I tried to add an extra “ankle” bone to the simple rig, but it didn’t work. If the ankle is child of foot, then a foot rotation moves the leg which it doesn’t today. And if the foot is child of ankle, we need to pose the ankle separately. I haven’t checked what would happen to mhx, but I’m sure that it will make snapping a total nightmare. It is complex enough as it is already.

    Then I’m not sure how critical it is that every extreme pose is imported perfectly. You can always edit the pose after it has been imported. And as engetu pointed out, the tweak bones can often correct bad deformation.

  31. Nicholas Marshall

    Could Driven Correction bones added to MHX be a fix?

    The above Youtuber has a tutorial on adding Knee Clipping Drivers.
    The technique does work. Here is a MHX model without Correction bones.

    And here are is with the Correction bones.

  32. Alessandro Padovani

    The purpose would be to get the same deformations as daz studio, especially when jcms are involved. It makes little sense to have “broken” jcms then fix it with some “empirical“ deformations. If this is the idea then we could use empirical deformations to start with, without jcms. That by the way would be a wonderful thing if it works, because we could also use it for G1 G2 where triax is not supported, and avoid to import tons of jcms for G3 G8.

    Personally I like to prebend and limit the jcms to the minimum, that’s an alternative way to work. See #994.

  33. engetudouiti

    @NIcholas Marshall

    at first glance, it is interesting. So it will add new bone to deform (though I still not check you-tube) mesh, then if you can offer it with default G8 (or G3) mesh + converted MHX + new bones, , and how you set-up those ( how you locate and set-up new bone, and driver/constrain in blend file , anyone can confirm, and if it can re-produce by script, and confirm it not cause other issue, Thomas may apply it as experimental option when he hope so.

    At same time,, it seems new implementation for MHX, and to use those new driver bone, I suppose we need to test non JCM first and see how it work for MHX.

    (so convert MHX without JCM about legs , and arms ) and use new driver bone (or empty?) to deform well for bend pose (or twist too?) , then MHX can remove those JCMs. (at least for Arms or legs)

    Any new things, (eg someone may hope to add auto flex bone , like some blender add on, it can add flex deform with user set up without import new flex morphs)

    The difficult things is, (and usually take times) Thomas need to generate them by script only so even though it work with manual work,, we can not apply it until there is clear step, to auto-generate bones and drivers from imported def rig. (and set pos ,roll correctly) >>. then next it need to auto-adjust for mesh and rig which include FBM (and change rig pos)

    I may hope, you will offer default G3 or G8 mesh with new improved rig as blend file first. then anyone can test it , how it work.

  34. engetudouiti

    Thanks Nicholas to take your time ^^. I will try this.

    Even though it is difficult to auto generate, I hope to know how it work clear.

    And if it work well, it can be good tips for anyone to ease problem.

  35. engetudouiti

    @Nicholas Marshall

    As you already understand, your recommend way need to add new bone with weight-map.

    The driver was actually simple though. and it can easy the area problem (but we need to adjust weight more smooth, around foot )

    Unfortunately it almost impossible to auto-generate I suppose . (and the weight area need to be adjusted by manual)

    eg,, I often hope to tweak L and R, buttok but it should be difficult to auto generate.

  36. Alejandro Huerga reporter

    Maybe I have the solution! Please check this. We can create an MHX rig that actually drives the original Daz armature. This is what I did in 3ds Max using CAT rig on top of the DAZ rig and worked flawless. This way we can use all MHX features with the original JCMs and bones. We could import/export all the DAZ poses, bones and morphs! Please let’s try this! We just need to find a way to link the DAZ armature with the MHX rig created by the script. Even could be a button to delete the MHX rig and continue with the original armature in case we need.

  37. Thomas Larsson repo owner

    I think I may have a solution. The original daz bones are kept and do the actual deformation (unless there are tweak bones), but the entire control rig is unchanged. Thus my objection about ik and fk snapping is obsolete, since it is something that happens with the control rig. The original bones are then driven with copy transforms constraints by the corresponding control bone. Maybe poses are not loaded perfectly, but the jcms should be correct for the pose for the original bone that is actually loaded.

    This should not break anything old, unless you (read: engetudouiti) have created actions using the shin tweak bones. To keep compatibility with the daz rigs, the shin is no longer split into bend and twist parts.

  38. engetudouiti

    Yes maybe What Thomas means, is only way to use JCM without customize.

    The only problem is, when user try to pose MHX controll rig (FK IK) with blender tools, the deform is not what we expect from Control bone local axis rotation. (so when import pose for controll bones, it show different pose)

    Because actual deform bone try to use slightly different rotation axis and it deform bone. I do not know how I feel, when I pose with Controll bone. . I usually check what local axis will be used to rotate <> then expect deform. with FK. (though I hope it is not so strange )

    I suppose Alejandro means kind of retarget system, (keep both rig, and transfer pose (use contsrrain or driver, then try to bake pose from MHX rig >> Def rig >> deform the mesh.

    About both case, I suppose use same logic, (separate deform rig bone,(keep to align with daz import rig + use different IK FK chain controll rig to real pose)

    (but as described, when import pose file, then if it pose controll bone, it not show same pose.

    it may show slightly different pose, (but JCM will be used correctly)

    About both case, I just hope not quick improve , but check carefully.

  39. engetudouiti

    Thomas,

    If The original bones are driven with copy transforms constraints by the corresponding control bone

    I suppose, it may show almost same deform when posing. as same as before. but JCM will be correctly applied, as you said. (because, JCM use def rig local bone axis (which when we import) , I expect so)

    But The problem is,,, when you pose with MHX >> it not usual bone position, which we pose in daz,,, without we remove all daz bone translate limit,

    (so we can not make same pose Daz <> Blender , as true meaning)

    Though I do not think your current way is bad,,,, actually it will improve, how jcm will be used… problem is after all we can not get same pose and deform. I think.

    Maybe smart re-target way , (but not use Constrain) then not copy transform (because it try to locate perfectly same pos as controll bone)

    work better. (though I suppose it not easy)

  40. engetudouiti

    A control (pose only) rig MHX(or any IK FK chain to snap) bone rig <>

    B Deform rig ( Daz def rig )

    I will test how current version will work,, but as future request, I hope we can add twk bones for B Deform rig. sitll.

    (do not know if you already remain it or not)

    Then what we need to enhance is, how Copy , trasnform A to B or sometimes B to A.

    All daz pose are made with B, then they not translate, only rotate at least about main limb chain.

    On the other hand when we Pose with A, they already translate pos from Daz def rig.

    if we use constrain , and simply copy transform from A to B, it already change daz pose…

    ideally when import pose, we may better directly import bone rotation to Deform rig only.

    (anyway I test current rig and may report if it cause new problem (though bascially I think it not break. if it use copy transforms = fit to current control bone, but suspect not show same deform, (jcm will be applied for different local axis ,,)

  41. engetudouiti

    Thomas, I approve what you trying, but you seems need to check, current converted rig , I think it remain or change un-necessary bone transform. (when generate (convert) MHX without your intention ,I suppose. (can clean up those)

  42. Alejandro Huerga reporter

    I’m not so sure if you got my point, so just in case I’ll write it again. What I mean is to leave the DAZ rig and JCMs in the original state. Then put a “same size” MHX armature on top, and just link the 2 armatures, so MHX armature can control the Daz armature. This way there’s no need to modify anything else.

    The only problem I had doing the same in 3ds max was figuring out the angles for every bone in the new armature, so it bends exactly the same than in Daz studio, but for sure you can solve this easily. If you do, every pose will load exactly the same than in Daz.

    Doing this I could transfer Daz poses to 3ds Max CAT rig with high precision so I know it’s possible 😃👍🏻

  43. engetudouiti

    It is almost same as What Thomas now trying to do. I suppose.

    And for me it is kind of retarget system. to transfer any pose from MHX rig to Daz def rig.(deform rig)

    The only reason why I had not asked is, it is just difficult to make it work by auto generate, and I do not think Thomas will approve it.

    But current MHX is already far changed from what it had been. (with new morph system etc)

    We already see many constarin and bone relation..

    so use Def rig arrange bones = it keep original daz local axis (and bone roll, Head and tail pos) for Deform, but use MHX IK-FK chain bones as controll rig, by Constain or drv, (or script?) is not so complex any-more. I feel.

    btw, I do not see any blend file from you attached. So I can not see how you make link (re-target) from 2 different rigs. (they are merged as one Armature I suppsoe though) .

    if you expect, Thomas will check it , I may recommend offer real file. which you modified. though I do not know Thomas already understand your way.

  44. Alejandro Huerga reporter

    I have no blend file because I did it on 3ds Max using CAT (Character Animation Toolkit), but now I’m trying to use blender thanks Thomas. What I did is simple, just different terminology between both softwares. But basically is link or constrain one skeleton (armature) bone with its correspondent bone in the second skeleton. So the character remains in its original skeleton and morph system (JCMs) and the second skeleton only affect the bones and nothing else.

    Because we already have an script that can create a proper MHX armature with the same measures than the original, we just need to constrain this MHX with Daz armature without deleting the original one, and just link to it.

  45. Alessandro Padovani

    @Alejandro You can already use any retargeting tool from mhx/rigify to the daz rig. If I understand correctly, what @Thomas is trying to do is a “simplified“ version of a general retargeting tool, where the pose bones are used to drive the original daz deform bones. That’s the same I proposed in my third comment above.

    https://github.com/Mwni/blender-animation-retargeting

  46. Alessandro Padovani

    @Thomas

    Commit 17411f4 doesn’t work fine. Using the test scene and pose provided above we see that the pose is not loaded correctly in fk mode, thus producing bad deformations same as shown in the previous pictures.

    note. Again the simple ik rig works fine for loading daz poses and animations, if you could fix the feet issue it would be perfect.

  47. Thomas Larsson repo owner

    It turns out that we were looking in the wrong direction. The important issue was that mhx, like rigify, splits the shin bones into bend and twist bones, although it is a single bone in DS. So the twist part of the rotation didn’t affect the top part of the shin in blender, but it does in DS and the jcms were made for that. Therefore there is a new option that controls whether the shin is split or not. If it isn’t, the deformation is similar to the daz rig.

    I also removed the option to keep the original daz bones, since it didn’t seem to make much of a difference.

    That the local rotation of the mhx shin differs slightly from the daz rig is normal, since the rest pose is slightly different. The rotations in world space are close.

    Today’s previous commits addressed problems with snapping which was a separate problem.

  48. Thomas Larsson repo owner

    Note that the bad deformation is still present for rigify, because there we cannot avoid splitting the shin. Hm, or perhaps the entire weight could be assigned to the twist bone. Will check that later.

  49. Alessandro Padovani

    Thomas you got it commit 04a91a7 works great.

    I may also have a solution for the simple ik rig. It seems it is enough to offset the ik bone so that it starts from the shin bone. The only drawback is that the offset has to be preserved when we snap IK, so the snap IK action has to keep the offset. I don’t know how the snap IK works, but may be it’s enough to use a copy rotation without copy location, this way the offset should be preserved. Let us know.

  50. Alejandro Huerga reporter

    I half solved the problem. Just create the MHX rig in another blender instance, and then import it on top of the DAZ rig. Then manually constrain every DAZ bone with the tweak bones of the MHX using copy transform or copy rotation, depending on the case. For arms works flawless but for legs there's a slightly difference in the rest pose because the MHX bones are not in the same position when created. Can you help me to solve and probably automate this?

  51. Alessandro Padovani

    @Alejandro The last commit works fine you shouldn’t have any issue now. Doesn’t it work for you ?

  52. Alejandro Huerga reporter

    @Alessandro Padovani OMG you’re right, it’s working horrible only in my character, but I don't understand why. Tried a lot of ways… In case you could help me to fix it, the character is “Sandy! The Female Rigged Low-Poly 3D Model – Genesis 8 Female Morph”

    PD: Thank you Thomas for your awesome work everyday

  53. Alessandro Padovani

    @Alejandro Be sure to update both the blender and daz scripts of the daz exporter, and to also update the mhx addon. After that re-export your figure and see if it works. Let me know. Also for some figures you may need to import the custom jcms to get the same deformations as daz. But usually just the standard jcms work fine enough.

  54. Log in to comment