daz orientation and subtract rest pose ?

Issue #1567 duplicate
Alessandro Padovani created an issue

daz studio 4.21.0.5, blender 3.5.1, diffeomorphic 1.7.1.1590

Unless I miss something, subtract rest pose should only be available if daz orientation is checked in the global settings, because it doesn’t work with the standard orientation. Unless you want to implement #1547.

Let me know.

Comments (13)

  1. Thomas Larsson repo owner

    Hm. That option is not used anywhere, but the rest pose is always subtracted if daz orientation is enabled. Do we really want to make that optional?

  2. Alessandro Padovani reporter

    Commit b611d14.

    What do you mean it’s not used ? It seems to me that it is always used if checked, both with standard and daz orientation. The “subtract rest pose” option is why we did “daz orientation“ #1445, to allow for the rest pose to be subtracted because the standard orientation didn’t work. That’s why I’m also proposing #1547.

    bug. daz orientation. The daz orientation used to work fine with subtract rest pose but this is no longer the case. Now both daz orientation and standard orientation don’t work with subtract rest pose.

    steps:

    1. set “daz orientation“ in global settings
    2. load the test scene g8f-prebend.duf as dbz
    3. load a pose (I used kneeling-b) with “subtract rest pose”
    4. check the pose

    alternate steps:

    1. unset “daz orientation“ in global settings
    2. load the test scene g8f-prebend.duf as dbz
    3. load a pose (I used kneeling-b) with “subtract rest pose”
    4. check the pose

    note. quaternions. As a side note the daz orientation is unfortunately of little use if we can’t use quaternions with it, because quaternions is always required for ik animation. Unless we animate with the daz fk rig.

  3. Alessandro Padovani reporter

    Commit bb5d464.

    bug. option gone ? Now “subtract rest pose“ never appears, even if we set “daz orientation“ in global settings. It seems to me it is now always used. The kneeling b pose still doesn’t work both with daz and standard orientations. Steps as above.

  4. Thomas Larsson repo owner

    The rest pose was always subtracted all along. The option is now restored, and this time it actually affects the pose.

    The problem with the foot pose is fixed. The culprit was the ThighBend twist.

  5. Alessandro Padovani reporter

    Commit 769a65d doesn’t work fine (1.7.1.1598).

    bug. subtract rest pose option. The rest pose is always subtracted with standard orientation, even if the option is off. Works fine with daz orientation.

    bug. subtract rest pose feet. Kneeling B still doesn’t work with the daz orientation. Nor with the standard orientation but that is expected.

    steps:

    1. set daz orientation in global settings
    2. import g8f-prebend.duf as dbz
    3. import kneeling b with subtract rest pose

  6. Alessandro Padovani reporter

    note. Just in case I was not clear. My original request was to remove the “subtract rest pose“ option for the standard orientation, that is, do not ever subtract rest pose for standard orientation, since subtract only works fine with daz orientation. Unless you want to implement #1547 that would allow subtract to work with the standard orientation too.

  7. Thomas Larsson repo owner

    I don’t understand why I thought that the pose worked. But now it does.

    The rest pose is not subtracted with standard orientation, but it seems that way since it is the pose in world space that is loaded. I’m not sure why poses don’t work with high heels.

  8. Alessandro Padovani reporter

    Commit 51dcc90.

    The feet issue is gone thank you for the fast fix as always.

    possible bug. standard orientation. As for standard orientation using the world space, there’s something broken. I mean using the the world space is basically what I’m proposing in #1547 and it works fine with my steps there, using copy absolute pose. But it doesn’t work with standard orientation. So what’s the difference, why absolute pose works fine and standard orientation doesn’t ? If they both use the world space then they should both work fine.

    I mean if we can get the standard orientation to correctly load poses in world space then we don’t need the daz orientation anymore. Indeed the daz orientation was done only because the standard didn’t work.

    May be you can look at this comparing the actual code with #1547, if it may help to fix it.

    steps:

    1. unset daz orientation in global settings, that means standard orientation
    2. import g8f-prebend.duf
    3. import kneeling b, with or without subtract rest pose is the same

  9. Thomas Larsson repo owner

    Hm. The bending of the twist bones disappears if I enable Keep Limits, which imposes both rotation locks and limits. In the last commit Keep Locks is a separate option, which is enabled by default. I think this works well, because although limits don’t make sense for a prebended figure, the locks do, provided that the prebending does not violate rotation locks.

    Even with Keep Locks enabled there are some small differences between standard and daz orientation. I don’t know why.

  10. Alessandro Padovani reporter

    Commit 5e60ab4 works better but as you noted doesn’t work fine.

    Again, the procedure as described in #1547 works perfect so I can’t understand why you won’t use it instead. You can probably streamline the procedure below so the rested rig is not needed, or use a temporary rested rig. This also makes “daz orientation“ and “subtract rest pose“ and “copy absolute pose“ unnecessary since this way everything works fine with “standard orientation“ both for rested and posed figures.

    Please let us know if I miss something or if there’s any reason not to do this. So I’ll also close #1547 as “won’t fix“. Then I can always do it by hand though it’s time consuming.

    steps (#1547):

    1. import a g8f posed figure as dbz, a prebended figure or any other pose will do, we can refer it as “posed-g8“
    2. import the g8f rig in rest pose as unmorphed, we don’t need the mesh just the rig, we can refer it as “rested-g8“
    3. import a g8f pose to “rested-g8“
    4. copy absolute pose from “rested-g8“ to “posed-g8“

    Below an example with g8f and kneeling-b that works perfect. It even works fine enough with figures having different proportions as Victoria 8 and G8F for example since “copy absolute pose” is designed for that.

  11. Alessandro Padovani reporter

    note. possible simplification for locks and limits. Since locks and limits are already defined in the global settings, we could remove them from the posing panel and the import pose panel. Meaning the global settings are always used. This means we don’t need anymore to keyframe locks and limits, because the user can no more use different settings at different frames, that seems reasonable and better streamlined to me.

    This way the user decides if he wants locks and limits when the figure is imported, then sticks with it. Since most daz poses require limits off the default should be off for limits and on for locks.

    But I understand having locks and limits everywhere with the capability to keyframe them is more flexible, and some users may not like the restriction. So this is just a note you may consider then do as you like it better. Personally I always use limits off and locks on.

  12. Log in to comment